2017-12-18 140 views
0

我是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循環可以避免。你能否提供一下我可以從哪裏出發的例子。謝謝。

回答

0

您需要執行一個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。