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

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

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

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

1. Настройка RADIUS

Настраивает параметры подключения и общий секрет, используемые для связи с RADIUS.

Метод Путь

POST

/auth/radius/config

1.1. Параметры

  • host (string: ) - сервер RADIUS для подключения. Примеры: radius.myorg.com, 127.0.0.1;

  • port (integer: 1812) - UDP порт, на котором сервер RADIUS слушает запросы. По умолчанию 1812;

  • secret (string: ) - общий секрет RADIUS;

  • unregistered_user_policies (string: "") - список политик, разделенный запятыми, которые будут предоставлены незарегистрированным пользователям;

  • dial_timeout (integer: 10) - количество секунд для ожидания подключения к серверу перед истечением времени. По умолчанию 10;

  • nas_port (integer: 10) - атрибут NAS-Port RADIUS запроса. По умолчанию 10.

Пример тела запроса:
{
  "host": "radius.myorg.com",
  "port": 1812,
  "secret": "mySecret"
}
Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/auth/radius/config

2. Регистрация пользователя

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

Метод Путь

POST

/auth/radius/users/:username

2.1. Параметры

  • username (string: ) - имя пользователя для этого пользователя.

  • policies (string: "") - список политик, разделённых запятыми. Если установлено на пустую строку, то будет применима только политика default.

{
  "policies": "dev,prod"
}
Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/auth/radius/users/test-user

3. Чтение пользователя

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

Метод Путь

GET

/auth/radius/users/:username

3.1. Параметры

  • username (string: ) - имя пользователя для этого пользователя.

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    http://127.0.0.1:8200/v1/auth/radius/users/test-user
Пример ответа:
{
  "request_id": "812229d7-a82e-0b20-c35b-81ce8c1b9fa6",
  "lease_id": "",
  "lease_duration": 0,
  "renewable": false,
  "data": {
    "policies": "default,dev"
  },
  "warnings": null
}

4. Удаление пользователя

Удаляет существующее имя пользователя из метода.

Метод Путь

DELETE

/auth/radius/users/:username

4.1. Параметры

  • username (string: ) - имя пользователя для этого пользователя.

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

5. Список пользователей

Список пользователей, зарегистрированных с помощью метода.

Метод Путь

LIST

/auth/radius/users

5.1. Параметры

  • after (string: "") - необязательная запись, с которой следует начинать перечисление для постраничной навигации; не требуется существовать.

  • limit (int: 0) - необязательное количество записей для возврата; по умолчанию возвращаются все записи.

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request LIST \
    http://127.0.0.1:8200/v1/auth/radius/users
Пример ответа:
{
  "auth": null,
  "warnings": null,
  "wrap_info": null,
  "data": {
    "keys": ["devuser", "produser"]
  },
  "lease_duration": 0,
  "renewable": false,
  "lease_id": ""
}

6. Вход

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

Метод Путь

POST

/auth/radius/login

POST

/auth/radius/login/:username

6.1. Параметры

  • username (string: ) - имя пользователя для этого пользователя;

  • password (string: ) - пароль аутентифицируемого пользователя.

Пример тела запроса:
{
  "password": "Password!"
}
Пример запроса:
$ curl \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/auth/radius/login/test-user
Пример ответа:
{
  "lease_id": "",
  "renewable": false,
  "lease_duration": 0,
  "data": null,
  "warnings": null,
  "auth": {
    "client_token": "64d2a8f2-2a2f-5688-102b-e6088b76e344",
    "accessor": "18bb8f89-826a-56ee-c65b-1736dc5ea27d",
    "policies": ["default"],
    "metadata": {
      "username": "vishal"
    },
  },
  "lease_duration": 7200,
  "renewable": true
}