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

/sys/auth

Конечная точка /sys/auth используется для перечисления, создания, обновления и удаления методов аутентификации. Методы аутентификации преобразуют информацию, предоставленную пользователем или устройством, в токен, который можно использовать для всех будущих запросов.

1. Список методов аутентификации

В данной конечной точке перечислены все включенные методы аутентификации.

Метод

Путь

GET

/sys/auth

Пример запроса:
curl \
  --header "X-Vault-Token: ..." \
  http://127.0.0.1:8200/v1/sys/auth
Пример ответа:
{
  "request_id": "9bc0fab8-d65c-3961-afe6-d05f50c5fd22",
  "lease_id": "",
  "lease_duration": 0,
  "renewable": false,
  "data": {
    "github/": {
      "accessor": "auth_github_badd7fd0",
      "config": {
        "default_lease_ttl": 0,
        "force_no_cache": false,
        "max_lease_ttl": 0,
        "token_type": "default-service"
      },
      "deprecation_status": "supported",
      "description": "",
      "external_entropy_access": false,
      "local": false,
      "options": null,
      "plugin_version": "",
      "running_plugin_version": "v1.12.0+builtin.starvault",
      "running_sha256": "",
      "seal_wrap": false,
      "type": "github",
      "uuid": "4b42d1a4-0a0d-3c88-ae90-997e0c8b41be"
    },
    "token/": {
      "accessor": "auth_token_bd90f507",
      "config": {
        "default_lease_ttl": 0,
        "force_no_cache": false,
        "max_lease_ttl": 0,
        "token_type": "default-service"
      },
      "description": "token based credentials",
      "external_entropy_access": false,
      "local": false,
      "options": null,
      "plugin_version": "",
      "running_plugin_version": "v1.12.0+builtin.starvault",
      "running_sha256": "",
      "seal_wrap": false,
      "type": "token",
      "uuid": "e162baec-721b-7657-7913-c960df402f8a"
    }
  },
  "warnings": null
}

2. Включение метода аутентификации

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

Например, включение метода аутентификации «foo» сделает его доступным по адресу /auth/foo.

  • sudo требуется – данная конечная точка требует sudo возможности в дополнение к любым возможностям, специфичным для пути.

Метод

Путь

POST

/sys/auth/:path

2.1. Параметры

  • path (string: <required>) – Указывает путь для включения метода аутентификации. Это часть URL-адреса запроса.

Для указания нужного пути используйте печатные символы ASCII.

  • description (string: "") – задает понятное для человека описание метода аутентификации.

  • type (string: <required>) – указывает название типа метода аутентификации, например «github» или «token».

  • config (map<string|string>: nil) – задает параметры конфигурации для этого метода аутентификации. Возможные значения:

    • default_lease_ttl (string: "") - длительность аренды по умолчанию, указанная в виде строки, например «5s» или «30m».

    • max_lease_ttl (string: "") - максимальная продолжительность аренды, указанная в виде строки, например «5s» или «30m».

    • audit_non_hmac_request_keys (array: []) - список ключей, которые не будут проверяться HMAC устройствами аудита в объекте данных запроса.

    • audit_non_hmac_response_keys (array: []) - список ключей, которые не будут проверяться HMAC устройствами аудита в объекте данных ответа.

    • listing_visibility (string: "") — указывает, отображать ли данное подключение в списке при вызове конечной точке, специфичной для пользовательского интерфейса. Допустимые значения: "unauth" или "hidden", значение по умолчанию — "", что эквивалентно "hidden".

    • passthrough_request_headers (array: []) - список заголовков, которые разрешается передавать из запроса в плагин.

    • allowed_response_headers (array: []) - список разрешенных заголовков, позволяющий плагину включать их в ответ.

    • plugin_version (string: "") – указывает семантическую версию используемого плагина, например, "v1.0.0". Если версия не указана, сервер выберет любой подходящий плагин без версии, который мог быть зарегистрирован, плагин с последней зарегистрированной версией или встроенный плагин в указанном порядке приоритета.

Пример тела запроса:
{
  "type": "oidc",
  "description": "Login with OIDC"
}
Пример запроса:
curl \
  --header "X-Vault-Token: ..." \
  --request POST \
  --data @payload.json \
  http://127.0.0.1:8200/v1/sys/auth/my-auth

3. Конфигурация метода аутентификации

Данная конечная точка возвращает конфигурацию метода аутентификации по указанному пути.

Метод

Путь

GET

/sys/auth/:path

Пример запроса:
curl \
  --header "X-Vault-Token: ..." \
  http://127.0.0.1:8200/v1/sys/auth/my-auth
Пример ответа:
{
  "request_id": "8d2a1e33-4c00-46a5-f50d-4dc5f5d96f12",
  "lease_id": "",
  "lease_duration": 0,
  "renewable": false,
  "data": {
    "accessor": "auth_oidc_badd7fd0",
    "config": {
      "default_lease_ttl": 0,
      "force_no_cache": false,
      "max_lease_ttl": 0,
      "token_type": "default-service"
    },
    "deprecation_status": "supported",
    "description": "",
    "external_entropy_access": false,
    "local": false,
    "options": null,
    "plugin_version": "",
    "running_plugin_version": "v1.12.0+builtin.starvault",
    "running_sha256": "",
    "seal_wrap": false,
    "type": "oidc",
    "uuid": "4b42d1a4-0a0d-3c88-ae90-997e0c8b41be"
  },
  "warnings": null
}

4. Отключение метода аутентификации

Данная конечная точка отключает метод аутентификации по заданному пути аутентификации.

sudo требуется – эта конечная точка требует sudo возможности в дополнение к любым возможностям, специфичным для пути.

Метод

Путь

DELETE

/sys/auth/:path

4.1. Параметры

  • path (string: <required>) – Указывает путь для отключения. Это часть URL-адреса запроса.

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

5. Настройка метода аутентификации чтения

  • Эта конечная точка считывает конфигурацию указанного пути аутентификации. Для этой конечной точки требуется sudo разрешение на конечном пути, но ту же функциональность можно реализовать и без sudo при использовании sys/mounts/auth/[auth-path]/tune.

  • sudo требуется – эта конечная точка требует sudo возможности в дополнение к любым возможностям, специфичным для пути.

Метод

Путь

GET

/sys/auth/:path/tune

5.1. Параметры

  • path (string: <required>) – Указывает путь для настройки.

Пример запроса:
curl \
  --header "X-Vault-Token: ..." \
  http://127.0.0.1:8200/v1/sys/auth/my-auth/tune
Пример ответа:
{
  "default_lease_ttl": 2764800,
  "description": "",
  "force_no_cache": false,
  "max_lease_ttl": 2764800,
  "token_type": "default-service"
}

6. Метод аутентификации Tune

Параметры конфигурации Tune для заданного пути аутентификации. Эта конечная точка требует наличия sudo разрешения на конечном пути, но ту же функциональность можно получить и без sudo при использовании sys/mounts/auth/[auth-path]/tune.

sudo требуется – данная конечная точка требует sudo возможности в дополнение к любым возможностям, специфичным для пути.

Метод

Путь

POST

/sys/auth/:path/tune

6.1. Параметры

  • default_lease_ttl (int: 0) – задает время жизни по умолчанию. Если задано для конкретного пути аутентификации, это переопределяет глобальное значение по умолчанию.

  • max_lease_ttl (int: 0) – задает максимальное время жизни. Если задано для конкретного пути аутентификации, это переопределяет глобальное значение по умолчанию.

  • description (string: "") – задает описание монтирования. Оно переопределяет текущее сохраненное значение, если таковое имеется.

  • audit_non_hmac_request_keys (array: []) - указывает список ключей, которые не будут проверяться HMAC устройствами аудита в объекте данных запроса.

  • audit_non_hmac_response_keys (array: []) - указывает список ключей, которые не будут проверяться HMAC устройствами аудита в объекте данных ответа.

  • listing_visibility (string: "") — указывает, отображать ли это крепление в конечной точке списка, специфичной для пользовательского интерфейса. Допустимые значения: "unauth" или "hidden", значение по умолчанию — "", что эквивалентно "hidden".

  • passthrough_request_headers (array: []) - список заголовков, которые разрешается передавать из запроса в плагин.

  • allowed_response_headers (array: []) - список разрешенных заголовков, позволяющий плагину включать их в ответ.

  • token_type (string: "") – указывает тип токенов, которые должно возвращать монтирование. Доступны следующие значения:

    • default-service: если метод аутентификации не требует другого типа, выдайте токены сервиса;

    • default-batch: если метод аутентификации не требует другого типа, выдавайте пакетные токены;

    • service: переопределить любые предпочтения метода аутентификации и всегда выдавать токены службы с этого монтирования;

    • batch: переопределить любые предпочтения метода аутентификации и всегда выдавать токены пакетов с этого монтирования.

  • plugin_version (string: "") – указывает семантическую версию используемого плагина, например, "v1.0.0". Изменения не вступят в силу до перезагрузки монтирования.

  • user_lockout_config (map<string|string>: nil) – задает конфигурацию пользовательской блокировки для монтируемого устройства. Возможные значения:

    • lockout_threshold (string: "") - указывает количество неудачных попыток входа в систему, после которого пользователь блокируется, указывается в виде строки типа «15».

    • lockout_duration (string: "") - указывает продолжительность времени, на которое пользователь будет заблокирован, указывается в виде строки, например «5s» или «30m».

    • lockout_counter_reset (string: "") - указывает длительность периода, по истечении которого счетчик блокировок сбрасывается при отсутствии неудачных попыток входа в систему, указывается в виде строки, например «5s» или «30m».

    • lockout_disable (bool: false) - отключает функцию блокировки пользователя для этого монтируемого устройства, если установлено значение true.

Пример тела запроса:
{
  "default_lease_ttl": 1800,
  "max_lease_ttl": 86400,
  "audit_non_hmac_request_keys": ["client_nonce"],
  "user_lockout_config":{
    "lockout_threshold":"20",
    "lockout_duration":"5m",
    "lockout_counter_reset":"5m"
  }
}
Пример запроса:
curl \
  --header "X-Vault-Token: ..." \
  --request POST \
  --data @payload.json \
  http://127.0.0.1:8200/v1/sys/auth/my-auth/tune