我们有一个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))
正确返回Acme-MyApp-ABC-Admin组的成员。我们希望找到所有管理员组的成员。
(&(objectClass=person)(memberOf=cn=*-Admin,ou=Groups,dc=acme,dc=com))
是否可以在DN中放置通配符?
答案 0 :(得分:12)
通常,不支持对DN的语法属性进行通配符搜索。
某些LDAP服务器实现可能会支持它们。您的问题被标记为OpenLDAP,但搜索过滤器看起来更像是AD实现。
我确实在TechNet上找到了“Question about using an LDAP filter to get memberOf from an AD Group”,并说“......不允许使用通配符。” (我假设他遇到了NOT vs no)
-Jim
答案 1 :(得分:0)
我找到的最简单的解决方案是创建一个访问组并将所有权限组添加为成员。
然后基于递归成员资格进行过滤。
(&(objectClass=person)(memberOf:1.2.840.113556.1.4.1941:=CN=Acme-MyApp-Admin-Access,ou=Groups,dc=acme,dc=com))
这样,您只需注意将每个新的管理员组添加为访问组的成员,而无需修改ldap过滤器。