根据LDAP向JBoss 7上的用户进行身份验证

时间:2015-11-03 11:01:46

标签: authentication ldap jboss7.x

我正在针对LDAP服务器在JBoss 7上的应用程序上尝试设置身份验证。以下是我为配置所遵循的链接

LDAP authentication with JBoss 7

LDAP登录模块对LDAP服务器执行三次查询以登录用户,如下所示:

根据JBoss in Action,JBoss LDAP登录模块的工作原理有3个步骤: - 第一个查询仅使用登录ID查找用户对象。此搜索类似于我们之前向您展示的第一个ldapsearch查询。 - 第二个查询是使用用户的登录ID和密码的登录尝试。 - 最后一个查询获取组对象。 使用密码,但您不必在登录模块中引用它。现在让我们来看看另一个有助于简化开发和测试的登录模块。

查看LDAP服务器日志,看起来我的设置只是执行第一步而不是第二步。因此登录失败并出现密码错误:

10:47:11,448 DEBUG [org.jboss.security](http- / 127.0.0.1:9080-1)PBOX000283:用户名testuser1的密码错误 10:47:11,450 TRACE [org.jboss.security](http- / 127.0.0.1:9080-1)PBOX000244:开始中止方法 10:47:11,450 DEBUG [org.jboss.security](http- / 127.0.0.1:9080-1)PBOX000206:登录失败:javax.security.auth.login.FailedLoginException:PBOX000070:密码无效/需要密码     在org.jboss.security.auth.spi.UsernamePasswordLoginModule.login(UsernamePasswordLoginModule.java:286)[picketbox-4.1.1.Final-redhat-1.jar:4.1.1.Final-redhat-1]

以下是我的standalone.xml中的配置:

            <security-domain name="LDAPAuth" cache-type="default">
                <authentication>
                    <login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required">
                        <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
                        <module-option name="java.naming.provider.url" value="ldap://localhost:389"/>
                        <module-option name="java.naming.security.authentication" value="simple"/>
                        <module-option name="bindDN" value="cn=admin"/>
                        <module-option name="bindCredential" value="********"/>
                        <module-option name="baseCtxDN" value="ou=Internal,cn=Users,dc=company,dc=local"/>
                        <module-option name="baseFilter" value="(cn={0})"/>
                        <module-option name="roleFilter" value="(uniqumember={1})"/>
                        <module-option name="allowEmptyPasswords" value="false"/>
                        <module-option name="Context.REFERRAL" value="follow"/>
                        <module-option name="throwValidateError" value="true"/>
                        <module-option name="roleRecursion" value="0"/>
                        <module-option name="searchScope" value="SUBTREE_SCOPE"/>
                        <module-option name="password-stacking" value="useFirstPass"/>
                        <module-option name="Context.REFERRAL" value="follow"/>
                        <module-option name="throwValidateError" value="true"/>
                    </login-module>
                </authentication>
            </security-domain>

0 个答案:

没有答案