Windows客户端的无密码Python LDAP3身份验证
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows客户端的无密码Python LDAP3身份验证相关的知识,希望对你有一定的参考价值。
我正在使用伟大的ldap3包,我正在尝试连接活动目录服务器,但不需要以纯文本形式提供实际凭据。
支持以下SASL机制。 ['GSSAPI', 'GSS-SPNEGO', 'EXTERNAL', 'DIGEST-MD5']
我尝试安装GSSAPI包,但这在我的Windows机器上不起作用。 pip install gssapi
的错误是:subprocess.CalledProcessError: Command 'krb5-config --libs gssapi' returned non-zero exit status 1.
任何人都可以提供一个简单的例子吗?我相信GSS-SPNEGO可能是解决方案,但我在互联网上找不到任何可理解的例子。
谢谢你问这个。我今天给了它最后一次射击并让它上班。
请参阅此链接中的Davide的答案:How to install gssapi python module on windows?
它要求您拥有ldap3包并安装winkerberos包:
pip安装winkerberos
然后,您需要将站点包中的kerberos.py文件(PYTHON_HOME Lib site-packages ldap3 protocol sasl kerberos.py)替换为链接到replacement kerberos.py的文件。
您需要在替换kerberos.py文件中更改以下行:
从跑步机进口kerberoswrapper作为kerberos
改成
将winkerberos作为kerberos进口
然后你可以像这样连接:
from ldap3 import Server, Connection, Tls, SASL, GSSAPI
import ssl
tls = Tls(validate=ssl.CERT_NONE, version=ssl.PROTOCOL_TLSv1)
server = Server('server_fqdn', use_ssl=True, tls=tls)
c = Connection(server, authentication=SASL, sasl_mechanism=GSSAPI)
c.bind()
print(c.extend.standard.who_am_i())
c.unbind()
将server_fqdn替换为AD服务器的完全限定域名。
您可能希望将版本值更改为AD服务器使用的任何协议。
如果某人有一个不那么混乱的方法来实现这一点,请加入!
以上是关于Windows客户端的无密码Python LDAP3身份验证的主要内容,如果未能解决你的问题,请参考以下文章
无法为使用 MinIO 客户端的用户设置策略,即使用户存在于 LDAP 中,获取用户也不存在于 ldap 错误中
使用 LDAP 在 Spring oauth/token 请求上验证客户端 ID 和客户端密码
windows下配置openldap,manager的连接:LDAP error:无效的凭据
JAVA连接LDAP(Windows AD)验证时,密码为空验证通过的问题?