10.7.4. 管理インターフェースに対する LDAP を使用した認証

管理コンソール、管理 CLI、管理 API の認証ソースとして LDAP ディレクトリサーバーを使用するには、以下の手順を実行する必要があります。
  1. LDAP サーバーへの送信接続を作成します。
  2. LDAP 対応のセキュリティーレルムを作成します。
  3. 管理インターフェースの新規セキュリティードメインを参照します。
LDAP サーバーへの送信接続の作成

LDAP 送信接続には、以下の属性を使用することができます。

表10.1 LDAP 送信接続の属性

属性 必要性 説明
name 必要
この接続を識別するための名前。この名前はセキュリティーレルムの定義に使用されます。
url 必要
ディレクトリサーバーの URL アドレス。
search-dn 必要
検索の実行を許可されているユーザーの完全識別名 (DN)
search-credentials 必要
検索の実行を許可されているユーザーのパスワード。
initial-context-factory 不必要
接続を確立する際に使用する初期コンテキストファクトリ。デフォルトでは com.sun.jndi.ldap.LdapCtxFactory に設定されています。

例10.7 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")

例10.8 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-filterattribute という単一の属性を取り、値は userNamesambaAccountName などのユーザー名を持つ LDAP 属性の名前です。
advanced-filterfilter と呼ばれる単一の属性を取ります。この属性には、標準的な LDAP 構文のフィルタークエリが含まれています。& 文字を &amp; に変更し、エスケープすることに注意してください。フィルターの例は次のとおりです。
(&(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))
アンパサンド文字をエスケープすると、フィルターは次のようになります。
(&amp;(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))

例10.9 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 以前のバージョンでは、このオプションを手作業で設定する必要があります。

例10.10 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 ダイジェスト認証用のセキュリティーレルムを使用します。

例10.11 HTTP インターフェースへのセキュリティーレルムの適用

この設定が有効になり、ホストコントローラーを再起動した後、Web ベースの管理コンソールは LDAP を使用してユーザーの認証を行います。
/host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=TestRealm)