"Missing client token"在桥牌保险库上使用登录/通行证进行身份验证时



我正在尝试在 Vault 上获取登录/传递身份验证。当我尝试此处 API 文档中给出的方法时:https://www.vaultproject.io/api/auth/userpass/index.html#login

我收到此错误:

$ curl --request POST --data @payload.json https://<myurl>:8200/v1/auth/userpass/login/<mylogin> -k
{"errors":["missing client token"]}

而且我找不到有关此错误的信息。这让我想知道会发生什么,因为我想使用登录/通行证进行身份验证以获取令牌,所以没有它是正常的。

以下是 payload.json 的内容:

{
  "password": "foo"
}

有没有办法使用用户名/密码登录?这是当用户不知道其令牌时我唯一的回退方法。

谢谢!

好的,所以我通过试验弄清楚了。

因此,用户通行证身份验证确实被禁用了。我必须使用LDAP身份验证。使用已安装的 Vault-UI,我设法找到了要进行身份验证的 URL。如果是以下: https://******:8200/v1/auth/<ldap>/login/<user>

这样它就可以工作了。

不幸的是,它最终无济于事。我们的想法是在本地同步 Vault 数据,但 Vault API 实际上并不是为这种访问而构建的。它需要大量请求,并且最终对于同步的一些机密非常慢。

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

您可以使用 -ns=my/namespace/ 参数或 VAULT_NAMESPACE 环境变量指定命名空间。

例如,如果您的命名空间是"甜点/冰淇淋">

vault login -ns=desserts/icecream/ -method=userpass username=ian
# OR
export VAULT_NAMESPACE=desserts/icecream/
vault login -method=userpass username=ian

就我而言,我没有将保管库令牌设置为正确的环境变量。您必须将值设置为 VAULT_TOKEN 以便它在后续请求中使用它 我的 env 变量被Vault_Token,因此它总是说缺少客户端令牌。

默认情况下,保险柜会检查此环境变量以查找令牌。

vault kv get --field "ACCESS_KEY_ID" secret/my-secret

最新更新