gpt4 book ai didi

hadoop - 将 --negotiate 与 curl 一起使用时,是否需要 key 表文件?

转载 作者:可可西里 更新时间:2023-11-01 14:07:42 25 4
gpt4 key购买 nike

documentation描述如何连接到 kerberos 安全端点显示如下:

curl -i --negotiate -u : "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=..."

必须提供 -u 标志,但被 curl 忽略。

--negotiate 选项是否会导致 curl 查找预先使用 kinit 命令创建的 key 表,或者 curl 会提示输入凭据?

如果它查找 key 表文件,该命令将查找什么文件名?

最佳答案

成为 curl 的一次性贡献者在那个区域。以下是您需要了解的内容:

curl(1)本身对 Kerberos 一无所知,并且不会与您的凭据缓存或 key 表文件进行交互。它将所有调用委托(delegate)给 GSS-API 实现,这将为您带来神奇效果。什么魔法取决于库、Heimdal 和 MIT Kerberos。

根据您的问题,我假设您对 Kerberos 知之甚少,只想自动对 SPNEGO 保护的 REST 端点进行 API 调用。

这是你需要做的:

  1. 拥有类 Unix 操作系统
  2. 至少安装 MIT Kerberos 1.11
  3. 至少安装 curl 7.38.0 针对 MIT Kerberos
  4. curl --version 验证这一点提及 GSS-API SPNEGO 以及 ldd链接到您的 MIT Kerberos 版本。
  5. 使用ktutil 为服务主体创建一个客户端 keytab或 mskutil
  6. 通过kinit -k -t <path-to-keytab> <principal-from-keytab> 尝试使用该客户端 keytab 获取TGT
  7. klist 验证你有票缓存

环境现在准备就绪:

  1. 导出 KRB5CCNAME=<some-non-default-path>
  2. 导出 KRB5_CLIENT_KTNAME=<path-to-keytab>
  3. 调用curl --negotiate -u : <URL>

MIT Kerberos 将检测到两个环境变量都已设置,检查它们,使用您的 key 表自动获取 TGT,请求服务票证并传递给 curl .你完成了。

注意:这不适用于 Heimdal。

关于hadoop - 将 --negotiate 与 curl 一起使用时,是否需要 key 表文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38509837/

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