在执行kinit
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身份验证来访问资源,因此执行者将使用它的凭据,我尝试将user
和password
参数定义为空,但这会失败。
所以我想知道uri
模块是否支持SPNEGO,我应该怎么做?
谢谢
答案 0 :(得分:0)
在这里卷曲提交器...
这将不起作用。 Curl无法为您进行身份验证。认证必须在机器/服务器登录时进行。由于要自动执行此操作,因此创建一个服务帐户,导出密钥表,并将密钥表文件的env var KRB5_CLIENT_KTNAME
提供给Ansible。这将起作用,但是您需要MIT Kerberos。
请阅读我的canonical answer。如果您在Active Directory环境中,则可以轻松使用msktutil(1)
,它将为您解决所有问题。