【发布时间】:2017-07-01 18:22:27
【问题描述】:
在搜索 CN 时,我在 Windows 2012 R2 上遇到了 Zend_Ldap (Zend_Framework 1.12) 和 PHP 5.6.24 的奇怪问题。基本上,我发送 LDAP 搜索 DN:
CN=ABUsers,CN=Users,DC=escenterprise,DC=net
在与有效的 LDAP 用户成功绑定后。这条 Wireshark 跟踪证实了这一点:
我在跟踪中发现奇怪的是,我的搜索查询得到了正确的响应,其中包括我定位的 CN 中的用户。但是,PHP LDAP 扩展(php_ldap.dll,v5.6.24.0)没有返回该搜索结果,而是尝试使用 ROOT 用户对以下 CN 进行 3 次额外绑定:
- CN=配置,DN=senterprise,DN=net
- CN=DomainDnsZones,DN=escenterprise,DN=net
- CN=ForestDnsZones,DN=escenterprise,DN=net
这些绑定似乎成功了;但是,以下对 3 CN 的额外搜索都失败并显示以下错误消息:
0x1 (Operations error; 000004DC: LdapErr: DSID-0C090752, comment:
In order to perform this operation a successful bind must be completed on the
connection., data 0, v2580): searching:
(&(objectclass=user)(memberOf:1.2.840.113556.1.4.1941:=CN=ABUsers,CN=Users,dc=escenterprise,dc=net))
我了解 3 CN 包含在对我的第一个查询的响应中。但是,我很难理解为什么首先会发生 3 个额外搜索,以及 3 个绑定为 ROOT。
该问题仅发生在一个测试环境中,该环境的配置方式与我的其他测试环境相同,在该环境中一切正常,也就是说,Zend_Ldap 不会返回执行相同搜索的异常,也不会搜索额外的 3 个中国。 如果这可能有帮助,那么出现问题的测试环境位于 LDAP 服务器所在网络之外的数据中心中,并通过 VPN 连接到该数据中心。其他测试环境与 LDAP 服务器在同一栋楼中。
知道为什么它会在特定环境中发生吗?如何避免?
非常感谢!
【问题讨论】:
标签: php windows zend-framework ldap openldap