带有uri模块的SPNEGO身份验证



使用curl,在执行kinit之后,我可以通过这种方式访问具有Kerberos/SPNEGO的Web服务上的HTTP资源

curl -x POST --negotiate -u : http://host.mydomain.net:14000/my/web/resource

你可以看到,我只是通过了-u :,而实际上没有通过任何用户/密码,这是因为--negotiate

有了ansible,我可以访问资源,但我需要把我的凭据

- uri:
url: "http://host.mydomain.net:14000/my/web/resource"
return_content: true
method: POST
headers:
Content-Type: "application/x-www-form-urlencoded"
user: "{{ myuser }}"
password: "{{ mypass }}"
register: login
- debug:
msg: "{{ login.content }}"

现在我喜欢只使用Kerberos身份验证来访问资源,这样执行器就会使用它的凭据,我试图将userpassword参数定义为空,但失败了。

所以我想知道uri模块是否支持SPNEGO,我应该怎么做?

感谢

在此处卷曲comitter。。。

这是行不通的。Curl无法为您进行身份验证。身份验证必须在登录到计算机/服务器时进行。由于您想自动执行此操作,请创建一个服务帐户,导出keytab,并将带有env varKRB5_CLIENT_KTNAME的keytab文件提供给Ansible。这将起作用,但您需要MIT Kerberos。

请阅读我对此的规范答案。如果您在Active Directory环境中,您可以轻松使用msktutil(1),它将为您带来所有的魔力。

最新更新