我正在尝试通过 ldaps 查询 LDAP 服务器(Active Directory)。问题是我唯一可用的端口(389 和 636)是 UDP 端口。防火墙规则不允许 TCP(我自己也不明白,所以不要问:))
然而我运气不太好。运行命令
ldapsearch -H ldaps://cmpname.dk:636 -b "ou=CmpName,dc=cmpname,dc=dk" -D "cn=devldap,ou=Service,ou=Misc acconts,ou=CmpName,dc=cmpname,dc=dk" -w "password123" -v
给出消息:
ldap_initialize( ldaps://cmpname.dk:636/??base )
之后它会挂起一段时间然后返回
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
我可以假设这是因为 ldapsearch 仅尝试通过 tcp 进行联系吗?我可以让 ldapsearch 以某种方式联系 UDP 端口吗?
或者这个错误完全是别的什么?
基本上:帮助:)
答案1
AD 仅以非常有限的方式支持基于 UDP 的 LDAP。除了能够查询可用的身份验证方法之外,没有太多其他功能。
Active Directory 仅支持通过 UDP 搜索 根DSE。它以与通过 TCP 执行的搜索相同的方式对通过 UDP 执行的 LDAP 搜索的结果进行编码;具体来说,如 [RFC2251] 中所述,将其编码为一个或多个 SearchResultEntry 消息,后跟 SearchResultDone 消息。这意味着搜索响应的编码方式与 [RFC1798] 中所述不同。Active Directory 仅支持通过 UDP 执行 LDAP 搜索和 LDAP 放弃操作。
-
根 DSE (rootDSE):包含轻量级目录访问协议 (LDAP) 服务器配置状态的无名条目。通常,未经身份验证的客户端可以访问根 DSE 的至少一部分,从而允许它们确定服务器支持的身份验证方法。