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())
requests-sspi-ntlm总是得到 401:
从 requests_sspi_ntlm 导入请求导入 HttpNtlmAuth
session = requests.Session() session.auth = HttpNtlmAuth() session.get(" http://ntlm_protected_site.com ")
并且requests-negotiate-sspi也会在请求中触发异常:
从 requests_negotiate_sspi 导入请求导入 HttpNegotiateAuth
r = requests.get(' https://iis.contoso.com ', auth=HttpNegotiateAuth())
难道我做错了什么?
小智 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,繁荣,一切正常。
| 归档时间: |
|
| 查看次数: |
22677 次 |
| 最近记录: |