如何使用curl命令登录HashiCorp Vault?我正在寻找与# vault login相等的curl命令。谢谢。巴拉
如何登录取决于您想使用的登录方法。以下是使用LDAP登录myusername
/mypassword
的curl请求示例:
curl -v -X POST -H 'Content-Type: application/json' -d '{ "password": "mypassword" }' https://vaultserverhostname/v1/auth/ldap/login/myusername
此命令返回json,格式化后如下:
{
"auth": {
"accessor": "XXXXXXXXXXXXXXXXXXXXXXX",
"client_token": "s.XXXXXXXXXXXXXXXXXXXXX",
"entity_id": "ff20aa70-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"lease_duration": 2764800,
"metadata": {
"username": "myusername"
},
"orphan": true,
"policies": [
"default",
"ldap-users-policy"
],
"renewable": true,
"token_policies": [
"default",
"ldap-users-policy"
],
"token_type": "service"
},
"data": {},
"lease_duration": 0,
"lease_id": "",
"renewable": false,
"request_id": "69887f78-XXX-XXX-XXX-XXXXXXXXX",
"warnings": null,
"wrap_info": null
}
vault login token=<token-id>
的作用是创建一个 $HOME/.vault-token
文件,其中包含 <token-id>
。然后每次使用 vault
命令时,vault
客户端将此令牌设置为 X-Vault-Token
HTTP 标头的值,并在发送到服务器的每个请求中使用。
然而,当您使用 curl
时,您必须在每个请求上设置此标头(请参阅 这里的文档 和 这个)。
因此,每个 curl
命令都将具有以下值的命令行选项: -H "X-Vault-Token: <your-token-id>"
。
例如,要读取 /secret/foo
curl \
-H "X-Vault-Token: f3b09679-3001-009d-2b80-9c306ab81aa6" \
-X GET \
http://127.0.0.1:8200/v1/secret/foo
curl --request POST --data '{ "token": "<token-copied-from-github>"}' http://127.0.0.1:8200/v1/auth/github/login
你可以在这里找到更多关于Github登录方法的信息:https://www.vaultproject.io/api-docs/auth/github/#login - bagljas