3.9.2. 管理インターフェースに対する LDAP を使用した認証
管理コンソール、管理 CLI、管理 API の認証ソースとして LDAP ディレクトリサーバーを使用するには、以下の手順を実行する必要があります。
- LDAP サーバーへの送信接続を作成します。
- LDAP 対応のセキュリティーレルムを作成します。
- 管理インターフェースの新規セキュリティードメインを参照します。
LDAP サーバーへの送信接続の作成
LDAP 送信接続には、以下の属性を使用することができます。
表3.1 LDAP 送信接続の属性
属性 | 必要性 | 説明 |
---|---|---|
name | 必要 |
この接続を識別するための名前。この名前はセキュリティーレルムの定義に使用されます。
|
url | 必要 |
ディレクトリサーバーの URL アドレス。
|
search-dn | 必要 |
検索の実行を許可されているユーザーの完全識別名 (DN)
|
search-credentials | 必要 |
検索の実行を許可されているユーザーのパスワード。
|
initial-context-factory | 不必要 |
接続を確立する際に使用する初期コンテキストファクトリ。デフォルトでは
com.sun.jndi.ldap.LdapCtxFactory に設定されています。
|
例3.13 LDAP 送信接続の追加
この例では、以下のプロパティーセットを使用して送信接続を追加します。
- DN の検索:
cn=search,dc=acme,dc=com
- 証明情報の検索:
myPass
- URL:
ldap://127.0.0.1:389
/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")
例3.14 LDAP 送信出力を示す XML
<outbound-connections> <ldap name="ldap_connection" url="ldap://127.0.0.1:389" search-dn="cn=search,dc=acme,dc=com" search-credential="myPass" /> </outboundconnections>
LDAP 対応セキュリティーレルムの作成
管理インターフェースは、デフォルトで設定されているプロパティーファイルをベースとするセキュリティーレルムの代わりに LDAP サーバーに対して認証を行うことができます。LDAP のオーセンティケーターは、最初にリモートディレクトリサーバーへの接続を確立します。次に、LDAP レコードの完全修飾識別名 (DN) を探すため、ユーザーが認証システムに渡したユーザー名を使用して検索を実行します。認証情報としてユーザーの DN とユーザー提供のパスワードを使用して、新規接続が確立されます。 このLDAP サーバーに対するこの検証に成功すると、DN が有効であることが検証されます。
LDAP のセキュリティーレルムが機能するには、以下の属性と要素が必要です。
- connection
<outbound-connections>
に定義されている接続の名前。LDAP ディレクトリへの接続に使用します。- base-dn
- ユーザー検索を開始するためのコンテキストの識別名
- recursive
- LDAP ディレクトリツリー全体にわたって再帰的に検索を行うか、指定のコンテキストのみを検索するかを指定します。デフォルトでは
false
に設定されています。 - user-dn
- 識別名を持つするユーザーの属性。これは、後で認証のテストに使用されます。デフォルトでは
dn
に設定されています。 - 子要素として、
username-filter
またはadvanced-filter
のいずれか。 username-filter
はattribute
という単一の属性を取り、値はuserName
やsambaAccountName
などのユーザー名を持つ LDAP 属性の名前です。advanced-filter
はfilter
と呼ばれる単一の属性を取ります。この属性には、標準的な LDAP 構文のフィルタークエリが含まれています。&
文字を&
に変更し、エスケープすることに注意してください。フィルターの例は次のとおりです。(&(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))
アンパサンド文字をエスケープすると、フィルターは次のようになります。(&(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))
例3.15 LDAP 対応のセキュリティーレルムを示す XML
この例には、以下のパラメーターを使用します。
- connection -
ldap_connection
- base-dn -
cn=users,dc=acme,dc=com
. - username-filter -
attribute="sambaAccountName"
<security-realm name="TestRealm"> <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 以前のバージョンでは、このオプションを手作業で設定する必要があります。
例3.16 LDAP セキュリティーレルムの追加
次のコマンドはセキュリティーレルムを追加し、スタンドアロンサーバーの属性を設定します。
/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 ダイジェスト認証用のセキュリティーレルムを使用します。
例3.17 HTTP インターフェースへのセキュリティーレルムの適用
この設定が有効になり、ホストコントローラーを再起動した後、Web ベースの管理コンソールは LDAP を使用してユーザーの認証を行います。
/host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=TestRealm)