You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python Requests模块实现Kerberos认证的Curl请求复现?

使用Python Requests实现Kerberos(Negotiate)认证

当然可以!Requests本身默认不支持Kerberos/GSS-Negotiate认证,但借助第三方扩展库requests_kerberos,我们完全能复现你给出的curl命令功能。下面是具体的实现步骤和代码:

第一步:安装依赖库

首先需要安装requests_kerberos,它是Requests的Kerberos认证扩展:

pip install requests_kerberos

第二步:编写Requests代码

下面的代码完全对应你的curl命令 curl -u : --negotiate -k https://example.com/authenticate:

import requests
from requests_kerberos import HTTPKerberosAuth, OPTIONAL

# 初始化Kerberos认证对象,对应curl的--negotiate和-u :
auth = HTTPKerberosAuth(mutual_authentication=OPTIONAL)

# 发送请求,verify=False对应curl的-k参数(跳过SSL证书验证)
response = requests.get(
    'https://example.com/authenticate',
    auth=auth,
    verify=False
)

# 可以查看响应内容或状态码
print(response.status_code)
print(response.text)

代码参数说明

  • HTTPKerberosAuth(mutual_authentication=OPTIONAL):对应curl的--negotiate和-u :,OPTIONAL表示不需要双向认证,和curl的默认行为一致;如果需要强制双向认证,可以改成REQUIRED。
  • verify=False:完全对应curl的-k参数,用于跳过SSL证书的有效性校验。如果你有合法的证书需要验证,可以去掉这个参数或者传入证书路径。

和pycurl实现的对应关系

这段Requests代码和你之前的pycurl逻辑完全匹配:

  • pycurl.HTTPAUTH_GSSNEGOTIATE → HTTPKerberosAuth
  • pycurl.USERPWD = ':' → 由HTTPKerberosAuth自动处理Kerberos票据,无需手动传入空的用户密码
  • pycurl.URL → Requests的URL参数
  • 跳过证书验证 → verify=False

内容的提问来源于stack exchange,提问作者abisko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:29:18