Методы аутентификации. Userpass (API)
В данном разделе представлена документация API для метода аутентификации StarVault по имени пользователя и паролю. Для общей информации об использовании и работе метода имени пользователя и пароля, пожалуйста, ознакомьтесь с документацией метода StarVault Userpass.
Данное руководство предполагает, что метод имени пользователя и пароля смонтирован по пути /auth/userpass в StarVault. Поскольку возможно включение методов аутентификации в любом месте, пожалуйста, обновите свои API вызовы соответственно.
1. Создание/обновление пользователя
Создайте нового пользователя или обновите существующего. Этот путь учитывает различие между возможностями create и update в политиках ACL.
| Метод | Путь |
|---|---|
|
|
1.1. Параметры
-
username(string: <обязательно>)- имя пользователя для учетной записи. Допустимые символы: буквенно-цифровые, а также "_", "-", "." (символ подчеркивания, дефис и точка); имя пользователя не может начинаться с дефиса и не может начинаться или заканчиваться точкой. -
password(string: <обязательно>)- пароль для учетной записи. Обязателен только при создании пользователя.
{
"password": "superSecretPassword",
"token_policies": ["admin", "default"],
"token_bound_cidrs": ["127.0.0.1/32", "128.252.0.0/16"]
}
$ curl \
--header "X-Vault-Token: ..." \
--request POST \
--data @payload.json \
http://127.0.0.1:8200/v1/auth/userpass/users/mitchellh
2. Чтение пользователя
Читает свойства существующего имени пользователя.
| Метод | Путь |
|---|---|
|
|
$ curl \
--header "X-Vault-Token: ..." \
http://127.0.0.1:8200/v1/auth/userpass/users/mitchellh
{
"request_id": "0ad1be52-9398-4b3c-f58b-98e427406471",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": {
"token_bound_cidrs": [
"127.0.0.1",
"128.252.0.0/16"
],
"token_explicit_max_ttl": 0,
"token_max_ttl": 0,
"token_no_default_policy": false,
"token_num_uses": 0,
"token_period": 0,
"token_policies": [
"admin",
"default"
],
"token_ttl": 0,
"token_type": "default"
},
"wrap_info": null,
"warnings": null,
"auth": null
}
3. Удаление пользователя
Эта конечная точка удаляет пользователя из метода.
| Метод | Путь |
|---|---|
|
|
4. Обновление пароля пользователя
Обновите пароль для существующего пользователя.
| Метод | Путь |
|---|---|
|
|
4.1. Параметры
-
username(string: <обязательно>)- имя пользователя для учетной записи; -
password(string: <обязательно>)- пароль для учетной записи.
{
"password": "superSecretPassword2"
}
$ curl \
--header "X-Vault-Token: ..." \
--request POST \
--data @payload.json \
http://127.0.0.1:8200/v1/auth/userpass/users/mitchellh/password
5. Обновление политик пользователя
Обновите политики для существующего пользователя.
| Метод | Путь |
|---|---|
|
|
5.1. Параметры
-
username(string: <обязательно>)- имя пользователя для учетной записи; -
token_policies(array: [] или строка с разделителем запятой: "")- cписок политик, которые будут закодированы в созданные токены. В зависимости от метода аутентификации, этот список может быть дополнен значениями пользователя/группы/другими значениями.
{
"token_policies": ["policy1", "policy2"]
}
$ curl \
--header "X-Vault-Token: ..." \
--request POST \
--data @payload.json \
http://127.0.0.1:8200/v1/auth/userpass/users/mitchellh/policies
6. Список пользователей
Список доступных пользователей userpass.
| Метод | Путь |
|---|---|
|
|
6.1. Параметры
-
after(string: "")- необязательная запись для начала спискаafterдля постраничной навигации; не обязательно должна существовать; -
limit(int: 0)- необязательное количество записей для возврата; по умолчанию все записи.
$ curl \
--header "X-Vault-Token: ..." \
--request LIST \
http://127.0.0.1:8200/v1/auth/userpass/users
{
"data": {
"keys": ["mitchellh", "armon"]
}
}
7. Вход в систему
Войдите с помощью имени пользователя и пароля.
| Метод | Путь |
|---|---|
|
|
7.1. Параметры
-
username(string: <обязательно>)- имя пользователя для учетной записи; -
password(string: <обязательно>)- пароль для учетной записи.
{
"password": "superSecretPassword2"
}
$ curl \
--request POST \
--data @payload.json \
http://127.0.0.1:8200/v1/auth/userpass/login/mitchellh
{
"request_id": "ae1882ba-f60a-7629-ce1a-6618c482de3e",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": null,
"wrap_info": null,
"warnings": null,
"auth": {
"client_token": "hvs.CAESIJyeFmhLYRWVXPJStT3fDP1ZdFkon_otuk1sJUpkfk_WGh4KHGh2cy5xdW9XVHBnVUwwbzB1ZEhzZkpkRmVoU04",
"accessor": "iP2Lw1JXpjlALbgJSeIx51n7",
"policies": [
"default",
"policy1",
"policy2"
],
"token_policies": [
"default",
"policy1",
"policy2"
],
"metadata": {
"username": "mitchellh"
},
"lease_duration": 2764800,
"renewable": true,
"entity_id": "0660dce5-4f2c-926a-8b15-158901557d9d",
"token_type": "service",
"orphan": true,
"mfa_requirement": null,
"num_uses": 0
}
}