我有一个脚本:
ldapsearch -xLL -h 10.4.113.46 -D 'E900000@corp.privatedev' -W -b 'dc=corp,dc=privatedev' '(cn=lc_proxy_pentest)'
运行良好。
我使用python编程来进行相同的查询:
from ldap3 import Server, Connection, ALL
....
server = Server('10.4.113.46', get_info=ALL)
conn = Connection(server, 'uid=E900000@corp.privatedev,cn=lc_proxy_pentest,dc=corp,dc=privatedev', 'PaSsWoRd', auto_bind=True)
错误显示:
Traceback (most recent call last): File "<input>", line 1, in <module>
File "C:\Users\E900000\Python\lib\site-packages\ldap3\core\connection.py", line 278, in __init__
self.bind(read_server_info=True)
File "C:\Users\E900000\Python\lib\site-packages\ldap3\core\connection.py", line 427, in bind
response = self.post_send_single_response(self.send('bindRequest', request, controls))
File "C:\Users\E900000\Python\lib\site-packages\ldap3\strategy\sync.py", line 122, in post_send_single_response
responses, result = self.get_response(message_id)
File "C:\Users\E900000\Python\lib\site-packages\ldap3\strategy\base.py", line 298, in get_response
responses = self._get_response(message_id)
File "C:\Users\E900000\Python\lib\site-packages\ldap3\strategy\sync.py", line 168, in _get_response
dict_response = self.decode_response(ldap_resp)
File "C:\Users\E900000\Python\lib\site-packages\ldap3\strategy\base.py", line 403, in decode_response
result = bind_response_to_dict(component)
File "C:\Users\E900000\Python\lib\site-packages\ldap3\operation\bind.py", line 119, in bind_response_to_dict
'saslCreds': bytes(response['serverSaslCreds']) if response['serverSaslCreds'] is not None else None}
File "C:\Users\E900000\Python\lib\site-packages\pyasn1\type\univ.py", line 984, in __bytes__
return bytes(self._value) TypeError: cannot convert 'NoValue' object to bytes
如果我只编程
server = Server('10.4.113.46')
conn = Connection(server)
conn.bind()
第三行带来同样的错误。
怎么了?
答案 0 :(得分:0)
我怀疑E900000@corp.privatedev对应于uid = E900000 @ corp.privatedev,cn = lc_proxy_pentest,dc = corp,dc = privatedev
我假设您使用的是Active Directory(基于E900000@corp.privatedev)。
尝试将dsquery用于Determine the FDN for the user。
答案 1 :(得分:0)
连接失败的原因可以参考https://github.com/etingof/pyasn1/issues/52。
但在我修改库并启用成功连接后,ldapsearch仍然无效。