我在Java ee企业应用程序中使用JAAS Framework进行身份验证和授权过程。我使用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="(&(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配置,但这不是我想要的。
答案 0 :(得分:0)
您需要添加此额外属性:
group-search-filter
搜索过滤器以查找用户的组成员身份。默认值为uniquemember =%d(%d扩展为用户元素DN)。对于Active Directory,这应该是member =%d