---
canonical: https://docs.ideco.ru/v22/ru/ngfw/api/admin-2fa-api
---



# Двухфакторная аутентификация

::: page-constructor
blocks:
  - type: content-layout-block
    textContent:
      buttons:
        - text: Классический VCE
          theme: action
          width: 'auto'
        - text: Высокопроизводительный VCE
          theme: outlined
          url: https://docs.ideco.ru/api/vpp-v22/ru/ngfw/server-management/two-factor-authentication/
          width: 'auto'
        - text: Документация
          theme: outlined
          url: https://docs.ideco.ru/v22/ru/ngfw/settings/server-management/admins
          width: 'auto'
    resetPaddings: false
    textWidth: l
    size: m
    centered: false
:::

### Управление TOTP-токенами

{% cut "Получение настроек TOTP-токена" %}

```
GET /web/two_factor/totp/settings
```

**Ответ на успешный запрос:**

```json5
{
    "enabled": true | false,
    "allowed_networks": ["string"]
}
```

* `enabled` - настройка TOTP-токена:
  * `true` - включена;
  * `false` - выключена.
* `allowed_networks` - список сетей, из которых разрешена инициализация секретного ключа:
    * `any` - любая сеть;
    * `ip.id` - конкретный IP-адрес;
    * `ip_range.id` - диапазон IP-адресов;
    * `subnet.id` - подсеть.

    Если указан `any`, то других объектов в списке не должно быть.

{% endcut %}

{% cut "Изменение настроек TOTP-токена" %}

```
PATCH /web/two_factor/totp/settings
```

**Json-тело запроса:**

```json5
{
    "enabled": true | false,
    "allowed_networks": ["string"]
}
```

* `enabled` - настройка TOTP-токена:
  * `true` - включена;
  * `false` - выключена.
* `allowed_networks` - список сетей, из которых разрешена инициализация секретного ключа:
    * `any` - любая сеть;
    * `ip.id` - конкретный IP-адрес;
    * `ip_range.id` - диапазон IP-адресов;
    * `subnet.id` - подсеть.

    Если указан `any`, то других объектов в списке не должно быть.

**Ответ на успешный запрос:** 200 ОК

{% endcut %}

### Управление RADIUS-серверами

{% cut "Получение списка RADIUS-серверов" %}

```
GET /web/two_factor/radius/settings
```

**Ответ на успешный запрос:**

```json5
[
    {
        "id": "string",
        "name": "string",
        "server": "string",
        "port": "integer",
        "secret": "string",
        "retransmit_timeout": "integer",
        "retransmit_count": "integer",
        "flow": "string",
        "otp_message": "string",
        "comment": "string",
        "enabled": true | false
    },
    ...
]
```

* `id` - идентификатор RADIUS-сервера;
* `name` - название RADIUS-сервера;
* `server` - IP-адрес или домен RADIUS-сервера;
* `port` - порт RADIUS-сервера. Целое число от 1 до 65535;
* `secret` - ключ-пароль RADIUS-сервера. Максимальная длина - 128 символов. Может быть пустым;
* `retransmit_timeout` - время ожидания ответа от RADIUS-сервера. В диапазоне от 3 до 120 секунд;
* `retransmit_count` - количество попыток подключения. В диапазоне от 1 до 5;
* `flow` - вид первого запроса в RADIUS:
    * `login` - отправляется только логин. Поле с паролем остается пустым;
    * `login_and_otp` - код запрашивается у пользователя и отправляется вместе с логином в первом запросе. RADIUS-сервер должен быть настроен на обработку выбранного содержимого запроса.
* `otp_message` - сообщение, которое будет отображаться в форме ввода одноразового кода (OTP), если `flow` содержит `login_and_otp`. Максимальная длина - 256 символов. Может быть пустым. Если `flow` содержит `login`, то `otp_message` не используется;
* `comment` - комментарий. Максимальная длина - 256 символов;
* `enabled` - состояние сервера:
  * `true` - включен;
  * `false` - выключен.

{% endcut %}

{% cut "Добавление RADIUS-сервера" %}

```
POST /web/two_factor/radius/settings
```

**Json-тело запроса:**

```json5
{
    "name": "string",
    "server": "string",
    "port": "integer",
    "secret": "string",
    "retransmit_timeout": "integer",
    "retransmit_count": "integer",
    "flow": "string",
    "otp_message": "string",
    "comment": "string",
    "enabled": true | false
}
```

* `name` - название RADIUS-сервера;
* `server` - IP-адрес или домен RADIUS-сервера;
* `port` - порт RADIUS-сервера. Целое число от 1 до 65535;
* `secret` - ключ-пароль RADIUS-сервера. Максимальная длина - 128 символов. Может быть пустым;
* `retransmit_timeout` - время ожидания ответа от RADIUS-сервера. В диапазоне от 3 до 120 секунд;
* `retransmit_count` - количество попыток подключения. В диапазоне от 1 до 5;
* `flow` - вид первого запроса в RADIUS:
    * `login` - отправляется только логин. Поле с паролем остается пустым;
    * `login_and_otp` - код запрашивается у пользователя и отправляется вместе с логином в первом запросе. RADIUS-сервер должен быть настроен на обработку выбранного содержимого запроса.
* `otp_message` - сообщение, которое будет отображаться в форме ввода одноразового кода (OTP), если `flow` содержит `login_and_otp`. Максимальная длина - 256 символов. Может быть пустым. Если `flow` содержит `login`, то `otp_message` не используется;
* `comment` - комментарий. Максимальная длина - 256 символов;
* `enabled` - состояние сервера:
  * `true` - включен;
  * `false` - выключен.

**Ответ на успешный запрос:**

```json5
{
    "id": "string"
}
```

* `id` - идентификатор добавленного RADIUS-сервера.

{% endcut %}

{% cut "Изменение RADIUS-сервера" %}

```
PATCH /web/two_factor/radius/settings/<id RADIUS-сервера>
```

**Json-тело запроса (все или некоторые поля):**

```json5
{
    "name": "string",
    "server": "string",
    "port": "integer",
    "secret": "string",
    "retransmit_timeout": "integer",
    "retransmit_count": "integer",
    "flow": "string",
    "otp_message": "string",
    "comment": "string",
    "enabled": true | false
}
```

* `name` - название RADIUS-сервера;
* `server` - IP-адрес или домен RADIUS-сервера;
* `port` - порт RADIUS-сервера. Целое число от 1 до 65535;
* `secret` - ключ-пароль RADIUS-сервера. Максимальная длина - 128 символов. Может быть пустым;
* `retransmit_timeout` - время ожидания ответа от RADIUS-сервера. В диапазоне от 3 до 120 секунд;
* `retransmit_count` - количество попыток подключения. В диапазоне от 1 до 5;
* `flow` - вид первого запроса в RADIUS:
    * `login` - отправляется только логин. Поле с паролем остается пустым;
    * `login_and_otp` - код запрашивается у пользователя и отправляется вместе с логином в первом запросе. RADIUS-сервер должен быть настроен на обработку выбранного содержимого запроса.
* `otp_message` - сообщение, которое будет отображаться в форме ввода одноразового кода (OTP), если `flow` содержит `login_and_otp`. Максимальная длина - 256 символов. Может быть пустым. Если `flow` содержит `login`, то `otp_message` не используется;
* `comment` - комментарий. Максимальная длина - 256 символов;
* `enabled` - состояние сервера:
  * `true` - включен;
  * `false` - выключен.

**Ответ на успешный запрос:** 200 ОК

{% endcut %}

{% cut "Удаление RADIUS-сервера" %}

```
DELETE /web/two_factor/radius/settings/<id RADIUS-сервера>
```

**Ответ на успешный запрос:** 200 ОК

{% endcut %}

### Управление реестром 2FA

{% cut "Получение списка инициализированных TOTP-токенов" %}

```
GET /web/two_factor/totp/secrets
```

**Ответ на успешный запрос:**

```json5
[
    {
        "id": "string",
        "admin_alias": "string"
    },
    ...
]
```

* `id` - идентификатор TOTP-токена;
* `admin_alias` - идентификатор администратора. Формат зависит от типа каталога:
    * `admin.id.<ID>` - локальные администраторы, где `ID` - идентификатор локального администратора;
    * `ad_admin.guid.<GUID>` - администраторы AD, где `GUID` - идентификатор администратора AD;
    * `ald_admin.guid.<GUID>` - администраторы ALD, где `GUID` - идентификатор администратора ALD;
    * `freeipa_admin.login.<GUID>` - администраторы FreeIPA, где `GUID` - идентификатор администратора FreeIPA;
    * `radius_admin.login.<login>` - администраторы RADIUS, где `login` - логин администратора RADIUS.

{% endcut %}

{% cut "Удаление TOTP-токена" %}

```
DELETE /two_factor/totp/secrets/<id TOTP-токена>
```

**Ответ на успешный запрос:** 200 ОК

{% endcut %}
