我希望有人能帮我解决一个非常令人沮丧的问题。
目前我正在尝试使用AD LDS实例对Spring Security 3.0 Web App进行身份验证,但我不断收到此错误“Bad Credentials”。不幸的是,我现在还没有其他任何事情要做。
以下是正在使用的安全配置的副本:
<authentication-manager alias="ldapAuthenicationManager">
<ldap-authentication-provider user-dn-pattern="CN={0},OU=Users,O=JLP,C=UK" >
</ldap-authentication-provider> </authentication-manager>
<ldap-server url="ldap://servner ip/o=JLP,c=UK" manager-dn="CN=Manager,O=JLP,C=UK" manager-password="manager" />
我怀疑问题是由<Ldap server>
标记引起的,并且没有正确配置manager-dn。管理器的DN直接从AD LDS复制 - 我没有提供足够的信息吗?或者密码是否需要加密\哈希?
有没有人用LDS做过这样的事情 - 你是怎么解决这个问题的?
Applogies这是如此模糊,但这是我必须继续的信息。是否有任何人有任何建议或解决方案?
感谢所有帮助!
干杯
沫
答案 0 :(得分:3)
我不确定LDS的情况是否会有显着差异,但您是否可以尝试升级到spring security 3.1,因为它有专门的AD身份验证器。
它不需要经理帐户,因为它尝试使用经过身份验证的用户名/密码进行绑定。配置也很少(无DN,搜索模式等)
<security:authentication-manager>
<security:authentication-provider ref="activeDirectoryAuthenticationProvider"/>
</security:authentication-manager>
<bean id="activeDirectoryAuthenticationProvider"
class="org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider">
<constructor-arg value="${activedirectory.domain}" />
<constructor-arg value="${activedirectory.server}" />
<property name="convertSubErrorCodesToExceptions" value="true"/>
</bean>
其中domain = example.com(来自您的示例,jlp.uk)和server = ldap:// ip
答案 1 :(得分:1)
我记得我遇到了同样的问题,解决方案是设置manager-dn
的值
到manageruser@yourdomain
e.g。
<ldap-server url="ldap://servner ip/o=JLP,c=UK" manager-dn="morrislgn@example.com" manager-password="manager" />
答案 2 :(得分:0)
感谢您的回答,他们非常乐于助人。
还发现您在manager-dn中使用的用户帐户需要添加到LDS中的读者角色,以便进行搜索。
如果您将用户角色添加到Administrators组,则可以连接但不能搜索。
为你的帮助干杯
答案 3 :(得分:0)
这里有轻微的坏消息,但对于那些通过Google偶然发现这一点的人来说,我发现有关配置LDAP连接的最有用的工具是安装Apache Directory Studio LDAP browser。通过这个工具,我能够获得足够详细的错误消息,以发现我的LDAP配置有什么问题,以及如何纠正它。