![](/img/trans.png)
[英]Authentication request failed: Bad credentials [LDAP: error code 49 - data 52e, v1db1]
[英]LDAP Authentication with Spring Security throwing LDAP error 49, 52e for any userDn
我有从Spring Security下载的基本示例3.2.4 ldap-xml脚本。 唯一修改的部分是application security context.xml
,它指向我的ldap服务器而不是虚拟服务器。
<bean id="contextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
<constructor-arg value="ldap://server:389"/>
<property name="userDn" value="cn=myUsername"/>
<property name="password" value="myPassword"/>
</bean>
现在,无论我提供的userDn
值是什么,无论是“ afdjljaf”还是“ 1234244”甚至是“” 。 我得到错误
“ LDAP:错误代码49-80090308:LdapErr:DSID-0C0903A9,注释:AcceptSecurityContext错误,数据52e”。
使用AdFind.exe“ http://www.joeware.net/freetools/tools/adfind/usage.htm ”,使用相同的userDn(假设我的userDn为XYZ,密码为passxyz),我可以在ldap中登录服务器使用命令
“ Adfind.exe -h服务器:端口-u XYZ -up passxyz”
我能够成功连接到ldap服务器并浏览目录。
有人可以告诉我应该放入安全上下文xml中的userDn和密码属性的等效值吗?
userDN应该类似于“ cn = myUsername,ou = myDepartment,dc = mydomain,dc = com”。 您的用户名应包含分区名,还可以使用spring安全标签。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:s="http://www.springframework.org/schema/security"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd">
<s:ldap-server id="contextSource" url="${ldap.url}" manager-dn="${ldap.userDn}"
manager-password="${ldap.password}"/>
</beans>
更新:
您的服务器网址也应包含分区名称。 “LDAP://10.0.0.1:389 / DC = myCompany中,DC = COM,DC = TR”
一般来说,DN或专有名称包含具有活动目录的对象的完整路径。
CN=myUsername
不是有效的DN。 首先,在您放置myUsername
,实际上应该使用对象的名称(而不是它们的samAccountName或UserPrincipalName,即用户名或它们的displayName),并且应包含域名和容器,例如以下示例:
CN=Joe Bloggs,OU=Users,OU=Company,DN=domainname,DN=local
可以通过查看活动目录对象的distinguishedName
属性来访问它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.