首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Python3.10.x建立SLDAP连接

无法使用Python3.10.x建立SLDAP连接
EN

Stack Overflow用户
提问于 2022-01-26 19:19:31
回答 1查看 346关注 0票数 1

使用下面的代码,可以使用ldap3模块在Python3.8.x中设置一个连接对象。

代码语言:javascript
复制
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()

但是从Python3.10开始,这段代码不再工作了--执行时会导致SSL握手错误。我认为这是因为当前Python3.10.x包中使用的OpenSSL库发生了变化。

有没有其他人遇到这个问题,并希望找到一个解决办法?

EN

回答 1

Stack Overflow用户

发布于 2022-01-31 10:03:09

同时,我自己找到了解决方案--但我不确定这是一个bug还是openSSL 1.1.1的特性?

从服务器端获得一些调试信息后,我发现出现了这个问题,因为客户机和服务器之间可能没有“通用密码”。

在我的代码中将服务器端可用的密码添加到Tls对象后,可以建立连接。

代码语言:javascript
复制
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)

我仍然感到困惑,为什么在没有密码器参数的情况下可以在openSSL之前建立连接,而现在需要它--顺便说一下,密码=‘ALL’也在工作,所以我认为openSSL 1.1.1中的缺省值可能已经改变了。

亲切的问候

托斯滕

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70869088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档