【发布时间】:2020-02-10 15:20:51
【问题描述】:
我们有 python 应用程序,它从 ldap 读取条目并更新其他数据库中的用户。现在我遇到的问题是,当我跑步时
ldapsearch 'sAMAccountName=myID`
我能够成功获取属性employeeID。
但是从 python 代码我无法打印employeeID 属性。
我的python代码如下:
import ldap
import datetime
conn = ldap.initialize('ldap://url:port')
conn.simple_bind_s('CN=ABC,OU=XYZ,OU=AAA,DC=users,DC=net', 'password')
from ldap.controls import SimplePagedResultsControl
LDAP_ATTRS = ['*']
LDAP_FILTER = (
'(&(sAMAccountName=myId))'
)
pager = SimplePagedResultsControl(
criticality=True,
size=1500000,
cookie=''
)
msgid = conn.search_ext(
'DC=users,DC=net', ldap.SCOPE_SUBTREE,
LDAP_FILTER.format(''),
LDAP_ATTRS, serverctrls=[pager]
)
rtype, rdata, rmsgid, serverctrls = conn.result3(msgid)
for dn, entry in rdata:
for ent in entry:
print(ent)
我不知道为什么我不能打印属性之一 (employeeID)。由 ldapsearch 命令提供。
编辑
首先我怀疑一些假设,比如用户应该有权读取属性。但我不确定我的假设是否正确。
由于我是 python 和 ldap 的新手,因此我阅读了有关 ldap 架构的信息并根据架构阅读了有关结果的结果。如果有人解释他们的理解,这将有助于分析和理解。
【问题讨论】: