我正在尝试创建一个非常简单的Python脚本来下载公司内部服务的内容,该服务位于我们的防火墙内,并使用kerberos进行身份验证
当我安装requests_kerberos模块时,在安装了kerberos_sspi
模块之后,我首先编辑了其中的import kerberos
以使用import kerberos_sspi as kerberos
因此,我有以下Python脚本
import requests
from requests_kerberos import HTTPKerberosAuth
response = requests.get('http://service.internaldomain',auth=HTTPKerberosAuth())
print response
在尝试处理401时,它会因错误而崩溃
error: (-2146893053, 'InitializeSecurityContext', 'The specified target is unknown or unreachable')
在查看是否可以使用curl
执行此操作时,我运行了kinit
,并注意到它在以下提示下向我请求授权密码:
Password for username@additionalInternalDomain.internaldomain
因此,我想知道这是否是导致问题的原因
服务器向您发出401质询,客户端(通常是浏览器,甚至是curl)在随后的调用中提供凭据。如果您已经登录到您的域-请尝试强制进行先发制人的跳转,即您将在通话中携带Kerberos票证,并且服务器不会向您发出401质询:
kerberos_auth = HTTPKerberosAuth(force_preemptive=True) r = requests.get("http://myhost/DXAPIGraphQL/api/graphql", auth=kerberos_auth)
如果上述情况无助于调查: 主体和主机名_重写HTTPKerberosAuth类的参数
我在python上尝试了多个库,但在尝试从windows计算机进行身份验证时失败了。Kerberos库主要在Linux上工作。Windows的解决方案不起作用。那么解决这个问题的办法是什么呢。 好在罗马期间要成为罗马人。尝试使用Python中的windows本机库
请注意,此python脚本必须由有权访问您试图访问的URL的用户运行。通过将
UseDefaultCredentials
属性设置为True
,您正在传递登录用户的Kerberos票证我必须连接到一个RESTAPI,而这个API现在正处于keberized环境中
在读了一些书之后,我得出了以下结论(它奏效了):
相关问题 更多 >
编程相关推荐