2.6. Active Directory に関する注意点
本項では、Active Directory ドメインの一部である Microsoft Windows サーバー上で JBoss EAP が実行されている場合に、SPNEGO 認証の使用で必要となるアカウントの設定方法を説明します。
ここでは、サーバーへのアクセスに使用されるホスト名はHOST_NAME
、レルムは REALM
、ドメインはDOMAIN
、JBoss EAP インスタンスをホストするサーバーは MACHINE_NAME
を使用します。
2.6.1. Microsoft Windows ドメインの設定
既存のサービスプリンシパルマッピングを消去します。
Microsoft Windows ネットワークでは、一部のマッピングが自動作成されます。自動的に作成されたマッピングを削除し、ネゴシエーションが適切に行われるようにサーバーのアイデンティティーをサービスプリンシパルへマップします。マッピングにより、クライアントコンピューター上の Web ブラウザーがサーバーを信頼し、SPNEGO の実行を試みます。クライアントコンピューターは、HTTP/
HOST_NAME
形式のマッピングに対し、ドメインコントローラーを検証します。既存のマッピングを削除する手順は次のとおりです。
以下のコマンドを使用して、コンピューターに対してドメインに登録されたマッピングをリストします。
setspn -L MACHINE_NAME
以下のコマンドを使用して、既存のマッピングを削除します。
setspn -D HTTP/HOST_NAME MACHINE_NAME
setspn -D host/HOST_NAME MACHINE_NAME
ホストユーザーアカウントを作成します。
注記ホスト名には
MACHINE_NAME
以外の名前を使用してください。これ以降では、ホストユーザー名として
USER_NAME
を使用します。USER_NAME
とHOST_NAME
との間のマッピングを定義します。以下のコマンドを実行して、サービスプリンシパルマッピングを設定します。
ktpass -princ HTTP/HOST_NAME@REALM -pass * [-kvno 0] -mapuser DOMAIN\USER_NAME -out jboss.keytab -ptype KRB5_NT_PRINCIPAL -crypto all
入力を要求されたら、ユーザー名のパスワードを入力します。
コマンド
setspn -L USER_NAME
を実行してマッピングを検証します。注記JRE から
KrbException: Specified version of key is not available
エラーを取得した場合、-kvno 0
を指定してキーバージョンを0
に設定する必要があることがあります。REALM はすべて大文字にする必要がありますが、HOST_NAME はすべて小文字にします。また、HOST_NAME は FQDN (完全修飾ドメイン名) である必要があり、CNAME
レコードではなく、解決可能なA
またはAAAA
レコードである必要があります。-crypto all
の使用は Windows Server 2008 およびそれ以降でのみ動作します。Windows Server 2003 では正確な設定を指定する必要があります。セキュリティードメイン内でプリンシパルを定義します。
プリンシパルは
elytron
またはsecurity
サブシステムでHTTP/HOST_NAME@REALM
に定義または更新できます。重要オプションやパスワードの変更など、ユーザーに変更を加える場合は、
keytab
を再生成する必要があります。