如何使用Python请求进行NTLM SSPI身份验证?

R01*_*01k 5 python authentication ntlm sspi python-requests

我的目标是通过带有 SSPI 的 NTLM 对使用 Python 3.5.2 中的请求库 (2.11.1) 的客户端进行身份验证,以便用户不必手动输入其域凭据(用于登录 PC)。

我发现了以下可能性,但没有一个对我有用:

  • HttpNtlmSspiAuth在请求中引发异常:

    从 requests_ntlm 导入请求导入 HttpNtlmAuth、HttpNtlmSspiAuth

    requests.get(site_url, auth=HttpNtlmSspiAuth())




难道我做错了什么?

小智 6

requests-negotiate-sspi包对我有用。

我可能对 PO 也有同样的问题,但我懒得尝试 PO 的解决方案并将 PO 的代码集成到我的代码中。谷歌帮助了我。如果有人遇到 sspi.py 引发的相同异常,这是requests-negotiate-sspiValueError: year 30828 is out of range的 python 3.6 的已知问题。请参阅此处:Github 问题

我通过使用 python 3.4 创建一个新的 conda 环境解决了这个问题。然后重新安装一些依赖项以及requests-negotiate-sspi,繁荣,一切正常。