5.11.2. 管理インターフェースに対する LDAP を使用した認証
管理コンソール、管理 CLI、管理 API の認証ソースとして LDAP ディレクトリーサーバーを使用するには、以下の手順を実行する必要があります。
- LDAP サーバーへの送信接続を作成します。
- LDAP 対応のセキュリティーレルムを作成します。
- 管理インターフェースの新規セキュリティードメインを参照します。
LDAP サーバーへの送信接続の作成
LDAP 送信接続には、以下の属性を使用することができます。
表5.1 LDAP 送信接続の属性
属性 | 必須 | 説明 |
---|---|---|
url | 必要 |
ディレクトリーサーバーの URL アドレス。
|
search-dn | 不要 |
検索の実行を許可されているユーザーの完全識別名 (DN)
|
search-credentials | 不要 |
検索の実行を許可されているユーザーのパスワード。
|
initial-context-factory | 不要 |
接続を確立する際に使用する初期コンテキストファクトリー。デフォルトでは
com.sun.jndi.ldap.LdapCtxFactory に設定されています。
|
security-realm | 不要 |
接続を確立するときに、使用する設定済みの
SSLContext を取得するために参照するセキュリティーレルム。
|
例5.10 LDAP 送信接続の追加
この例では、以下のプロパティーセットを使用して送信接続を追加します。
- DN の検索:
cn=search,dc=acme,dc=com
- 証明情報の検索:
myPass
- URL:
ldap://127.0.0.1:389
最初のコマンドによってセキュリティーレルムが追加されます。
/host=master/core-service=management/security-realm=ldap_security_realm:add
2 つ目のコマンドによって、LDAP 接続が追加されます。
/host=master/core-service=management/ldap-connection=ldap_connection/:add(search-credential=myPass,url=ldap://127.0.0.1:389,search-dn="cn=search,dc=acme,dc=com")
LDAP 対応セキュリティーレルムの作成
管理インターフェースは、デフォルトで設定されているプロパティーファイルをベースとするセキュリティーレルムの代わりに LDAP サーバーに対して認証を行うことができます。LDAP のオーセンティケーターは、最初にリモートディレクトリーサーバーへの接続を確立します。次に、LDAP レコードの完全修飾識別名 (DN) を探すため、ユーザーが認証システムに渡したユーザー名を使用して検索を実行します。クレデンシャルとしてユーザーの DN とユーザー提供のパスワードを使用して、新規接続が確立されます。 この LDAP サーバーに対するこの検証に成功すると、DN が有効であることが検証されます。
LDAP セキュリティーレルムは次の設定属性を使用します。
- connection
- LDAP ディレクトリーへ接続するために使用される
outbound-connections
に定義されている接続の名前。 - advanced-filter
- 指定のユーザー ID を基にユーザーを検索するのに使用される完全に定義されたフィルター。フィルターには
{0}
という形式の変数が含まれている必要があります。これは、後でユーザー指定のユーザー名に置き換えられます。 - base-dn
- ユーザー検索を開始するためのコンテキストの識別名
- recursive
- LDAP ディレクトリーツリー全体にわたって再帰的に検索を行うか、指定のコンテキストのみを検索するかを指定します。デフォルトでは
false
に設定されています。 - user-dn
- 識別名を保持するユーザーの属性。これは、後で認証のテストに使用されます。デフォルトでは
dn
に設定されています。 - username-attribute
- ユーザーを検索するための属性の名前。このフィルターは、ユーザーによって入力されたユーザー名が指定の属性と一致する簡単な検索を行います。
- allow-empty-passwords
- この属性は、空白のパスワードが許可されるかどうかを決定します。この属性のデフォルト値は
false
です。 username-filter
またはadvanced-filter
を指定する必要があります。advanced-filter
属性には、標準の LDAP 構文のフィルタークエリーが含まれています。例を以下に示します。(&(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))
例5.11 LDAP 対応のセキュリティーレルムを示す XML
この例には、以下のパラメーターを使用します。
- connection -
ldap_connection
- base-dn -
cn=users,dc=acme,dc=com
. - username-filter -
attribute="sambaAccountName"
<security-realm name="ldap_security_realm"> <authentication> <ldap connection="ldap_connection" base-dn="cn=users,dc=acme,dc=com"> <username-filter attribute="sambaAccountName" /> </ldap> </authentication> </security-realm>
警告
空の LDAP パスワードを許可しないようにすることが重要になります。ご使用の環境で具体的に空の LDAP パスワードを許可したい場合を除き、深刻なセキュリティー上の問題となります。
EAP 6.1 には CVE-2012-5629 のパッチが含まれています。このパッチは、LDAP ログインモジュールの allowEmptyPasswords オプションが設定されていない場合にこのオプションを False に設定します。6.1 以前のバージョンでは、このオプションを手作業で設定する必要があります。
例5.12 LDAP セキュリティーレルムの追加
以下のコマンドは、 LDAP 認証をセキュリティーレルムに追加し、ドメインの master という名前のホストに対して属性を設定します。
/host=master/core-service=management/security-realm=ldap_security_realm/authentication=ldap:add(base-dn="DC=mycompany,DC=org", recursive=true, username-attribute="MyAccountName", connection="ldap_connection")
管理インターフェースへの新規セキュリティーレルムの適用
セキュリティーレルムの作成が完了したら、管理インターフェースの設定でそのドメインを参照する必要があります。管理インターフェースは、HTTP ダイジェスト認証用のセキュリティーレルムを使用します。
例5.13 HTTP インターフェースへのセキュリティーレルムの適用
この設定が有効になり、ホストコントローラーを再起動した後、Web ベースの管理コンソールは LDAP を使用してユーザーの認証を行います。
/host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=ldap_security_realm)
例5.14 セキュリティーレルムのネイティブインターフェースへの適用
以下のコマンドを使用して同じ設定をネイティブインターフェースに適用します。
/host=master/core-service=management/management-interface=native-interface/:write-attribute(name=security-realm,value=ldap_security_realm)