4.3. Ldap ログインモジュール

短縮名: Ldap

フルネーム: org.jboss.security.auth.spi.LdapLoginModule

: UsernamePassword ログインモジュール

Ldap ログインモジュールは、LDAP サーバーに対して認証を行うログインモジュール実装です。security サブシステムは接続情報 java.naming.security.principal を使用して、LDAP サーバーに接続します。この bindDN は、JNDI 初期コンテキストを使用した場合にユーザーおよびロールの baseCtxDN および rolesCtxDN ツリーを検索する権限があります。ユーザーが認証を試みると、Ldap ログインモジュールは LDAP サーバーへ接続し、ユーザーのクレデンシャルを LDAP サーバーに渡します。

これらの認証情報は、principalDNPrefix、ユーザー入力、および principalDNSuffix を連結して形成されます。たとえば、以下のシナリオについて考えてみましょう。

  1. principalDNPrefixuid= に設定されます。
  2. principalDNSuffix,ou=People,dc=jboss,dc=org に設定されます。

ユーザー入力が jduke に設定された場合、検索文字列は uid=jduke,ou=People,dc=jboss,dc=org になります。ユーザーの入力が jduke,ou=Employees ではなく、検索文字列は uid=jduke,ou=Employees,ou=People,dc=jboss,dc=org になります。

重要

ユーザー入力は、検索が実行される前に文字列に変換されます。そのため、検索が正常に機能するには、コンマなどの特殊文字をエスケープする必要があります。

認証に成功すると、JBoss EAP 内のそのユーザーに InitialLDAPContext が作成され、ユーザーのロールが入力されます。

表4.2 LDAP ログインモジュールオプション

オプションタイプデフォルト説明

principalDNPrefix

String

 

ユーザー DN を形成するためにユーザー名に追加される接頭辞。ユーザーにユーザー名を要求し、principalDNPrefix および principalDNSuffix を使用して完全修飾 DN をビルドできます。

principalDNSuffix

String

 

ユーザー DN を形成するためにユーザー名に追加される接尾辞。ユーザーにユーザー名を要求し、principalDNPrefix および principalDNSuffix を使用して完全修飾 DN をビルドできます。

rolesCtxDN

完全修飾 DN

none

ユーザーロールを検索するコンテキストの完全修飾 DN です。

userRolesCtxDNAttributeName

attribute

none

ユーザーロールを検索するコンテキストの DN を含むユーザーオブジェクトの属性です。これは、ユーザーのロールを検索するコンテキストがユーザーごとに一意である可能性がある点で rolesCtxDN とは異なります。

roleAttributeID

attribute

roles

ユーザーロールを含む属性の名前。

roleAttributeIsDN

true または false

false

RoleAttributeID にロールオブジェクトの完全修飾 DN が含まれるかどうか。False の場合、ロール名はコンテキスト名の roleNameAttributeId 属性の値から取得されます。Microsoft Active Directory などの特定のディレクトリースキーマでは、この属性を true に設定する必要があります。

roleNameAttributeID

attribute

name

ロール名が含まれる roleCtxDN コンテキスト内の属性名。roleAttributeIsDN プロパティーが true に設定されている場合、このプロパティーはロールオブジェクトの name 属性を見つけるために使用されます。

uidAttributeID

attribute

UID

ユーザー ID に対応する UserRolesAttributeDN の属性名。これは、ユーザーロールの特定に使用されます。

matchOnUserDN

true または false

false

ユーザーの完全識別名またはユーザー名のみで、ユーザーロールの検索と一致するかどうか。True の場合、完全なユーザー DN が一致値として使用されます。False の場合、ユーザー名のみが uidAttributeName 属性に対する一致値として使用されます。

allowEmptyPasswords

true または false

false

空のパスワードを許可するかどうか。ほとんどの LDAP サーバーは、空のパスワードを匿名ログイン試行として処理します。空のパスワードを拒否するには、これを false に設定します。

searchTimeLimit

Integer

10000、10 秒

ユーザーまたはロール検索のタイムアウト (ミリ秒単位)。

searchScope

OBJECT_SCOPEONELEVEL_SCOPESUBTREE_SCOPE のいずれか

SUBTREE_SCOPE

使用する検索結果を指定します。

jaasSecurityDomain

String

none

java.naming.security.credentials の復号化に使用される JaasSecurityDomain の Jakarta Management ObjectName。暗号化されたパスワードの形式は、このオプションで渡されたオブジェクトで呼び出される decode64 (String) メソッドによって返されます。

注記

LDAP サーバーへの接続および初期コンテキストの作成に関連するその他の LDAP コンテキストプロパティーの詳細は、LDAP 接続オプション を参照してください。

注記

このログインモジュールは親 UsernamePassword Login Module から ignorePasswordCase オプションを継承しますが、特定のログインモジュールでは使用されません。