我的目标是使用 SASL 和来自 Ubuntu 终端的 DIGEST-MD5 机制来验证“Active Directory 的用户”。
我输入了以下命令:
ldapsearch -H ldap://test.my.company:389 -b "DC=test,DC=my,DC=company" -D "CN=Aron Herrera,CN=Users,DC=test,DC=my,DC=company" -U aron -w "my-password" -Y DIGEST-MD5
我得到了:
SASL/DIGEST-MD5 authentication started
ldap_sasl_interactive_bind_s: Invalid credentials (49)
additional info: 80090303: LdapErr: DSID-0C0904B2, comment: The digest-uri does not match any LDAP SPN's registered for this server., data 0, v1db0
你能给我任何信息(链接、教程、文档)来实现我的目标吗?
提前致谢。
最佳答案
我最近遇到了同样的问题。在折磨我的大脑几个小时后,我使用 Wireshark 捕获了一些数据包。你和我遇到的问题与 ldapsearch 处理 digest-uri 的方式有关。
首先,它在 test.my.company 上进行 DNS 查找(显然)并使用获得的 IP 构建digest-uri .它的结尾是这样的:ldap/10.10.10.10(例如)。这不是您的 AD 服务器所期望的。
如果您使用 ldp.exe 检查拥有 Active Directory 角色的机器,您将看到一个名为 serviceProviderName 的 LDAP 属性。它确实看起来像 ldap/test.my.company(加上其他变体),但它们都没有 IP。
有些人建议将 PTR 添加到您的 DNS 服务器到 test.my.company 服务器。它对我不起作用。其他人尝试将新的 SPN (serviceProviderName) 添加到 AD 机器的 LDAP 属性(如果我的生活依赖它,我不会这样做)。
我认为这与 ldapsearch 的实现方式有关。使用 Apache 的 Directory Studio 执行的相同测试运行良好。
关于java - digest-uri 与为此服务器注册的任何 LDAP SPN 都不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40107692/