LDAP中是否有过滤器可以过滤掉没有groupMembership的用户?我可以找到有关按组过滤的信息,但我想说“如果用户不在任何组中,那么就不要包含它们”。
答案 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=*))
的查询是否有效,因为这意味着对每个对象执行隐式查询,这可能很痛苦。