2015-11-02 71 views
0

有人在我們公司已經配置了幾乎所有在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服務器的任何用戶憑證進行登錄。任何人都可以幫助我滿足我的要求。

回答

0

角色搜索上下文與認證無關,但與授權無關。所以,如果你真的想登錄僅限制使用給定角色的用戶,你必須改變baseFilter登錄模塊選項:

<module-option name="baseFilter" 
    value="(&amp;(sAMAccountName={0})(memberOf=CN=ALL_CONTRACTORS,OU=GROUPS,OU=SMO,OU=COSAs,DC=eagle,DC=xxxx,DC=com))"/> 
+0

這工作。我只做了一個小小的更正。我們不能直接將「&」用於baseFilter值。相反,我用「&」謝謝@kwart – devlperMoose

+0

感謝提及&符問題。我已經解決了它的答案。 – kwart

相關問題