簡體   English   中英

帶有證書和LDAP登錄模塊的JBoss密碼堆疊

[英]JBoss Password Stacking with Certificate and LDAP Login Modules

我正在嘗試為我的JBoss EAP 6應用程序配置一個安全域,在該域​​中,身份驗證的主要方式將是智能卡,但是在缺少該卡的情況下,它將接受LDAP身份驗證。 我已經可以做任何一個,但不能兩者都做。 密碼堆棧選項應該允許運行每個模塊,例如,即使證書模塊返回了用戶標識,LDAP模塊也可以檢索角色。 但是,應用程序的web.xml需要使用auth-方法指定登錄配置。 對於證書,這是CLIENT-CERT,對於LDAP,它是BASIC。 有沒有人找到一種方法可以使這兩個模塊成功鏈接在一起? 我的獨立安全域如下所示:

    <security-domain name="MySecurityDomain" cache-type="default">
<authentication>
    <login-module code="Certificate" flag="required">
        <module-option name="password-stacking" value="useFirstPass"/>
        <module-option name="securityDomain" value="MySecurityDomain"/>
        <module-option name="verifier" value="org.jboss.security.auth.certs.AnyCertVerifier"/>
    </login-module>
    <login-module code="LdapExtended" flag="required">
        <module-option name="password-stacking" value="useFirstPass"/>
        <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
        <module-option name="java.naming.security.authentication" value="simple"/>
        <module-option name="java.naming.provider.url" value="ldap://my.fully.qualified.domain:389"/>
        <module-option name="bindDN" value="FULLY\username"/>
        <module-option name="bindCredential" value="mypassword"/>
        <module-option name="baseCtxDN" value="CN=Users,DC=fully,DC=qualified,DC=domain"/>
        <module-option name="baseFilter" value="(sAMAccountName={0})"/>
        <module-option name="rolesCtxDN" value="CN=Users,DC=fully,DC=qualified,DC=domain"/>
        <module-option name="roleFilter" value="(member={1})"/>
        <module-option name="roleAttributeIsDN" value="true"/>
        <module-option name="roleAttributeID" value="memberOf"/>
        <module-option name="roleNameAttributeID" value="name"/>
        <module-option name="allowEmptyPasswords" value="false"/>
    </login-module>
    <login-module code="org.picketlink.identity.federation.bindings.jboss.auth.RegExUserNameLoginModule" flag="optional">
        <module-option name="regex" value="CN=(.*?),"/>
    </login-module>
    <login-module code="Database" flag="required">
        <module-option name="password-stacking" value="useFirstPass"/>
        <module-option name="dsJndiName" value="java:jboss/datasources/myDS"/>
        <module-option name="rolesQuery" value="select role, 'Roles' from Principal where name=?"/>
    </login-module>
</authentication>
<jsse truststore-password="mykeypass" truststore-url="${jboss.server.config.dir}/truststore.jks" client-auth="true"/>
<audit>
    <provider-module code="LogAuditProvider"/>
</audit>

password-stacking可選設置為useFirstPass表示此登錄模塊應查找存儲在LoginContext中的信息以用作標識。 與其他登錄模塊堆疊在一起時,可以使用此選項。 默認為假

我瘦親ldap模塊不要放置此可選值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM