ldap搜索的奇怪行为(本地错误)

时间:2018-06-12 14:53:43

标签: php ldap lotus-notes lotus-domino openldap

我们正在苦苦挣扎几天,因为有一个奇怪的ldap错误。以下代码在一年多的时间内运行良好。突然它为少数用户CN返回local error (0x52)

相关代码是(连接和绑定始终有效,只有某些用户CN的搜索失败):

$ldapconn = ldap_connect("LDAP URL")
    or die("Connection failed.");

ldap_bind($ldapconn, 'USERNAME', 'PASSWORD')
    or die("Binding failed");

$ldapsearch = ldap_search($ldapconn, '', '(&(uniqueMember=CN=FIRSTNAME LASTNAME,O=COMPANY)(objectClass=groupOfNames))')
    or die("Search failed: ".ldap_error($ldapconn));

这个奇怪的是这个代码适用于大多数用户,但有些代码不适用。

例如:

$ldapsearch = ldap_search($ldapconn, '', '(&(uniqueMember=CN=FIRSTNAME_1 LASTNAME_1,O=COMPANY)(objectClass=groupOfNames))')
    -> works

$ldapsearch = ldap_search($ldapconn, '', '(&(uniqueMember=CN=FIRSTNAME_2 LASTNAME_2,O=COMPANY)(objectClass=groupOfNames))')
    -> fails

但两个CN肯定存在(在softerra ldap浏览器中,两个搜索命令都有效,在Lotus Notes中,用户看起来都相同,只有一些ldap客户端和php代码失败)。

我们还在此页面上找到了ibm的以下声明: https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_71/apis/ldap_error_condt.htm

0x52 - Some local error occurred. This usually indicates that either the LDAP support (IBM® i option 32) is not installed on the system, or a malloc() operation has failed

安装了Ldap支持,我们不知道内存分配错误可能在哪里。

如果您需要更多信息,请告诉我们。

感谢任何帮助

更新:

我们尝试使用cli搜索CentOS并获得相同的本地错误(因此它不是php ldap问题,更可能是注释多米诺服务器的问题):

ldapsearch -D "USERNAME" -w PASSWORD -h LDAP_URL -b "" -s sub "(&(uniqueMember=CN=FIRSTNAME LASTNAME,O=COMPANY)(objectClass=groupOfNames))"
    -> ldap_result: Local error (-2)

始终为同一用户发生错误。出现问题的用户CN没有特殊字符或类似字符,并且不包含双重姓氏或姓氏。

0 个答案:

没有答案