首页 > 解决方案 > 如何在 LDAP 中搜索允许部分 dn 或 uo 匹配的员工?

问题描述

还有一个 LDAP 问题。

tl;博士

这是我想查找的示例 dn 和员工:

CN=ID304397,OU=Personal,OU=UnitedStates,OU=Department,DC=ad,DC=companyName,DC=net

我想查找其 DN 包含值OU=PersonalDC=adDC=companyName和的所有员工DC=netgivenName=Name*同时允许其他 OU 和 DC。

所需找到的员工的示例 DN

CN=ID30434,OU=Personal,OU=Africa,OU=Department,DC=ad,DC=companyName,DC=net
CN=ID1234,OU=Personal,OU=Hawaii,OU=OtherDepartment,DC=additionalDc,DC=ad,DC=companyName,DC=net

更多细节:

使用 Softerra LDAP Administrator 我尝试使用以下过滤器搜索以下 DN

除其他外,也一无所获。

在获得查询结果后,我不想诉诸于删除 ou 子句并在前端进行过滤。

TIA

标签: c#active-directoryldap

解决方案


此任务可以分解为两个微不足道的组件:

  1. 查询所有名为 的组织单位的域Personal
    • 搜索基础 DN:DC=ad,DC=wedani,DC=net
    • 查询过滤器:(&(ou=Personal)(objectClass=organizationalUnit))
  2. 对于在步骤 1 中发现的每个 OU:
    • 查询该 OU 下的用户:
      • 搜索基础 DN:<distinguishedName of OU>
      • 查询过滤器:(&(objectCategory=person)(objectClass=user)(givenName=Name*))

对于所有请求,您需要将查询范围限定为subtree(例如,递归搜索基本 DN 下的任何容器)


推荐阅读