2016-07-06 45 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=*))會起作用,因爲這暗示對每個對象執行隱式查詢,這可能是痛苦的。

相關問題