Active directory LDAP查询中的子过滤器

Active directory LDAP查询中的子过滤器,active-directory,ldap,Active Directory,Ldap,如果我只希望OU的用户的名称以“sales”开头,那么查询将如何进行 例如: (&(objectCategory=person)) 一般来说,没有办法通过用户的OU名称查询用户,因为a)用户通常不包含有关其所属OU的任何知识(例如,与组成员身份不同),因此无法将任何内容添加到筛选器b)LDAP筛选器非常有限,并且没有子筛选器或子查询之类的内容 问题的部分解决方案可能是将ldap_search的BaseDN参数设置为OU path 更复杂的查询通常通过某种客户端代码来处理。看起来您正在使

如果我只希望OU的用户的名称以“sales”开头,那么查询将如何进行

例如:

(&(objectCategory=person))

一般来说,没有办法通过用户的OU名称查询用户,因为a)用户通常不包含有关其所属OU的任何知识(例如,与组成员身份不同),因此无法将任何内容添加到筛选器b)LDAP筛选器非常有限,并且没有子筛选器或子查询之类的内容

问题的部分解决方案可能是将ldap_search的BaseDN参数设置为OU path


更复杂的查询通常通过某种客户端代码来处理。

看起来您正在使用Active Directory,我不确定它是否有效。但是在纯LDAP实现中存在一个名为ExtensibleMatch的特性,这似乎在中得到了正确的解释。你还会发现一些有用的例子


JP

目录数据库中的对象与一个属性
objectClass
相关联,该属性值决定了哪些属性必须或可能包含在对象中。
organizationalPerson
及其后代
inetOrgPerson
允许在对象中包含
ou
属性。如果应用程序需要定位具有具有特定值的
ou
属性的对象,请将
ou
包含在相等筛选器中:

或者,要将搜索请求返回的对象限制为具有确切大小写的
ou
属性的对象,请使用(符合LDAP的专业质量服务器支持可扩展匹配筛选器):

或者,如果要确定对象是否从属于
ou
,也就是说,条目的DN类似于
uid=user.0,ou=people,dc=example,dc=com
,请使用包含DN的可扩展匹配筛选器:

(ou:dn:caseExactMatch:=people)
或者,要确定哪些对象具有属性
ou
,请使用“状态筛选器”:


上述所有技术很可能都要求对
ou
属性进行索引。有关搜索请求和响应的更多一般信息,请参阅。

Thanx,如果它将是一个非ou的组,那么我如何执行此操作?例如:(&(objectCategory=person)(memberof=cn=FooUsers,ou=Groups,dc=example,dc=com))
(ou:caseExactMatch:=Organization Name)
(ou:dn:caseExactMatch:=people)
(ou=*)