如何在JBOSS EAP 6.3的LdapExtLoginModule中配置角色组?
问题描述:
有人在我们公司已经配置了几乎所有在JBOSS EAP 6.3使用LdapExtLoginModule角色组和工作fine.Here是独立的,full.xml文件与配置:如何在JBOSS EAP 6.3的LdapExtLoginModule中配置角色组?
<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="[email protected]"/>
<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服务器只特定角色组 - “ALL_CONTRACTORS”,以这样的方式,只有承包商应该能够登录到该安全域。为此,我将standalone-full.xml“rolesCtxDN”属性值更改为:
<module-option name="rolesCtxDN" value="CN=ALL_CONTRACTORS,OU=GROUPS,OU=SMO,OU=COSAs,DC=eagle,DC=xxxx,DC=com"/>
但它没有任何区别。我可以使用来自LDAP服务器的任何用户凭证进行登录。任何人都可以帮助我满足我的要求。
答
角色搜索上下文与认证无关,但与授权无关。所以,如果你真的想登录仅限制使用给定角色的用户,你必须改变baseFilter
登录模块选项:
<module-option name="baseFilter"
value="(&(sAMAccountName={0})(memberOf=CN=ALL_CONTRACTORS,OU=GROUPS,OU=SMO,OU=COSAs,DC=eagle,DC=xxxx,DC=com))"/>
这工作。我只做了一个小小的更正。我们不能直接将“&”用于baseFilter值。相反,我用“&”谢谢@kwart – devlperMoose
感谢提及&符问题。我已经解决了它的答案。 – kwart