У нас есть 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.
EDIT
Сначала я сомневался в некотором предположении, что у пользователя должно быть разрешение на чтение атрибута. Но я не уверен, что мои предположения верны.
Поскольку я новичок в python, а также в ldap, я прочитал о схеме ldap и прочитал результат о результате в соответствии со схемой. Будет полезно, если кто-нибудь объяснит свое понимание, чтобы помочь в анализе и понимании.