Http 使用uri模块的SPNEGO身份验证

Http 使用uri模块的SPNEGO身份验证,http,ansible,uri,kerberos,spnego,Http,Ansible,Uri,Kerberos,Spnego,使用curl,我可以通过Kerberos/SPNEGO以这种方式访问Web服务上的HTTP资源,在我执行了kinit curl -x POST --negotiate -u : http://host.mydomain.net:14000/my/web/resource 您可以看到,我只是传递-u:,而没有实际传递任何用户/密码,并且由于--协商 使用ansible,我可以访问资源,但我需要放置凭据 - uri: url: "http://host.mydomain.net:140

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

curl -x POST --negotiate -u : http://host.mydomain.net:14000/my/web/resource
您可以看到,我只是传递
-u:
,而没有实际传递任何用户/密码,并且由于
--协商

使用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身份验证访问资源,这样执行者将使用它的凭据,我尝试将
user
password
参数定义为空,但这失败了

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

谢谢来到这里

这是行不通的。Curl无法为您进行身份验证。身份验证必须在登录到计算机/服务器时进行。由于您希望实现自动化,请创建一个服务帐户,导出keytab并为keytab文件提供env var
KRB5_CLIENT_KTNAME
,以供Ansible使用。这将起作用,但您需要MIT Kerberos


请把我的信读给这个。如果您在Active Directory环境中,您可以轻松地使用
msktutil(1)
,这将为您带来所有好处。

您找到了替代解决方案吗?