2016-07-06 108 views
0

LDAP中是否有过滤器可以让我过滤掉没有groupMembership的用户?我可以找到关于按组过滤的信息,但我想说“如果用户不在任何组中,则不要包含它们”。LDAP过滤器只允许拥有组成员身份的用户

+0

请访问https://confluence.atlassian.com/display/DEV/How+to+write+LDAP+search+filters – AK1

+0

您正在使用哪个LDAP服务器?属于任何组或特定组的用户? – jwilleke

回答

1

那会是这样的:(&(objectClass=person)(!(groupMembership=*)))。这只是要求所有用户在哪里groupMembership不存在。假设groupMembership是用户的反向链接属性。

+0

仅适用于eDirectory。 – jwilleke

+0

你的意思是'groupMembership'属性?是的,我不确定他们正在使用哪种LDAP。 – ChadSikorra

0

并非所有目录都为用户所属的每个组存储静态属性。

eDirectory例如存储本集团的成员,列出成员的用户。它将GroupMembership存储在用户上,列出了用户所属的所有组。

另一方面,Active Directory将成员存储在组上,但不会静态存储用户上的组成员身份数据。相反,它定义了一个名为MemberOf的用户动态属性,每次查询该属性时都会对其进行评估。

也就是说,当你问AD该属性的值,它的LDAP查询中,它的功能有点像(&(objectClass=Group)(Member=cn=MyUser,ou=MyOU,dc=domain,dc-local))

这样的属性是的memberOf的背景,但我不能肯定查询对于(!(memberOf=*))会起作用,因为这暗示对每个对象执行隐式查询,这可能是痛苦的。

相关问题