我目前有一个Spring-boot应用程序,它从Active Directory获取Employee数据,并将它们显示为JSON。
但是,我不想直接链接到Active Directory,我想使用Active Directory轻量级服务。
我假设我可以以相同的方式设置连接和连接,但我一直收到错误49(凭据无效)错误。我使用的是与Active Directory相同的凭据。
这是Spring.xml配置凭据:
<bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
<property name="url" value="ldap://example.com:389" />
<property name="base" value=" DC=example,DC=com" />
<property name="userDn" value="jsmith@example.com" />
<property name="password" value="password" />
</bean>
<bean id="ldapTemplate" class="org.springframework.ldap.core.LdapTemplate">
<constructor-arg ref="contextSource" />
<property name="ignorePartialResultException" value="true" />
</bean>
如果我尝试将URL更改为AD LDS URL(使用localhost),我会收到Ldap错误49.有没有人有这些技术的经验?请帮忙。
编辑:
如果我尝试使用我的Active Directory域用户名,我会得到:
The authentication failed
- [LDAP: error code 49 - 8009030C: LdapErr: DSID-0C0903C4, comment: AcceptSecurityContext error, data 2030, v295a
如果我尝试使用userDN,我会:
The authentication failed
- [LDAP: error code 80 - 80090304: LdapErr: DSID-0C0903C4, comment: AcceptSecurityContext error, data 20ee, v295a
答案 0 :(得分:0)
您需要提供用户的完整DN作为“userDn”,例如cn = jsmith @ example.com,ou = xyz,dc = abc,dc-com。
答案 1 :(得分:0)
我自己遇到了这个问题,并且能够解决。我遇到的问题是由于我的AD LDS配置了SASL,所以进行简单的绑定不起作用。有关SASL的说明,请参见LDAPv3身份验证方法rfc2829(第6.1节)。
我将逐步使用Apache Directory Studio建立连接,但是我确定Spring文档描述了如何为您的连接配置SASL。
Configure connection to server在我的测试实验室中,我没有使用TLS进行保护,因此我只能绑定到389。
Configure authentication在配置身份验证时,您想要选择LDAPv3服务器(我的AD LDS支持的DIGEST-MD5)支持的SASL方法。输入用户和密码的凭据(我可以使用屏幕截图中提供的完整DN,也可以使用cn)。使用DIGEST-MD5身份验证方法时,还必须在“ SASL设置”下提供一个SASL领域。这是用于绑定的Principal的领域。
如果要检查LDAP服务器(如AD LDS)支持的SASL方法,可以使用ldp.exe(或Softerra)工具来检索bind metadata并查找支持的LDAP SASL方法。