我在使用 LDAP3 包时遇到了以下问题:当我传递错误的凭据(错误的用户名和错误的密码)时,我得到了相同的 Microsoft Active Directory LDAP 结果代码子代码用于绑定响应,就像只有密码无效时一样。
我的代码:
from ldap3 import Connection, Server, NONE, NTLM
server = Server(url, use_ssl=True, get_info=NONE)
con = Connection(server, user='ValidID', password='ValidPassword')
con.bind()
con.unbind()
print(con.result)
结果我到了这里:
{'result':0,'description':'success','dn':'','message':'','referrals':无,'saslCreds':无,'type':'bindResponse'}
没有错。但...
con = Connection(server, user='InvalidID', password='InvalidPassword')
con.bind()
con.unbind()
print(con.result)
给我以下结果:
{'result': 49, 'description': 'invalidCredentials', 'dn': '', 'message': '80090308: LdapErr: DSID-0C09042F, comment: AcceptSecurityContext error, data 52e, v2580\x00', 'referrals ':无,'saslCreds':无,'类型':'bindResponse'}
根据 ldap 维基:
52e - ERROR_LOGON_FAILURE
当用户名有效但密码/凭证无效时返回。如前所述,将阻止大多数其他 er 显示。
在这种情况下,我不应该收到“data 52e”消息,因为用户名无效。
或者我有什么问题?我想到另一件事,可能是 ldap 服务器故障,它正在发送错误消息