Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Методы аутентификации. Userpass (API)

В данном разделе представлена документация API для метода аутентификации StarVault по имени пользователя и паролю. Для общей информации об использовании и работе метода имени пользователя и пароля, пожалуйста, ознакомьтесь с документацией метода StarVault Userpass.

Данное руководство предполагает, что метод имени пользователя и пароля смонтирован по пути /auth/userpass в StarVault. Поскольку возможно включение методов аутентификации в любом месте, пожалуйста, обновите свои API вызовы соответственно.

1. Создание/обновление пользователя

Создайте нового пользователя или обновите существующего. Этот путь учитывает различие между возможностями create и update в политиках ACL.

Метод Путь

POST

/auth/userpass/users/:username

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. Чтение пользователя

Читает свойства существующего имени пользователя.

Метод Путь

GET

/auth/userpass/users/:username

Пример запроса:
$ 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. Удаление пользователя

Эта конечная точка удаляет пользователя из метода.

Метод Путь

DELETE

/auth/userpass/users/:username

3.1. Параметры

  • username (string: <обязательно>) - имя пользователя для учетной записи.

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request DELETE \
    http://127.0.0.1:8200/v1/auth/userpass/users/mitchellh

4. Обновление пароля пользователя

Обновите пароль для существующего пользователя.

Метод Путь

POST

/auth/userpass/users/:username/password

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. Обновление политик пользователя

Обновите политики для существующего пользователя.

Метод Путь

POST

/auth/userpass/users/:username/policies

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.

Метод Путь

LIST

/auth/userpass/users

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. Вход в систему

Войдите с помощью имени пользователя и пароля.

Метод Путь

POST

/auth/userpass/login/:username

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
  }
}