【问题标题】:Exception in Zend_Ldap when searching for a CN搜索 CN 时 Zend_Ldap 出现异常
【发布时间】: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


    【解决方案1】:

    我在位于我的一个数据中心的测试环境中遇到了这个问题。原来是我的 PHP 设置将 optReferrals 更改为 TRUE。这适用于本地环境,但不适用于我网络之外的任何东西。确保设置默认为 FALSE 后,它工作正常,我没有看到任何“ROOT”绑定。

    希望这会有所帮助。

    【讨论】:

    • 太棒了!关闭 optReferrals 也解决了我的问题。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    • 2011-12-15
    相关资源
    最近更新 更多