gpt4 book ai didi

python - 无法使用 Python 3.10.x 建立 LDAP 连接

转载 作者:行者123 更新时间:2023-12-04 22:38:58 28 4
gpt4 key购买 nike

使用以下代码,可以使用 ldap3 模块在 Python 3.8.x 中设置连接对象。

tls = Tls(validate=ssl.CERT_NONE, version=ssl.PROTOCOL_TLSv1_2)
server = Server(server_uri, use_ssl=True, tls=tls, get_info=ALL)
conn = Connection(server, user="domain\\myusername", password="password", authentication=NTLM, auto_referrals=False)
conn.bind()
但从 Python 3.10 开始,此代码不再工作 - 执行时会导致 SSL 握手错误。我相信这是因为当前 Python 3.10.x 包中使用的 OpenSSL 库发生了变化。
有没有其他人遇到过这个问题并希望找到解决方案?

最佳答案

同时,我自己找到了解决方案 - 但我不确定这是否是 openSSL 1.1.1 的错误或功能?
从服务器端获取一些调试信息,我发现问题正在出现,因为客户端和服务器之间可能存在“没有通用密码”。
在我的代码中将服务器端可用的密码添加到 Tls 对象后,可以建立连接。

ciphers='AES256-GCM-SHA384'
# Establish LDAP connection and initialize connection (conn) object
tls = Tls(ciphers=ciphers,validate=ssl.CERT_NONE,version=ssl.PROTOCOL_TLS)
#context = ssl.context(set_cipher_list=AES256-GCM-SHA384)
serverURL = ldap3.Server(host=server,port=636,use_ssl=True,tls=tls)
conn = ldap3.Connection(serverURL, user, pwd)
我仍然很困惑,为什么可以在没有 ciphers 参数的情况下在 openSSL 之前建立连接,而现在需要它 - 顺便说一下 ciphers='ALL' 也可以正常工作,所以我相信 openSSL 1.1 中的默认值可能已经更改。 1.
亲切的问候
托尔斯滕

关于python - 无法使用 Python 3.10.x 建立 LDAP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70869088/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com