A.2. 完全 LDAP 認証の例
以下の設定例は、Active Directory および FreeIPA 向けに AdvancedLdapLoginModule を使った完全 LDAP 認証について示しています。この設定は、SPNEGOLoginModule で識別される名称であるため、baseFilter 属性が違います。
bindAuthentication、jaasSecurityDomain、java.naming.provider.url オプションでは、このログインモジュールが LDAP へ接続する方法、認証が行われる方法を設定します。
baseCtxDN オプションは、ユーザーを検索開始する DN で、この例にある baseFilter 属性は Active Directory 上では
sAMAccountName 属性を使い、FreeIPA 上では uid 属性を使い、ユーザーを検索します。
memberOf 属性は、ユーザーから直接読み取るため、rolesCtxDN あるいは roleFilter プロパティを指定する必要はありません。roleAttributeID オプションに定義している属性は、ユーザーから直接読み取ります。
roleAttributeIsDN オプションは、この値が DN であることを指定するため、グループオブジェクトがリトリーブされます。roleNameAttributeID オプションは、
cn 属性をグループから読み取るよう指定します。ログインモジュールは、このロールを返します。
recurseRoles が
true に設定されているため、検索で発見したグループからの DN を使いこのプロセスを繰り返します。そのため、グループが memberOf 属性で設定されている場合、これは再帰的に利用されすべてのロールを検索していきます。
A.2.1. Active Directory 向けの完全 LDAP 認証 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下は、Active Directory ドメインからダンプした ldiff を抜粋したものです。
dn: CN=Darran Lofthouse,CN=Users,DC=vm104,DC=gsslab,DC=rdu,DC=redhat,DC=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: Darran Lofthouse
distinguishedName:
CN=Darran Lofthouse,CN=Users,DC=vm104,DC=gsslab,DC=rdu,DC=redhat,DC=com
memberOf: CN=Banker,CN=Users,DC=vm104,DC=gsslab,DC=rdu,DC=redhat,DC=com
name: Darran Lofthouse
sAMAccountName: darranl
userPrincipalName: darranl@vm104.gsslab.rdu.redhat.com
dn: CN=Banker,CN=Users,DC=vm104,DC=gsslab,DC=rdu,DC=redhat,DC=com
objectClass: top
objectClass: group
cn: Banker
member:
CN=Darran Lofthouse,CN=Users,DC=vm104,DC=gsslab,DC=rdu,DC=redhat,DC=com
distinguishedName:
CN=Banker,CN=Users,DC=vm104,DC=gsslab,DC=rdu,DC=redhat,DC=com
memberOf: CN=Trader,CN=Users,DC=vm104,DC=gsslab,DC=rdu,DC=redhat,DC=com
name: Banker
sAMAccountName: Banker
dn: CN=Trader,CN=Users,DC=vm104,DC=gsslab,DC=rdu,DC=redhat,DC=com
objectClass: top
objectClass: group
cn: Trader
member: CN=Banker,CN=Users,DC=vm104,DC=gsslab,DC=rdu,DC=redhat,DC=com
distinguishedName:
CN=Trader,CN=Users,DC=vm104,DC=gsslab,DC=rdu,DC=redhat,DC=com
name: Trader
sAMAccountName: Trader
以下の設定では、ユーザー名とパスワードを認証プロセスに提示する必要があります。
<application-policy name="SPNEGO">
<authentication>
<login-module
code="org.jboss.security.negotiation.spnego.AdvancedLdapLoginModule"
flag="required">
<module-option name="bindAuthentication">GSSAPI</module-option>
<module-option name="jaasSecurityDomain">host</module-option>
<module-option name="java.naming.provider.url">ldap://VM104:3268</module-option>
<module-option name="baseCtxDN">CN=Users,DC=vm104,DC=gsslab,DC=rdu,DC=redhat,DC=com</module-option>
<module-option name="baseFilter">(sAMAccountName={0})</module-option>
<module-option name="roleAttributeID">memberOf</module-option>
<module-option name="roleAttributeIsDN">true</module-option>
<module-option name="roleNameAttributeID">cn</module-option>
<module-option name="recurseRoles">true</module-option>
</login-module>
</authentication>
</application-policy>