我们公司的某个人已经使用JBOSS EAP 6.3中的LdapExtLoginModule配置了几乎所有角色组,并且工作正常。这是具有该配置的standalone-full.xml文件:
<security-domain name="LDAPAuthentication" cache-type="default">
<authentication>
<login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required">
<module-option name="java.naming.provider.url" value="ldap://ha-adds-global.xxxx.com:3268"/>
<module-option name="bindDN" value="CN=prodjbsvc,OU=SvcAccounts,OU=NOPOL,dc=eagle,dc=xxxx,dc=com"/>
<module-option name="bindCredential" value="XQtU@1lc"/>
<module-option name="baseCtxDN" value="dc=eagle,dc=xxxx,dc=com"/>
<module-option name="baseFilter" value="(sAMAccountName={0})"/>
<module-option name="rolesCtxDN" value="ou=COSAs,dc=eagle,dc=xxxx,dc=com"/>
<module-option name="roleFilter" value="(sAMAccountName={0})"/>
<module-option name="roleAttributeID" value="memberOf"/>
<module-option name="roleAttributeIsDN" value="true"/>
<module-option name="roleNameAttributeID" value="cn"/>
<module-option name="roleRecursion" value="-1"/>
<module-option name="searchScope" value="SUBTREE_SCOPE"/>
<module-option name="allowEmptyPasswords" value="false"/>
<module-option name="java.naming.referral" value="follow"/>
</login-module>
</authentication>
</security-domain>
我想将LDAP服务器仅配置为特定的角色组 - &#34; ALL_CONTRACTORS&#34;,这样只有承包商才能登录到此安全域。为此,我更改了standalone-full.xml&#34; rolesCtxDN&#34;属性值为:
<module-option name="rolesCtxDN" value="CN=ALL_CONTRACTORS,OU=GROUPS,OU=SMO,OU=COSAs,DC=eagle,DC=xxxx,DC=com"/>
但它没有任何区别。我可以使用LDAP服务器中的任何用户凭据登录。任何人都可以帮助我满足我的要求。
答案 0 :(得分:1)
角色搜索上下文与身份验证无关,但与授权无关。因此,如果您确实希望仅限具有给定角色的用户登录,则必须更改 baseFilter
登录模块选项:
<module-option name="baseFilter"
value="(&(sAMAccountName={0})(memberOf=CN=ALL_CONTRACTORS,OU=GROUPS,OU=SMO,OU=COSAs,DC=eagle,DC=xxxx,DC=com))"/>