LDAP查询,用于枚举组子组的所有用户
此LDAP查询成功枚举组中的所有用户:LDAP查询,用于枚举组子组的所有用户,ldap,Ldap,此LDAP查询成功枚举组中的所有用户: memberOf=CN=MySubGroup1,OU=MyGroup1,OU=Global Groups,DC=mycompany,DC=com 组MyGroup1有两个子组:MySubGroup1、MySubGroup2。 为了获取MyGroup1的所有用户,我可以进行一个查询以获取MySubGroup1的用户,另一个查询以获取MySubGroup1的用户,然后进行联合 但是,我想问的是,如何仅使用一个LDAP查询就能获得相同的结果, 询问MyGrou
memberOf=CN=MySubGroup1,OU=MyGroup1,OU=Global Groups,DC=mycompany,DC=com
组MyGroup1有两个子组:MySubGroup1、MySubGroup2。
为了获取MyGroup1的所有用户,我可以进行一个查询以获取MySubGroup1的用户,另一个查询以获取MySubGroup1的用户,然后进行联合
但是,我想问的是,如何仅使用一个LDAP查询就能获得相同的结果,
询问MyGroup1和子组中的所有用户
有什么想法吗?没有所谓的
子组,只有组。正确的术语是下属,
i、 例如,cn=mysubgroup1
从属于ou=mygroup1
,依此类推
在LDAP搜索请求中使用以下参数:
- 基本对象:
OU=MyGroup1,OU=Global Groups,DC=mycompany,DC=com
- 搜索范围:
sub
如果ou=mygroup1
下有多个“级别”,则为one
- 过滤器:
(|(cn=mysubgroup1)(cn=mysubgroup2))
- 请求的属性:值为可分辨名称的多值属性
小组每个成员的
这些搜索请求参数应生成包含两个条目的搜索结果,即
以及其值为每个组成员的可分辨名称的属性
另见
如果您的服务器是Microsoft Active Directory,则可以使用。其中一条规则基本上满足了您的需求。看
试试这个:
memberof:1.2.840.113556.1.4.1941:=CN=Some Group,OU=My Organization Unit,DC=company,DC=com
引述该答案:
[…]使用Microsoft AD LDAP时,可以使用LDAP_匹配_规则_IN_链匹配规则使用嵌套组进行授权。这比在客户机上搜索子组快得多,因为它是在DC服务器上完成的,通过网络进行的查询更少
1.2.840.113556.1.4.1941 LDAP_匹配_规则_IN_链此规则仅限于应用于DN的筛选器。这是一个特殊的“扩展匹配”操作符,它沿着对象中的祖先链一直走到根,直到找到匹配为止
在哪种编程语言/系统中?我想问的是如何在一个LDAP查询中实现这一点。因此,答案与编程语言(java、c、scala…)无关。我不认为您可以在直接的LDAP查询中实现这一点,对不起……有人可以用java来说明这一点吗?谢谢,您救了我的命!