列出组中的用户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。

以上是 列出组中的用户LDAP python 的全部内容, 来源链接: utcz.com/qa/261338.html

回到顶部