目前,我已经通过在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
有人有这个问题并以某种方式解决了吗?