如何使用curl命令登录HashiCorp Vault

3
如何使用curl命令登录HashiCorp Vault?我正在寻找与# vault login相等的curl命令。谢谢。巴拉

你正在尝试使用哪种认证方法?每种方法都需要不同的参数集。例如,通过Github令牌登录: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
使用令牌进行Vault登录 - fiverrbala
2个回答

2

如何登录取决于您想使用的登录方法。以下是使用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
}

无论您使用哪种请求方式,都会在json响应中获得一个令牌(或错误),然后您可以将该令牌用于进一步的Vault交互。同样适用于UserPass方法:https://www.vaultproject.io/api/auth/userpass#sample-request。来源:https://www.vaultproject.io/api/auth/ldap#sample-request-10。请注意保留HTML标记。

0

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接