从两个不同的分支获取LDAP联系人

从两个不同的分支获取LDAP联系人,ldap,ldap-query,Ldap,Ldap Query,我需要构造一个LDAP搜索查询来获取来自两个不同分支的联系人 第一个分支是: 基本目录:CN=Users,dc=core,dc=dir,dc=mycompany,dc=com 过滤器:cn=* 第二个分支是: 基本目录:OU=People,OU=eProfile,dc=core,dc=dir,dc=mycompany,dc=com 过滤器:cn=* 每个搜索查询本身都可以很好地工作,但是,我无法构造一个从两个分支检索用户的搜索查询 我尝试了以下方法,但无效: 基本目录:dc=core,dc=di

我需要构造一个LDAP搜索查询来获取来自两个不同分支的联系人

第一个分支是:

基本目录:CN=Users,dc=core,dc=dir,dc=mycompany,dc=com

过滤器:cn=*

第二个分支是:

基本目录:OU=People,OU=eProfile,dc=core,dc=dir,dc=mycompany,dc=com

过滤器:cn=*

每个搜索查询本身都可以很好地工作,但是,我无法构造一个从两个分支检索用户的搜索查询

我尝试了以下方法,但无效:

基本目录:dc=core,dc=dir,dc=mycompany,dc=com

过滤器:|((cn=,cn=Users)(cn=,OU=People,OU=eProfile))

基本目录:dc=core,dc=dir,dc=mycompany,dc=com

过滤器:(|(CN=,CN=Users,DC=core,DC=dir,DC=mycompany,DC=com)(CN=,OU=People,OU=eProfile,DC=core,DC=dir,DC=mycompany,DC=com))


我还尝试使用类似“(ou:dn:=People)”的筛选器进行可扩展搜索,但该筛选器没有返回“People”下的用户,它只返回“People”文件夹。

由于两个分支共享一个公共前缀,公共父级的子树请求应该返回两个分支的条目。但是,您可能需要确保只返回用户,这可以通过提及objectClass(person或inetOrgPerson)来实现


我担心“CN=Users”和“OU=People,OU=eProfile”部分,因为这些是我无法检索的部分。它们都在share-base目录中,但无论我使用什么过滤器,一次只能检索其中一个。使用过滤器“(&(objectclass=person)(cn=*)”并没有专门检索它们,而是检索共享公共前缀“dc=core,dc=dir,dc=mycompany,dc=com”中的所有用户。对我来说,似乎只有当我将“OU=People,OU=eProfile”作为基本dir的一部分而不是过滤器时,事情才会起作用。但是,如果我这样做了,将无法检索另一个分支“CN=Users”。我的当前状态是:我一次只能检索一条路径,但是,我无法在一个单独的查询中检索这两条路径。我尝试使用objectcategory和objectclass,但没有OU部分,他们显著缩小了检索列表的范围,但它仍然检索到我不需要的其他分支。从您的解释中不清楚您是否也希望读取容器。从您的解释中不清楚您是否也希望读取容器条目,也不清楚您希望返回或排除哪些条目。如果需要所有条目,则(objectclass=*)将返回所有条目。
base dir: dc=core,dc=dir,dc=mycompany,dc=com
filter: (&(objectclass=person)(cn=*))