我的ldap设置有一些特殊的自定义属性。我有一个名为“GroupCode”的自定义属性。我有一堆具有此特殊属性的条目,我可以写入ldap数据库。假设我有一个属性为“xyz”的条目,另一个属性为“wasd”。我搜索过滤器“(GroupCode = xyz)”和“(GroupCode = wasd)”这些搜索中没有一个返回任何内容。但是,如果我将过滤器更改为“(GroupCode = *)”,则它将返回具有GroupCode属性的所有条目。我检查了属性属性,看起来很正常,apache目录工作室显示它是“String”值,我不知道它为什么不用我提供的过滤器进行搜索。我对ldap结构的了解相当有限,因为它相当复杂。任何人都有任何想法,请让我知道。非常感激。谢谢。
答案 0 :(得分:0)
你能看到你是否可以在命令行的ldapsearch命令中制定相同的搜索条件?
ldapsearch -H ldap://LDAP_SERVER -D LDAP_AUTH_LOGIN -b LDAP_BASE -w PW -x "CRITERIA"
如果是,那么您也可以尝试使用您的标准。
ldapsearch -H ldap://LDAP_SERVER -D LDAP_AUTH_LOGIN -b LDAP_BASE -w PW -x "(GroupCode=xyz)"
答案 1 :(得分:0)
您遇到问题的一个可能原因是您忘记指定自定义属性的EQUALITY和SUSBSTR属性。
以下是名为sAMAccountName的自定义属性的示例:
attributeTypes: ( 1.2.840.113556.1.4.221
NAME 'sAMAccountName'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX '1.3.6.1.4.1.1466.115.121.1.15'
SINGLE-VALUE )