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

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

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

表9.1 LDAP 送信接続の属性

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

例9.7 LDAP 送信接続の追加

この例では、以下のプロパティーセットを使用して送信接続を追加します。
  • Search DN: cn=search,dc=acme,dc=com
  • Search Credential: myPass
  • URL: http://127.0.0.1
/host=master/core-service=management/ldap-connection=ldap_connection/:add(search-credential=myPass,url=http://127.0.0.1,search-dn=cn=search,dc=acme,dc=com)

例9.8 LDAP 送信出力を示す XML

<outbound-connections>
   <ldap name="ldap_connection" url="ldap://127.0.0.1" 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 と呼ばれる単一の属性を取ります。この属性には、(&(sAMAccountName={0})(memberOf=cn=admin,cn,useres,dc=acme,dc=com)) のような標準的な LDAP 構文のフィルタークエリが含まれています。

例9.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>	
	

例9.10 LDAP セキュリティレルムの追加

以下のコマンドはセキュリティレルムを追加し、その属性を設定します。
/host=master/core-service=management/security-realm=ldap_security_realm/:add
/host=master/core-service=management/security-realm=ldap_security_realm/authentication=ldap/:write-attribute(name=connection,value=ldap_connection)
/host=master/core-service=management/security-realm=ldap_security_realm/authentication=ldap/:write-attribute(name=base-dn,value=cn=users,dc=acme,dc=com)
/host=master/core-service=management/security-realm=ldap_security_realm/authentication=ldap/:write-attribute(name=recursive,value=false)
/host=master/core-service=management/security-realm=ldap_security_realm/authentication=ldap/:write-attribute(name=user-dn,value=dn)
/host=master/core-service=management/security-realm=ldap_security_realm/authentication=ldap/:write-attribute(name=username-attribute,value=sambaAccountName)
管理インターフェースへの新規セキュリティドメイン適用

セキュリティドメインの作成が完了したら、管理インターフェースの設定でそのドメインを参照する必要があります。管理インターフェースは、HTTP ダイジェスト認証用のセキュリティレルムを使用します。

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

この設定が有効になると、Web ベースの管理コンソールは LDAP を使用してユーザーの認証を行います。
/host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=TestRealm)
Restart JBoss Enterprise Application Platform を再起動すると、HTTP インターフェースは認証に LDAP サーバーを使用するようになります。