在 AD 中,我有多值属性“departmentNumber”,它可以存储多个值,如“dept1”和“dept2”。
我正在寻找 ldap 过滤器,它应该检索具有超过 1 个部门编号的用户。
我查看了其他线程,但这似乎不起作用。
任何帮助表示赞赏。
最佳答案
服务器将为与搜索参数匹配的每个条目返回多值属性的每个值(假设连接的授权状态允许)。搜索响应将是与搜索参数匹配的对象列表,并且每个对象都是在搜索请求的请求属性参数中指定的属性列表(名称和值对)。多值属性的所有值都将包含在搜索结果中。
如果客户需要dept1
和 dept2
,然后将它们作为断言包含在过滤器中,例如:
(&(departmentNumber=dept1)(departmentNumber=dept2)(objectClass=whatever..))
示范
鉴于以下条目,其中只有
cn
和 departmentNumber
显示:$ ldapsearch --baseDN 'ou=people,c=us' --searchScope one '(&)' cn departmentNumber
dn: cn=user.1,ou=People,C=us
cn: user.1
departmentNumber: dept1
departmentNumber: dept2
dn: cn=user.2,ou=People,C=us
cn: user.2
departmentNumber: dept2
请注意,搜索响应包括两个条目,以及两个值
departmentNumber
为 cn=user.1,ou=people,c=us
.
关于ldap 过滤器来搜索一个属性的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19818208/