LDAP过滤器仅允许具有组成员身份的用户

时间:2016-07-06 18:36:47

标签: ldap ldap-query

LDAP中是否有过滤器可以过滤掉没有groupMembership的用户?我可以找到有关按组过滤的信息,但我想说“如果用户不在任何组中,那么就不要包含它们”。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

eDirectory例如在Group上存储Member,列出作为成员的用户。它将GroupMembership存储在用户上,列出用户所属的所有组。

另一方面,Active Directory将成员存储在组中,但不会在用户上静态存储组成员资格数据。而是每次查询属性时,它都会定义一个名为MemberOf的用户动态属性。

也就是说,当您向AD询问该属性的值时,它会在后台执行LDAP查询,其功能类似于(&(objectClass=Group)(Member=cn=MyUser,ou=MyOU,dc=domain,dc-local))

因此该属性是MemberOf,但我不确定(!(memberOf=*))的查询是否有效,因为这意味着对每个对象执行隐式查询,这可能很痛苦。