【发布时间】:2016-10-22 01:56:35
【问题描述】:
我的程序的第一步要求我搜索公司的活动目录并按部门查找用户列表。到目前为止,这是我的代码:
from ldap3 import Server, Connection, SUBTREE, ALL
server = Server('my.company.local', get_info=ALL)
conn = Connection(server, auto_bind=True)
conn.search('dc=my, dc=company, dc=local', '(givenName=Charles)')
print(conn.entries)
但是,无论我在 conn.search 的搜索过滤器部分中添加什么内容,在我的条目日志中都找不到任何数据。条目日志是一个空列表。当我打开 Active Directory 用户和计算机时,我可以浏览每个部门并查找名称并搜索他们的属性编辑器(是的,那里有一个 GivenName=Charles)。请指出正确的方向,为什么我没有任何想法,所以没有返回数据。谢谢。
编辑:如果相关,print(server.schema) 返回无。此外, print(conn) 返回为insert my.company.local here:389 - cleartext - user: None - not lazy - bound - open - <local: 10.5.112.213:63755 - remote: 10.5.107.41:389> - tls not started - listening - SyncStrategy - internal decoder
这让我非常确定我已连接。
【问题讨论】:
-
没有错误?你确定你正在连接?
conn是否还有其他有趣的方法可以帮助您检查连接? “我们更喜欢可以回答的问题,而不仅仅是讨论。提供详细信息。分享您的研究。” -
您似乎没有向 AD 提供任何凭据。
ldap3与 ADUC 控件不同,它似乎不会自动继承您的用户令牌。因此,您执行了与 AD 的匿名绑定,虽然它成功,但不会为您提供可以运行搜索等的上下文。基本上,您需要以某种方式提供凭据才能进行搜索。