【问题标题】:group memberships in (AD) ldap Realm(AD) ldap 领域中的组成员身份
【发布时间】:2010-12-16 09:08:41
【问题描述】:

我在 java ee 企业应用程序中使用 JAAS 框架进行身份验证和授权过程。我使用 GlassFish 作为应用程序服务器。我的领域配置如下:

<auth-realm name="ads-realm" classname="com.sun.enterprise.security.auth.realm.ldap.LDAPRealm">
  <property name="jaas-context" value="ldapRealm" />
  <property name="base-dn" value="CN=Users,DC=company,DC=intern" />
  <property name="directory" value="ldap://ad.company.intern:389" />
  <property name="search-filter" value="(&amp;(objectClass=user)(sAMAccountName=%s))" />
  <property name="search-bind-password" value="****" />
  <property name="search-bind-dn" value="ldapSvc@company.intern" />
</auth-realm>

此配置在我的环境中运行良好。请参阅以下日志条目:

FEIN: JAAS login complete. 
FEIN: JAAS authentication committed.
FEIN: Password login succeeded for xyz

但我没有收到来自我的 Active Directory 的 LDAP 组成员身份

FEIN: LDAP: Group memberships found: 
FEIN: LDAP: login succeeded for: xyz

我需要进行哪些配置/条目/映射才能从 AD 接收组成员资格?

当然,我可以添加属性

<property name="assign-groups" value="Users" />

我的 GlassFish 配置,但这并不是我想要的。

【问题讨论】:

    标签: active-directory jakarta-ee glassfish-3 realm


    【解决方案1】:

    你需要添加这个额外的属性:

    group-search-filter 搜索过滤器以查找用户的组成员身份。默认值为 uniquemember=%d(%d 扩展为用户元素 DN)。对于 Active Directory,这应该是 member=%d

    【讨论】: