列出组LDAP python中的用户

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列出组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中的用户的主要内容,如果未能解决你的问题,请参考以下文章

如何将 LDAP AD 组映射到 python flask AppBuilder 中的用户角色

Spring LDAP,检查指定组中用户的成员身份

Spring Security Ldap,只登录指定组中的用户

使用ldap列出来自用户的组

如何将所有 memberOf 属性分配给 LDAP 中的特定用户

如何将 AD 组映射到用户角色 Spring Security LDAP