gpt4 book ai didi

python - 如何在 Windows 上使用 Python 连接到经过 kerberos 身份验证的 REST 服务

转载 作者:可可西里 更新时间:2023-11-01 13:27:34 31 4
gpt4 key购买 nike

我正在尝试创建一个非常简单的 Python 脚本来下载我公司内部服务的内容,该服务位于我们的防火墙内并使用 kerberos 进行身份验证。

当我安装 requests_kerberos 模块时,我首先编辑了其中的 import kerberos,以便在安装 kerberos_sspi 之后使用 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

因此我想知道这是否可能是导致问题的原因。

最佳答案

我在 python 上尝试了多个库,但在尝试从 Windows 机器进行身份验证时失败了。没有简单的方法。 Kerberos 库主要在 Linux 上运行。 Windows 的解决方法不起作用。那么解决这个问题的方法是什么。好吧……在罗马做个罗马人。尝试 Python 中的 Windows native 库。

 import sys
import clr
from System.Net.Http import *
myClienthandler = HttpClientHandler()
myClienthandler.UseDefaultCredentials = True
myClient = HttpClient(myClienthandler)
x = myClient.GetStringAsync("putyourURLwithinthequoteshere")
myresult = x.Result
print(myresult)

请注意,此 python 脚本必须由有权访问您尝试访问的 URL 的用户运行。通过将 UseDefaultCredentials 属性设置为 True,您将传递已登录用户的 Kerberos 票证。

关于python - 如何在 Windows 上使用 Python 连接到经过 kerberos 身份验证的 REST 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28530918/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com