如何使用Kerberos在jboss eap中配置ldap?

时间:2017-06-13 17:43:05

标签: active-directory ldap kerberos jboss-eap-6

目前,我已经通过在standalone.xml中指定用户名来为jboss-eap中的特定用户配置了我的应用程序Kerberos身份验证,并且它正常工作。但是希望在ldap的基础上配置它,即AD中的用户将能够直接进行身份验证,我不需要在standalone.xml中指定用户名。

Standalone.xml工作正常: - 在stanadalone.xml中指定用户名

<security-domains>
    <security-domain name="SPNEGO" cache-type="default">
        <authentication>
            <login-module code="SPNEGO" flag="required">
                <module-option name="serverSecurityDomain" value="host"/>
            </login-module>
        </authentication>
        <mapping>
            <mapping-module code="SimpleRoles" type="role">
                <module-option name="saurabhgupta@ECO.COM" value="User"/>
            </mapping-module>
        </mapping>
    </security-domain>
    <security-domain name="host" cache-type="default">
        <authentication>
            <login-module code="Kerberos" flag="required">
                <module-option name="debug" value="true"/>
                <module-option name="storeKey" value="true"/>
                <module-option name="refreshKrb5Config" value="true"/>
                <module-option name="useKeyTab" value="true"/>
                <module-option name="doNotPrompt" value="true"/>
                <module-option name="keyTab" value="/spengo/jboss-eap-6.2/bin/krb.keytab"/>
                <module-option name="principal" value="HTTP/vm428.eco.com@ECO.COM"/>
            </login-module>
        </authentication>

Standalone.xml: - 配置ldap

<security-domains>
    <security-domain name="SPNEGO" cache-type="default">
        <authentication>
            <login-module code="SPNEGO" flag="required">
                <module-option name="password-stacking" value="useFirstPass"/>
                <module-option name="serverSecurityDomain" value="host"/>
            </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.provider.url" value="ldap://AD IP:389"/>
                <module-option name="java.naming.security.authentication" value="simple"/>
                <module-option name="bindDN" value="CN=siddharth,CN=Users,DC=eco,DC=com"/>
                <module-option name="bindCredential" value="password"/>
                <module-option name="baseCtxDN" value="CN=Users,DC=eco,DC=com"/>
                <module-option name="baseFilter" value="(uid={0})"/>
                <module-option name="searchScope" value="ONELEVEL_SCOPE"/>
                <module-option name="allowEmptyPasswords" value="true"/>
            </login-module>
        </authentication>
    </security-domain>
    <security-domain name="host" cache-type="default">
        <authentication>
            <login-module code="Kerberos" flag="required">
                <module-option name="debug" value="true"/>
                <module-option name="storeKey" value="true"/>
                <module-option name="refreshKrb5Config" value="true"/>
                <module-option name="useKeyTab" value="true"/>
                <module-option name="doNotPrompt" value="true"/>
                <module-option name="keyTab" value="/spengo/jboss-eap-6.2/bin/krb.keytab"/>
                <module-option name="principal" value="HTTP/vm428.eco.com@ECO.COM"/>
            </login-module>
        </authentication>
    </security-domain>

我的环境包括: - 使用JBoss EAP 6.2客户端的Linux服务器,Windows 7 64位+ Chrome Windows Server 2008 Active Directory(充当KDC)

但在浏览器窗口中遇到401的错误。

**Error:-** JBWEB000065: HTTP Status 401 - 
--------------------------------------------------------------------------------
JBWEB000309: type JBWEB000067: Status report
JBWEB000068: message 
JBWEB000069: description JBWEB000121: This request requires HTTP authentication.
--------------------------------------------------------------------------------
JBoss Web/7.2.2.Final-redhat-1

有人有这个问题并以某种方式解决了吗?

0 个答案:

没有答案