如何找到用户所属的所有组? (LDAP)
How to find all the groups the user is a member? (LDAP)
我正在尝试获取某个用户所属的所有组。
我在 ldap 中有以下结构:
o=myOrganization
ou=unit1
cn=admin
cn=guess
和
ou=users
cn=ann
cn=bob
cn=carla
myOrganization
是组织的实例
unit1
是 OrganizationUnit 的实例
admin
和 guess
都是 GroupOfNames 并且每个人都是成员
ann
、bob
和 carla
是 Person 的实例
目前,我在 python 上使用 ldap 模块,这就是我所拥有的:
import ldap
l = ldap.initialize("ldap://my_host")
l.simple_bind_s("[my_dn]", "[my_pass]")
ldap_result = l.search("[BASE_DN]", ldap.SCOPE_SUBTREE, "(&(objectClass=Person)(cn=ann))", None)
res_type, data = l.result(ldap_result, 0)
print(data)
并且我能够获得用户ann
;但是,我该如何获得 Ann
所属的组?
我试过了,以下内容来自 this 页面:
search_filter='(|(&(objectClass=*)(member=cn=ann)))'
results = l.search_s([BASE_DN], ldap.SCOPE_SUBTREE, search_filter, ['cn',])
但是我得到一个空列表。我也尝试了各种查询组合,但它们都是 return 空的。
PS:我在 linux 机器上使用 OpenLDAP
member=cn=ann
不够。你必须使用 ann 的完整 DN,可能是这样的:
member=cn=ann,ou=users,dc=company,dc=com
我正在尝试获取某个用户所属的所有组。
我在 ldap 中有以下结构:
o=myOrganization
ou=unit1
cn=admin
cn=guess
和
ou=users
cn=ann
cn=bob
cn=carla
myOrganization
是组织的实例unit1
是 OrganizationUnit 的实例
admin
和guess
都是 GroupOfNames 并且每个人都是成员ann
、bob
和carla
是 Person 的实例
目前,我在 python 上使用 ldap 模块,这就是我所拥有的:
import ldap
l = ldap.initialize("ldap://my_host")
l.simple_bind_s("[my_dn]", "[my_pass]")
ldap_result = l.search("[BASE_DN]", ldap.SCOPE_SUBTREE, "(&(objectClass=Person)(cn=ann))", None)
res_type, data = l.result(ldap_result, 0)
print(data)
并且我能够获得用户ann
;但是,我该如何获得 Ann
所属的组?
我试过了,以下内容来自 this 页面:
search_filter='(|(&(objectClass=*)(member=cn=ann)))'
results = l.search_s([BASE_DN], ldap.SCOPE_SUBTREE, search_filter, ['cn',])
但是我得到一个空列表。我也尝试了各种查询组合,但它们都是 return 空的。
PS:我在 linux 机器上使用 OpenLDAP
member=cn=ann
不够。你必须使用 ann 的完整 DN,可能是这样的:
member=cn=ann,ou=users,dc=company,dc=com