You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LDAP查询:如何跨多个OU筛选AD中属于指定组的所有用户

LDAP跨OU查询AD用户最优方案

前置配置要求

单次跨OU查询的前提是先配置两个查询参数:

  • 基础查询DN设置为根域:DC=comp,DC=com
  • 搜索范围设置为子树(Subtree),允许遍历根域下所有层级的对象

原有查询失效原因

LDAP标准中distinguishedName(dn)属性仅支持精确匹配和后缀通配,不支持中间位置的通配符匹配,你使用的(dn=OU=users,ou=*,DC=comp,DC=com)不符合LDAP语法规范,因此返回空结果。

对应场景过滤方案

场景1:查询所有城市下OU=users内的全部用户

如果不需要按用户组过滤,仅需要拉取所有users OU下的用户,使用AD专属的祖先DN匹配规则即可,兼容所有2008 R2及以上版本的AD域服务:

(&(objectCategory=person)(objectClass=user)(1.2.840.113556.1.4.1941:=OU=users,DC=comp,DC=com))

其中OID1.2.840.113556.1.4.1941是AD提供的递归祖先匹配规则,会匹配所有父级路径中包含OU=users,DC=comp,DC=com的用户对象,不受上层city OU的名称限制。

场景2:查询属于指定用户组的全部用户(原始核心需求)

如果需要筛选出属于特定组的用户,直接使用memberOf属性匹配即可,会自动跨所有OU检索符合条件的用户:

  • 不需要匹配嵌套组成员时使用:
(&(objectCategory=person)(objectClass=user)(memberOf=CN=你的指定组名,OU=group,OU=对应城市OU,DC=comp,DC=com))
  • 需要匹配嵌套组(用户属于指定组的子组也命中)时使用递归匹配规则:
(&(objectCategory=person)(objectClass=user)(memberOf:1.2.840.113556.1.4.1941:=CN=你的指定组名,OU=group,OU=对应城市OU,DC=comp,DC=com))

你只需要把过滤器内的组DN替换为你实际要筛选的目标组的完整DN即可。

内容的提问来源于stack exchange,提问作者Durja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 20:24:03