Hashicorp vault &引用;缺少客户端令牌“;使用Hashicorp Vault上的登录/传递进行身份验证时

Hashicorp vault &引用;缺少客户端令牌“;使用Hashicorp Vault上的登录/传递进行身份验证时,hashicorp-vault,Hashicorp Vault,我正在尝试在Vault上进行登录/通过身份验证。 当我尝试API文档中给出的方法时: 我得到这个错误: $ curl --request POST --data @payload.json https://<myurl>:8200/v1/auth/userpass/login/<mylogin> -k {"errors":["missing client token"]} 有没有办法用用户名/密码登录?当用户不知道其令牌时,这是唯一的回退方法 谢谢 好的,是的,我通过试

我正在尝试在Vault上进行登录/通过身份验证。 当我尝试API文档中给出的方法时:

我得到这个错误:

$ curl --request POST --data @payload.json https://<myurl>:8200/v1/auth/userpass/login/<mylogin> -k
{"errors":["missing client token"]}
有没有办法用用户名/密码登录?当用户不知道其令牌时,这是唯一的回退方法


谢谢

好的,是的,我通过试验找到了答案

所以userpass身份验证确实被禁用了。我必须使用LDAP身份验证。使用安装的Vault UI,我设法找到了要进行身份验证的URL。如果是以下内容:
https://*****:8200/v1/auth//login/

这样它就工作了

不幸的是,这最终没有帮助。其想法是在本地同步Vault数据,但Vault API实际上并不是为这种访问而构建的。它需要大量的请求,并且最终会非常慢地同步一些秘密


谢谢你的帮助

在我的例子中,我没有将vault标记设置为正确的环境变量。 您必须将该值设置为
VAULT\u-TOKEN
,以便在后续请求中使用该值。我的env变量是
VAULT\u-TOKEN
,因此它总是说缺少客户端令牌

默认情况下,Vault会检查此环境变量以查找令牌


vault kv get--field“ACCESS\u KEY\u ID”secret/my secret

确保您在正确的命名空间下登录。如果在CLI工具使用的默认名称空间之外的其他名称空间下启用了身份验证方法,则会出现此错误

您可以使用
-ns=my/namespace/
参数或
VAULT\u namespace
环境变量指定名称空间

例如,如果名称空间是“甜点/冰淇淋”

vault登录-ns=desserts/icecream/-method=userpass username=ian
#或
导出VAULT_名称空间=甜点/冰淇淋/
vault登录-方法=userpass用户名=ian

我可以验证您是否已配置Userpass吗?我无法控制连接到的Vault实例。有没有办法通过API获得这些信息(是否启用了userpass,是否为我启用了userpass?)?但我认为它已启用,因为我们通过Vault UI连接,并使用登录/传递凭据。cli命令是
Vault auth list
。但是你需要许可才能访问它。事实上,我没有。发现APÏ需要特定的权利,这太糟糕了。我不明白背后的逻辑,但我猜这不是用户要求的,或者没有考虑过,或者有一个很好的理由我没有想到。好吧,我想我无法开发一个好的Vault连接器:(curl-H“X-Vault-Token:***********”-X GET https://***********:8200/v1/sys/auth-k{“errors”:[“permission denied”]}记录在案的是,Hashicorp似乎不想实现一个允许一次获取所有机密的功能性API。理由是这将是一个安全问题,这没有任何意义。没有这个API并不会阻止下载机密,只会使下载速度变慢,并在后端更难进行。对于用户来说,这是一个糟糕的选择解释一个糟糕的API…:(感谢您的评论,它可以正常工作。
指的是您在初始设置LDAP身份验证服务时提供的任何名称。如果您更改了默认的
LDAP
,Hashicorp文档中提供的URL是错误的。
{
  "password": "foo"
}