2

我正在处理需要我重置 AD 用户密码的项目。但是到目前为止我还没有在网上找到有用的资源。

我正在使用 ldap3 重置 AD 用户密码,但它不起作用。我访问了这些链接以获得一些想法来实现代码 1.使用 ldap python 更新 Active Directory 密码 2. Python 3.5、ldap3 和 modify_password() 3. https://serverfault.com/questions/937330/update-ad-密码来自-python-ldap-code-insuff-access-rights/937361 4. https://ldap3.readthedocs.io/welcome.html

from ldap3 import Server, Connection, NTLM, ALL
server = Server('mydomain.com',use_ssl=True, get_info=ALL)
conn = Connection(server, user='user1', password='oldpassword', authentication=NTLM, auto_bind=True)
print(conn)

pwd = 'newpassword'
enc_pwd = '"{}"'.format(newpassword).encode('utf-16-le')
conn.modify('cn=user1, ou=ou_name, dc=mydomain, dc=com', {'unicodePwd': [(MODIFY_REPLACE, [enc_pwd])]})
print(conn.result)

错误:引发 LDAPSocketOpenError('unable to open socket', exception_history) ldap3.core.exceptions.LDAPSocketOpenError: ('unable to open socket', [(LDAPSocketOpenError('socket ssl wrapping error: [WinError 10054] 现有连接被强行关闭)由远程主机'),

4

1 回答 1

0

这是一个网络级别的错误,在我的情况下,我使用的是 AWS Managed AD,并且开箱即用它不支持 TLS,需要启动 CA以启用 LDAP 上的 TLS。

基本上 LDAP 是否已建立连接,但是当尝试解除与 TLS 的连接时,它会失败,因为当时我的 LDAP 服务器不支持 TLS。

于 2021-03-13T04:14:28.243 回答