用户名密码
userpass
身份验证方法允许用户使用一组用户名密码登录 Vault。
这组用户名密码直接通过 users/
路径配置进该验证方法。本方法无法从外部数据源读取用户名密码。
用户名不区分大小写,例如 Mary
与 mary
是一样的。
身份验证
通过命令行
$ vault login -method=userpass \
username=mitchellh \
password=foo
通过 API
$ curl \
--request POST \
--data '{"password": "foo"}' \
http://127.0.0.1:8200/v1/auth/userpass/login/mitchellh
响应中的 auth.client_token
包含了返回的令牌:
{
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": null,
"auth": {
"client_token": "c4f280f6-fdb2-18eb-89d3-589e2e834cdb",
"policies": ["admins"],
"metadata": {
"username": "mitchellh"
},
"lease_duration": 0,
"renewable": false
}
}
配置
本验证方法需要在用户或者机器可以使用它进行身份验证之前进行相关配置。以下步骤通常被用来配置:
- 启用用户名密码身份验证方法:
$ vault auth enable userpass
- 配置允许登录的用户名和密码:
$ vault write auth/userpass/users/mitchellh \
password=foo \
policies=admins
以上命令创建了名为 mitchellh
的新用户,他的密码是 foo
,关联了 admins
策略。这些就是所有需要配置的内容了。