Java Spring LDAP无法从AD LDS读取
我目前有一个SpringBoot应用程序,它从Active Directory获取员工数据,并将其显示为JSON 但是,我不想直接链接到Active Directory,我想使用Active Directory轻型服务 我假设我可以设置连接并以相同的方式连接,但我一直收到错误49(无效凭据)错误。我使用的凭据与在Active Directory上工作的凭据相同 这是Spring.xml配置凭据:Java Spring LDAP无法从AD LDS读取,java,spring,active-directory,ldap,adlds,Java,Spring,Active Directory,Ldap,Adlds,我目前有一个SpringBoot应用程序,它从Active Directory获取员工数据,并将其显示为JSON 但是,我不想直接链接到Active Directory,我想使用Active Directory轻型服务 我假设我可以设置连接并以相同的方式连接,但我一直收到错误49(无效凭据)错误。我使用的凭据与在Active Directory上工作的凭据相同 这是Spring.xml配置凭据: <bean id="contextSource" class="org.springfram
<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>
如果我尝试使用我得到的userDN:
The authentication failed
- [LDAP: error code 80 - 80090304: LdapErr: DSID-0C0903C4, comment: AcceptSecurityContext error, data 20ee, v295a
您需要像cn一样提供用户的完整DN作为“userDn”=jsmith@example.com,ou=xyz,dc=abc,dc-com。您需要像cn一样提供用户的完整DN作为“userDn”=jsmith@example.com,ou=xyz,dc=abc,dc-com。我自己刚刚遇到这个问题,并且能够解决它。我遇到的问题是由于我的AD LDS配置了SASL,所以进行简单绑定不起作用。有关SASL的说明,请参阅LDAPv3认证方法(第6.1节) 我将介绍如何使用ApacheDirectoryStudio设置连接,但我确信Spring文档描述了如何为您的连接配置SASL 在我的测试实验室中,我没有使用TLS进行保护,所以我只能绑定到389 配置身份验证时,您希望选择LDAPv3服务器支持的SASL方法(my AD LDS supported DIGEST-MD5)。输入您的用户凭据和密码(我可以使用屏幕截图中提供的完整DN以及cn)。使用DIGEST-MD5身份验证方法时,还必须在SASL设置下提供SASL领域。这是用于绑定的主体的领域
如果要检查LDAP服务器支持的SASL方法(如AD LDS),可以使用ldp.exe(或Softerra)工具检索和查找支持的LDAP SASL方法。我自己刚刚遇到这个问题,并且能够解决它。我遇到的问题是由于我的AD LDS配置了SASL,所以进行简单绑定不起作用。有关SASL的说明,请参阅LDAPv3认证方法(第6.1节) 我将介绍如何使用ApacheDirectoryStudio设置连接,但我确信Spring文档描述了如何为您的连接配置SASL 在我的测试实验室中,我没有使用TLS进行保护,所以我只能绑定到389 配置身份验证时,您希望选择LDAPv3服务器支持的SASL方法(my AD LDS supported DIGEST-MD5)。输入您的用户凭据和密码(我可以使用屏幕截图中提供的完整DN以及cn)。使用DIGEST-MD5身份验证方法时,还必须在SASL设置下提供SASL领域。这是用于绑定的主体的领域
如果要检查LDAP服务器支持的SASL方法(如AD LDS),可以使用ldp.exe(或Softerra)工具检索和查找支持的LDAP SASL方法。是否尝试使用LDAP浏览器(如Apache Directory Studio)连接到AD LDS?是的。它也不允许我进去。但是,如果我使用Softerra的LDAP浏览器,并使用“当前用户”凭据,我可以进入。如果我尝试在Softerra浏览器中手动添加凭据,也会出现问题。请使用完整的错误堆栈更新问题。错误代码49包含相关的子错误代码,如532、533等,以指示错误的具体原因,例如帐户已禁用、密码已过期。好的,我现在已经这样做了。您是否尝试使用LDAP浏览器(如Apache Directory Studio)连接到AD LDS?是的,我尝试过。它也不允许我进去。但是,如果我使用Softerra的LDAP浏览器,并使用“当前用户”凭据,我可以进入。如果我尝试在Softerra浏览器中手动添加凭据,也会出现问题。请使用完整的错误堆栈更新问题。错误代码49有相关的子错误代码,如532、533等,以指示错误的具体原因,例如帐户禁用、密码过期。好的,我现在已经这样做了。
The authentication failed
- [LDAP: error code 80 - 80090304: LdapErr: DSID-0C0903C4, comment: AcceptSecurityContext error, data 20ee, v295a