memberOf 中的 LDAP 搜索通配符

LDAP Search Wildcards in memberOf

我们有一个 LDAP,其中包含许多遵循此模式的组:

Acme-MyApp-ABC-Admin
Acme-MyApp-ABC-Bottlewasher
Acme-MyApp-ABC-Cook
Acme-MyApp-DEF-Admin
Acme-MyApp-DEF-Bottlewasher
Acme-MyApp-DEF-Cook

等等重复了很多次。

(&(objectClass=person)(memberOf=cn=Acme-MyApp-ABC-Admin,ou=Groups,dc=acme,dc=com))

正确 returns Acme-MyApp-ABC-Admin 组的成员。我们想找到所有管理员组的成员。

(&(objectClass=person)(memberOf=cn=*-Admin,ou=Groups,dc=acme,dc=com))

是否可以在 DN 中放置通配符?

一般情况下,不支持对 DN 的语法属性进行通配符搜索。

某些 LDAP 服务器实现可能支持它们。您的问题被标记为 OpenLDAP,但搜索过滤器似乎更像是 AD 实现。

我确实在 TechNet 上找到“Question about using an LDAP filter to get memberOf from an AD Group”,“.. 不允许使用通配符。” (我假设他遇到了 NOT vs no)

-吉姆

虽然我不认为这可以直接用 ldap 过滤器来完成。我遇到过很多次类似的需求,我的方法如下:

创建一个包含所有相关组的组,在您的例子中是管理员组。

  • Acme-MyApp-Admins
    • Acme-MyApp-ABC-Admin
    • Acme-MyApp-DEF-Admin

然后根据该组的递归成员设置过滤器。

(&(objectClass=person)(memberOf:1.2.840.113556.1.4.1941:=CN=Acme-MyApp-Admins,ou=Groups,dc=acme,dc=com))

这样你只需要注意每个新的管理组都被添加为访问组的成员,而不需要修改 ldap 过滤器。