列出组中的用户LDAP python

列出组中的用户LDAP python

问题描述:

我是LDAP新手。所以我并不真正了解我的所有条款,并完全理解所有条款。但是,我正在研究现有系统并完成所有设置。我只是添加一个方法。 我想在Python中使用LDAP查询编写一个方法。我在LDAP浏览器上玩过,可以看到我的查询是正确的。但是,我不知道如何把它放在一个Python方法返回一个列表。该方法需要返回所有用户的用户名列表。到目前为止,我有:列出组中的用户LDAP python

def getUsersInGroup(self, group): 
    searchQuery= //for privacy Im not going to share this 
    searchAttribute=["username"] 
    results = self.ldap.search_s(self.ldap_root, ldap.SCOP_SUBTREE, 
     searchQuery, searchAttribute) 

我不确定如何从这里走。我不完全理解search_s方法返回的内容。我在网上阅读,它更好地使用search_s搜索方法,因为while循环可以避免。你能否提供一下我可以从哪里出发的例子。谢谢。

您需要执行一个LDAP搜索是这样的:

# Find all Groups user is a member of: 
import ldap 
l = ldap.initialize("ldap://my_host") 
l.simple_bind_s("[my_dn]", "[my_pass]") 
myfilter = "(member=(CN=UserName,CN=Users,DC=EXAMPLE,DC=COM))" 
# for all groups including Nested Groups (Only Microsoft Active Directory) 
#  (member:1.2.840.113556.1.4.1941:=CN=UserName,CN=Users,DC=EXAMPLE,DC=COM) 
ldap_result = l.search("[BASE_DN]", ldap.SCOPE_SUBTREE, myfilter, None) 
res_type, data = l.result(ldap_result, 0) 
print(data) 

您需要使用用户的完整DN。