2024-04-29 05:38:09 发布
网友
如何在Windows上使用python的自动NTLM身份验证?
我希望能够从windows访问TFS REST API,而不必硬编码我的密码,就像我从web浏览器(例如firefox的network.automatic-ntlm-auth.trusted-uris)访问TFS REST API一样。
NTLM凭据基于交互登录过程中获得的数据,并包含密码的单向哈希。你必须提供证件。
Python有允许HTTP NTLM身份验证的requests_ntlm库。
您可以参考本文来访问TFS REST API: Python Script to Access Team Foundation Server (TFS) Rest API
如果您使用的是TFS 2017或VSTS,那么可以尝试在基本的Auth HTTP头中使用Personal Access Token以及REST请求。
你可以用https://github.com/requests/requests-kerberos来完成。在引擎盖下它使用https://github.com/mongodb-labs/winkerberos。后者被标记为Beta,我不确定它有多稳定。但是我已经请求kerberos使用一段时间了,没有任何问题。
也许更稳定的解决方案是https://github.com/brandond/requests-negotiate-sspi,它使用pywin32的SSPI实现。
我发现this answer对我很有用,因为:
它使用WinHTTP.WinHTTPRequest.5.1 COM对象以本机方式处理身份验证:
import win32com.client URL = 'http://bigcorp/tfs/page.aspx' COM_OBJ = win32com.client.Dispatch('WinHTTP.WinHTTPRequest.5.1') COM_OBJ.SetAutoLogonPolicy(0) COM_OBJ.Open('GET', URL, False) COM_OBJ.Send() print(COM_OBJ.ResponseText)
NTLM凭据基于交互登录过程中获得的数据,并包含密码的单向哈希。你必须提供证件。
Python有允许HTTP NTLM身份验证的requests_ntlm库。
您可以参考本文来访问TFS REST API: Python Script to Access Team Foundation Server (TFS) Rest API
如果您使用的是TFS 2017或VSTS,那么可以尝试在基本的Auth HTTP头中使用Personal Access Token以及REST请求。
你可以用https://github.com/requests/requests-kerberos来完成。在引擎盖下它使用https://github.com/mongodb-labs/winkerberos。后者被标记为Beta,我不确定它有多稳定。但是我已经请求kerberos使用一段时间了,没有任何问题。
也许更稳定的解决方案是https://github.com/brandond/requests-negotiate-sspi,它使用pywin32的SSPI实现。
我发现this answer对我很有用,因为:
它使用WinHTTP.WinHTTPRequest.5.1 COM对象以本机方式处理身份验证:
相关问题 更多 >
编程相关推荐