java - digest-uri 与为此服务器注册的任何 LDAP SPN 都不匹配

标签 java active-directory ldap openldap sasl

我的目标是使用 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/

相关文章:

java - 端口 8080 已在使用中,并且没有列出使用 8080 的进程

java - 我什么时候不应该使用 Java 快捷方式运算符 &

active-directory - 我们可以使用 Power App 中的 Office365Users 连接器获取名为员工 ID 的 Active Directory 属性吗

java - 在weblogic中从AD获取自定义用户属性

php - LDAP 更改密码 PHP

java - 如何迭代 arraylist ,在每个对象中执行操作并将其存储回 arraylist 中?

java - 是否有与 Javascript 方法 fromCharCode() 等效的 Java?

c++ - 如何使用 win32 api 获取域用户帐户列表?

powershell - 我将如何编写一个powershell脚本来ping AD,输出在线系统的TXT,然后使用该文件输出已安装软件的列表

c# - 使用 Azure Function 更新本地 AD 用户配置文件