1

大家好,

我正在尝试从 Vault 中的 approle auth 方法获取客户端令牌。我已经配置了领事模板,然后它获取角色 ID 和秘密 ID,然后使用它们在 auth/approle/login 端点获取 client_token。真正奇怪的是,前两个步骤都成功执行并返回了数据,但是,获取 client_token 是这里的难题。我使用wireshark分析了请求并检查了请求client_token的请求的响应,它清楚地显示了包含client_token的json结果。但领事模板确实识别返回并给我这个结果:

{322a47b9-bf23-193d-8117-228637253fde 0 false map[] [] 0xc42001cf50 <nil>}.

使用相同的方式请求 secret-id 但 consul-template 已成功返回它并已识别 json 对象。是不是很奇怪?!

您可以在下面找到领事模板:

{{define "token" }}
{{ with secret "auth/approle/role/python-role/role-id" }}{{ $role:= (print "role_id= " .Data.role_id) }}
{{ with secret "auth/approle/role/python-role/secret-id" "role_name= python-role" }}{{ $secret:= (print "secret_id= " .Data.secret_id) }}
{{- with secret "auth/approle/login/" $role $secret -}}{{ . }}{{ end }}
{{ end }}
{{ end }}
{{ end }}

{{template "token"}}

另外,下面是我用来检查请求是否正确的wireshark跟踪: 有人知道吗?提前致谢。在此处输入图像描述

4

0 回答 0