Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 セキュリティ管理機能編


5.16.4 Active Directoryを使用する場合の設定

LDAPディレクトリサーバとしてActive Directoryを使用する場合の設定方法について説明します。

統合ユーザ管理フレームワークのライブラリを使用して,ユーザ情報リポジトリへのユーザの登録,ユーザ情報の更新(ユーザのパスワード変更を含む)を行う場合,Active Directory固有の環境設定,およびSSLを使用して接続するための証明書の登録が必要です。

LDAPディレクトリサーバとしてActive Directoryを使用する場合の設定項目を,次の表に示します。なお,使用するユーザ認証方式によって設定する項目が異なります。

表5‒14 Active Directoryを使用する場合の設定項目一覧

設定項目

パスワード認証

パスワード変更およびユーザの追加・変更

クライアント認証(X509証明書)

jaas.confの設定

必要なログインモジュールの指定

ログインモジュールのオプションの指定

ua.confの設定

ユーザ識別属性の指定

DNでユーザIDとして使用する属性名の指定

パスワード属性の指定

LDAPディレクトリサーバの種類の指定

日本語など2バイト文字を含むDNの変換

URLプロトコルの変更

SSL接続の設定

(凡例)

○:必ず設定する

△:必要に応じて設定する

−:設定しない(設定しても無視される)

注※ パスワードの設定やユーザの追加・変更を実施する場合を示します。

Active Directory固有の環境設定の方法,およびSSLを使用して接続するための証明書の登録を次に示します。

ポイント

Active Directoryで管理するユーザは,ほかのLDAPディレクトリサーバで管理するユーザと,オブジェクトクラス,属性が大きく異なります。統合ユーザ管理フレームワークのライブラリを使用する場合には,オブジェクトクラスに「user」を使用します,その「user」を作成する場合には,「cn」,「unicodePwd」,「sAMAccountName」,および「userAccountControl」の属性を指定します。

「sAMAccountName」には,セキュリティアカウントマネージャ(SAM)のアカウント名を指定します。なお,通常,アカウント名はユーザIDと同じ値を指定します。

「userAccountControl」には,ユーザアカウントのプロパティフラグを指定します。一般ユーザのユーザエントリを作成する場合は「512」を指定します。ただし,Active Directoryがインストールされているサーバのセキュリティポリシーで,パスワードの長さが1文字以上に設定されている場合,「userAccountControl」に「512」を指定すると,ユーザを作成できません。この場合は,次のどちらかの対処をして,ユーザエントリを作成してください。

  • セキュリティポリシーのパスワードの長さを0文字以上に変更して,「userAccountControl」に「512」を指定する。

  • セキュリティポリシーのパスワードの長さの設定を変更しないで,「userAccountControl」に「544」を指定する。

〈この項の構成〉

(1) jaas.confの設定

jaas.confに設定する内容について説明します。

(a) ログインモジュールの設定

認証方式にパスワード認証を使用する場合はWebPasswordLDAPLoginModule,クライアント証明を使用する場合はWebCertificateLoginModuleを設定します。

(b) ログインモジュールのオプションの指定(パスワード認証を使用する場合)

WebPasswordLDAPLoginModuleのオプションに「ldap.w」を設定します。なお,SSOを使用する場合は「sso.ldap.w」を設定します。

(2) ua.confの設定

ua.confに設定する内容について説明します。

(a) ユーザ識別属性の指定

ユーザ識別属性に,「cn」(フルネームに該当)または「sAMAccountName」を設定します。

設定例を次に示します。

(例1)「cn」をユーザ識別属性に使用する場合
com.cosminexus.admin.auth.ldap.attr.userid.0=cn
(例2)「sAMAccountName」をユーザ識別属性に使用する場合
com.cosminexus.admin.auth.ldap.attr.userid.0=sAMAccountName

ユーザ識別属性を「sAMAccountName」に設定した場合リポジトリのユーザエントリ(RDN)の検索が必要となります。検索に必要なプロパティとその設定例を次に示します。

(例)
java.naming.security.principal.0=cn=Administrator,cn=Users,dc=cosminexus,dc=com
java.naming.security.credentials.0=adminpassword
com.cosminexus.admin.auth.ldap.search.userrdn.0=true
com.cosminexus.admin.auth.ldap.search.scope.0=onelevel

なお,「sAMAccountName」をユーザ識別属性に使用する場合は,LdapUserDataManagerクラスのaddUserData(String uid, UserData userData)メソッドは使用できません。ユーザを追加する場合は addUserData(String uid, UserData userData, String name, String value)メソッドを使用してください。また,属性名の引数(String name)には,「cn」を設定してください。

(b) DNでユーザIDとして使用する属性名の指定(クライアント証明書を使用する場合)

クライアント証明書を使用する場合は,クライアント証明書に格納されているDN(クライアント証明書の被認証者識別名)を分解したあと,ユーザIDとして使用する属性名を設定します。設定例を次に示します。

(例)
com.cosminexus.admin.auth.ldap.certificate.attr.userid.0=cn

ここで指定する属性名は,「(a) ユーザ識別属性の指定」で指定するユーザ識別属性とは異なります。

(c) パスワード属性の指定(パスワード認証を使用する場合)

パスワード属性に「unicodePwd」を設定します。設定例を次に示します。

(例)
com.cosminexus.admin.auth.ldap.attr.password.0=unicodePwd

(d) LDAPディレクトリサーバの種類の指定(パスワード認証を使用する場合)

接続先のLDAPディレクトリサーバの種類に「AD」を指定した行を追加します。LDAP設定番号が「0」の場合の設定例を次に示します。

(例)
com.cosminexus.admin.auth.ldap.directory.kind.0=AD

(e) URLプロトコルの変更

接続先のLDAPディレクトリサーバのURLのプロトコルに「ldaps」を設定します。設定例を次に示します。なお,ポート番号は省略できます。

(例)

変更前:java.naming.provider.url.0=ldap://localhost:389

変更後:java.naming.provider.url.0=ldaps://localhost.example.com:636

(f) URLホスト名の注意事項

Active DirectoryのドメインコントローラのFQDN(完全修飾ドメイン名)を指定してください。そのとき,hostsファイルなどでホスト名を解決できるようにする必要があります。

(3) SSL接続の設定

J2EEサーバとActive Directory間の通信でSSLを使用するための証明書を登録します。証明書の登録方法を次に示します。

  1. 作成したデジタル証明書を,Active Directoryがインストールされているサーバ(LDAPサーバ)に登録します。

    デジタル証明書の作成,登録方法については,Active Directoryのドキュメントを参照してください。

  2. 認証局(CA)の証明書を,J2EEサーバに登録します。

    認証局の証明書のJ2EEサーバへの登録は,Developer's Kit for Javaに付属するkeytoolを使用して実行できます。keytoolの詳細については,Java 2 SDK, Standard Editionのドキュメントを参照してください。keytoolの実行例を次に示します。なお,表記の都合上,複数行にわたっていますが,実際は一行で記述します。

    Windowsの場合

    keytool -import -alias cakey -file C:\temp\cacer.cer -trustcacerts -keystore 
    "<Application Serverのインストールディレクトリ>\jdk\lib\security\cacerts"

    UNIXの場合

    /opt/Cosminexus/jdk/bin/keytool -import -alias cakey -file /tmp/cacer.cer 
    -trustcacerts -keystore /opt/Cosminexus/jdk/lib/security/cacerts

なお,keytoolで証明書を登録する際にJ2EEサーバを起動していた場合は,J2EEサーバを再起動してください。

(4) 注意事項

注意事項を次に示します。