python:ldap where子句

python:ldap where子句,python,ldap,Python,Ldap,如何获取“ou=active,ou=infra,o=company”中所有用户的UID,其中管理者的cn=ahome?更改此行的最后一部分,即筛选器: conn=ldap.initialize('ldap://ldap.server.com:389') results=conn.search_s('ou=active,ou=infra,o=company', ldap.SCOPE_SUBTREE,'uid=bob') results=[('uid=bob,ou=active,ou=infra,

如何获取“ou=active,ou=infra,o=company”中所有用户的UID,其中管理者的cn=ahome?

更改此行的最后一部分,即筛选器:

conn=ldap.initialize('ldap://ldap.server.com:389')
results=conn.search_s('ou=active,ou=infra,o=company', ldap.SCOPE_SUBTREE,'uid=bob')

results=[('uid=bob,ou=active,ou=infra,o=company', {'telephonenumber': [''], 'cn': ['Bob Bensen (bob)'], 'uidnumber': ['123'], 'manager': ['cn=Andy Home (ahome),ou=sector,ou=dept,o=company'])]

results[0][1]['manager']  ---> ['cn=Andy Home (ahome),ou=sector,ou=dept,o=company']
例如:

results = conn.search_s('ou=active,ou=infra,o=company', ldap.SCOPE_SUBTREE,'uid=bob')

请注意,
manager
属性存储管理器对象的完整DN,因此仅指定
ahome
是不够的。在进行搜索之前,您可能需要首先查找DN(它应该是每个LDAP结果的第一项)。

LDAP where子句被称为筛选器,但您需要显示一些代码,说明如何获得这些结果,以便任何人说些有帮助的话……我想出来了,我可以执行results=conn.search\s('ou=active,ou=infra,o=company',ldap.SCOPE_子树,'manager=cn=*ahome*,ou=sector,ou=dept,o=company')
results = conn.search_s(
    'ou=active,ou=infra,o=company',
    ldap.SCOPE_SUBTREE,
    'manager=cn=Andy Home (ahome),ou=sector,ou=dept,o=company'
)