2012-01-13 16 views
1

Glassfish 3.1でldapRealmを実装しようとしています。次の設定で正常にログインできますが、ADのグループメンバーシップを正しく取得できませんでした。私はgroup memberships in (AD) ldap Realmに続いてgroup-search-filterを含めるが、まだ動作していない。 >私も、サーバー設定に次のオプションを追加しGlassfish 3.1 ldapRealm ActiveDirectoryグループメンバシップ

<auth-realm name="ADREALM" classname="com.sun.enterprise.security.auth.realm.ldap.LDAPRealm"> 
    <property name="directory" value="ldap://domain.com:389"></property> 
    <property name="search-filter" value="(&amp;(objectCategory=user)(sAMAccountName=%s))"></property> 
    <property name="search-bind-dn" value="[email protected]"></property> 
    <property description="null" name="base-dn" value="OU=CORP Users,DC=domain,DC=com"></property> 
    <property name="group-search-filter" value="(&amp;(objectCategory=group)(member=%d))"></property> 
    <property name="search-bind-password" value="password"></property> 
    <property name="jaas-context" value="ldapRealm"></property> 
</auth-realm> 

JVM

-Djava.naming.referral=follow 

Glassfishののログエントリ:ここ
は私のweb.xmlのグループメンバシップが見つかったことを

FINE: [Web-Security] hasUserDataPermission perm: (javax.security.jacc.WebUserDataPermission /j_security_check POST) 
FINE: [Web-Security] hasUserDataPermission isGranted: true 
FINEST: Processing login with credentials of type: class com.sun.enterprise.security.auth.login.common.PasswordCredential 
FINE: Logging in user [kip] into realm: ADREALM using JAAS module: ldapRealm 
FINE: Login module initialized: class com.sun.enterprise.security.auth.login.LDAPLoginModule 
FINE: search: baseDN: OU=CORP Users,DC=domain,DC=com filter: (&(objectCategory=user)(sAMAccountName=kip)) 
FINE: Found user DN: CN=Kipling,OU=IT,OU=CORP Users,DC=domain,DC=com 
FINE: LDAP:Group search filter: (&(objectCategory=group)(member=CN=Kipling,OU=IT,OU=CORP Users,DC=domain,DC=com)) 
FINE: LDAP: Group memberships found: 
FINE: LDAP: login succeeded for: kip 
FINE: JAAS login complete. 
FINE: JAAS authentication committed. 
FINE: Password login succeeded for : kip 
FINE: Set security context as user: kip 

をお知らせ空です。より多くの情報が必要な場合はお知らせください。

答えて

4

週末には、私のldapRealm設定が間違っていたことがわかりました。私はbase-dnをブランチに設定し、グループ情報は別のouブランチに設定しているので、グラスフィッシュは私のグループDNを見つけることができませんでした。 (あまりにも制限的 - SOの質問の1つでも言及されている)。 group-search-filterを動作させるために、ldapRealmに追加のプロパティーを追加する必要がありました。グループプロパティーの取得にはgroup-base-dnです。私は設定しない限り

<property name="group-base-dn" value="OU=CORP Groups,DC=domain,DC=com"></property> 

だから、私のbase-dnDC=domain,DC=com基本的に私はgroup-base-dnプロパティを含める必要があります。ここに私の最後のldapRealm構成です:

<auth-realm name="ADREALM" classname="com.sun.enterprise.security.auth.realm.ldap.LDAPRealm"> 
    <property name="directory" value="ldap://domain.com:389"></property> 
    <property name="jaas-context" value="ldapRealm"></property> 
    <property name="base-dn" value="OU=CORP Users,DC=domain,DC=com" description="null"></property> 
    <property name="search-filter" value="(&amp;(objectCategory=user)(sAMAccountName=%s))"></property> 
    <property name="group-base-dn" value="OU=CORP Groups,DC=domain,DC=com"></property> 
    <property name="group-search-filter" value="(&amp;(objectCategory=group)(member=%d))"></property> 
    <property name="search-bind-dn" value="[email protected]"></property> 
    <property name="search-bind-password" value="password"></property> 
</auth-realm> 

私は、これは誰もがldapRealmを設定するために役立つことを願って。ありがとう! GlassFishのログ添付

FINE: search: baseDN: OU=CORP Users,DC=domain,DC=com filter: (&(objectCategory=user)(sAMAccountName=kip)) 
FINE: Found user DN: CN=Kipling,OU=IT,OU=CORP Users,DC=domain,DC=com 
FINE: LDAP:Group search filter: (&(objectCategory=group)(member=CN=Kipling,OU=IT,OU=CORP Users,DC=domain,DC=com)) 
FINE: LDAP: Group memberships found: Application Administrators 
FINE: LDAP: login succeeded for: kip 
FINE: JAAS login complete. 
FINE: JAAS authentication committed. 
0

objectClass=GroupobjectCategory=groupは検索フィルターに含まれません。

+0

こんにちは、私は、彼らは全く同じであることを、別のSOの質問で読み取り、のみは、objectCategoryがインデックス化されています。私は 'ldapsearch'の両方でそれらを試してみて、同じ出力を作りました。 – KipKapKup

関連する問題