2.6. Active Directory に関する注意点

本項では、Active Directory ドメインの一部である Microsoft Windows サーバー上で JBoss EAP が実行されている場合に、SPNEGO 認証の使用で必要となるアカウントの設定方法を説明します。

ここでは、サーバーへのアクセスに使用されるホスト名はHOST_NAME、レルムは REALM、ドメインはDOMAIN、JBoss EAP インスタンスをホストするサーバーは MACHINE_NAME を使用します。

2.6.1. Microsoft Windows ドメインの設定

  1. 既存のサービスプリンシパルマッピングを消去します。

    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
  2. ホストユーザーアカウントを作成します。

    注記

    ホスト名には MACHINE_NAME 以外の名前を使用してください。

    これ以降では、ホストユーザー名として USER_NAME を使用します。

  3. USER_NAMEHOST_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 では正確な設定を指定する必要があります。

  4. セキュリティードメイン内でプリンシパルを定義します。

    プリンシパルは elytron または security サブシステムで HTTP/HOST_NAME@REALM に定義または更新できます。

    重要

    オプションやパスワードの変更など、ユーザーに変更を加える場合は、keytab を再生成する必要があります。