---
canonical: https://docs.ideco.ru/v22/ru/ngfw/api/authorization-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/users/authorization/
          width: 'auto'
        - text: Документация
          theme: outlined
          url: https://docs.ideco.ru/v22/ru/ngfw/settings/users/authorization/
          width: 'auto'
    resetPaddings: false
    textWidth: l
    size: m
    centered: false
:::

## Управление веб-аутентификацией

{% cut "Получение настройки веб-аутентификации" %}

```
GET /web_authd/control
```

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

```json5
{
    "enabled": true | false,
    "auth_type": "web" | "sso",
    "self_domain_name": "string" | null,
    "tls_profile": "string" | null
}
```

* `enabled`- статус веб-аутентификации:
  * `true` - включен;
  * `false` - выключен.
* `auth_type` - тип аутентификации:
  * `web` - аутентификация через веб-интерфейс;
  * `sso` - SSO-аутентификация через Active Directory и ALD Pro.
* `self_domain_name` - доменное имя Ideco NGFW Novum, на которое перенаправляются запросы пользователей при веб-аутентификации и двухфакторной аутентификации;
* `tls_profile` - идентификатор TLS-профиля. Для NGFW значение всегда `null`.

{% endcut %}

{% cut "Изменение настройки веб-аутентификации" %}

```
PUT /web_authd/control
```

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

```json5
{
    "enabled": true | false,
    "auth_type": "web" | "sso",
    "self_domain_name": "string" | null,
    "tls_profile": "string" | null
}
```

* `enabled`- статус веб-аутентификации:
  * `true` - включен;
  * `false` - выключен.
* `auth_type` - тип аутентификации:
  * `web` - аутентификация через веб-интерфейс;
  * `sso` - SSO-аутентификация через Active Directory и ALD Pro.
* `self_domain_name` - доменное имя Ideco NGFW Novum, на которое перенаправляются запросы пользователей при веб-аутентификации и двухфакторной аутентификации;
* `tls_profile` - идентификатор TLS-профиля. Для NGFW значение всегда `null`.

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

{% endcut %}

## Управление авторизацией по IP/MAC

{% cut "Получение настройки авторизации по IP/MAC" %}

Авторизация по IP/MAC разрешена только для локальных пользователей,  пользователей AD, ALD и FreeIPA. Для пользователей RADIUS и DEVICE авторизация по IP/MAC работать не будет.

```
GET /auth/rules
```

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

```json5
[
    {
        "id": "string",
        "enabled": true | false,
        "ip": "string" | null,
        "mac": "string" | null,
        "user_object_id":  "string",
        "catalog":  "string",
        "always_logged": true | false,
        "comment": "string"
    },
    ...
]
```

* `id`- идентификатор правила;
* `enabled` - статус правила:
  * `true` - включено;
  * `false` - выключено.
* `ip` - IP-адрес, который нужно авторизовать;
* `mac` - MAC-адрес, который нужно авторизовать;
* `user_object_id` - идентификатор пользователя, к которому применяется правило;
* `catalog` - каталог пользователя:
  * `catalog.id.local` - локальные пользователи;
  * `catalog.id.ad.<domain_id>` - пользователи AD, `domain_id` - идентификатор из настроек интеграции AD домена, которому принадлежит пользователь;
  * `catalog.id.ald.<domain_id>` - пользователи ALD, `domain_id` - идентификатор из настроек интеграции ALD домена, которому принадлежит пользователь.
<!--Проверить позже:  * `catalog.id.freeipa.<domain_id>` - пользователи FreeIPA, `domain_id` - идентификатор из настроек интеграции FreeIPA домена, которому принадлежит пользователь.-->
* `always_logged` - постоянная авторизация:
  * `true` - включена;
  * `false` - выключена.
* `comment` - комментарий, максимальная длина - 256 символов. Может быть пустым.

{% endcut %}

{% cut "Добавление правила авторизации по IP/MAC" %}

Авторизация по IP/MAC разрешена только для локальных пользователей,  пользователей AD, ALD и FreeIPA. Для пользователей RADIUS и DEVICE авторизация по IP/MAC работать не будет.


```
POST /auth/rules
```

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

```json5
[
    {
        "enabled": true | false,
        "ip": "string" | null,
        "mac": "string" | null,
        "user_object_id":  "string",
        "catalog":  "string",
        "always_logged": true | false,
        "comment": "string"
    },
    ...
]
```

* `enabled` - статус правила:
  * `true` - включено;
  * `false` - выключено.
* `ip` - IP-адрес, который нужно авторизовать;
* `mac` - MAC-адрес, который нужно авторизовать;
* `user_object_id` - идентификатор пользователя, к которому применяется правило;
* `catalog` - каталог пользователя:
  * `catalog.id.local` - локальные пользователи;
  * `catalog.id.ad.<domain_id>` - пользователи AD, `domain_id` - идентификатор из настроек интеграции AD домена, которому принадлежит пользователь;
  * `catalog.id.ald.<domain_id>` - пользователи ALD, `domain_id` - идентификатор из настроек интеграции ALD домена, которому принадлежит пользователь.
<!--Проверить позже:  * `catalog.id.freeipa.<domain_id>` - пользователи FreeIPA, `domain_id` - идентификатор из настроек интеграции FreeIPA домена, которому принадлежит пользователь.-->
* `always_logged` - постоянная авторизация:
  * `true` - включена, может быть только при `ip`, не равном `null`;
  * `false` - выключена.
* `comment` - комментарий, максимальная длина - 256 символов. Может быть пустым.

Хотя бы одно из полей: `ip` и `mac` должно быть не `null`.

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

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

* `id`- идентификатор правила.

{% endcut %}

{% cut "Изменение правила авторизации по IP/MAC" %}

Авторизация по IP/MAC разрешена только для локальных пользователей,  пользователей AD, ALD и FreeIPA. Для пользователей RADIUS и DEVICE авторизация по IP/MAC работать не будет.


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

```
PATCH /auth/rules/<id правила>
```

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

```json5
[
    {
        "enabled": true | false,
        "ip": "string" | null,
        "mac": "string" | null,
        "user_object_id":  "string",
        "catalog":  "string",
        "always_logged": true | false,
        "comment": "string"
    },
    ...
]
```

* `enabled` - статус правила:
  * `true` - включено;
  * `false` - выключено.
* `ip` - IP-адрес, который нужно авторизовать;
* `mac` - MAC-адрес, который нужно авторизовать;
* `user_object_id` - идентификатор пользователя, к которому применяется правило;
* `catalog` - каталог пользователя:
  * `catalog.id.local` - локальные пользователи;
  * `catalog.id.ad.<domain_id>` - пользователи AD, `domain_id` - идентификатор из настроек интеграции AD домена, которому принадлежит пользователь;
  * `catalog.id.ald.<domain_id>` - пользователи ALD, `domain_id` - идентификатор из настроек интеграции ALD домена, которому принадлежит пользователь.
<!--Проверить позже:  * `catalog.id.freeipa.<domain_id>` - пользователи FreeIPA, `domain_id` - идентификатор из настроек интеграции FreeIPA домена, которому принадлежит пользователь.-->
* `always_logged` - постоянная авторизация:
  * `true` - включена, может быть только при `ip`, не равном `null`;
  * `false` - выключена.
* `comment` - комментарий, максимальная длина - 256 символов. Может быть пустым.

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

{% endcut %}

{% cut "Удаление правила авторизации по IP/MAC" %}

```
DELETE /auth/rules/<id правила>
```

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

{% endcut %}

## Управление авторизацией по подсетям

{% cut "Получение настройки авторизации по подсетям" %}

```
GET /auth/net_rules
```

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

```json5
[
    {
        "id": "string",
        "comment": "string",
        "enabled": true | false,
        "subnet": "string",
        "user_id":  "string"
    },
    ...
]
```

* `id`- идентификатор правила;
* `enabled` - статус правила:
  * `true` - включено;
  * `false` - выключено.
* `subnet` - IP-адрес и маска авторизуемой подсети;
* `user_id` - идентификатор пользователя, к которому применяется правило;
* `comment` - комментарий, максимальная длина - 256 символов. Может быть пустым.

{% endcut %}

{% cut "Добавление правила авторизации" %}

```
POST /auth/net_rules
```

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

```json5
{
    "comment": "string",
    "enabled": true | false,
    "subnet": "string",
    "user_id":  "string"
}
```

* `enabled` - статус правила:
  * `true` - включено;
  * `false` - выключено.
* `subnet` - IP-адрес и маска авторизуемой подсети;
* `user_id` - идентификатор пользователя, к которому применяется правило;
* `comment` - комментарий, максимальная длина - 256 символов. Может быть пустым.

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

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

* `id`- идентификатор правила.

{% endcut %}

{% cut "Изменение правила авторизации" %}

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

```
PATCH /auth/net_rules/<id правила>
```

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

```json5
{
    "comment": "string",
    "enabled": true | false,
    "subnet": "string",
    "user_id":  "string"
}
```

* `enabled` - статус правила:
  * `true` - включено;
  * `false` - выключено.
* `subnet` - IP-адрес и маска авторизуемой подсети;
* `user_id` - идентификатор пользователя, к которому применяется правило;
* `comment` - комментарий, максимальная длина - 256 символов. Может быть пустым.

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

{% endcut %}

{% cut "Удаление правила авторизации" %}

```
DELETE /auth/net_rules/<id правила>
```

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

{% endcut %}

## Управление авторизацией пользователей терминальных серверов AD

{% note warning "" %}

С версии 21 Ideco NGFW Novum методы не поддерживаются. Воспользуйтесь разделом [Терминальный доступ](./ideco-client-api/ideco-client-api.md#терминальный-доступ).

{% endnote %}

{% cut "Получение настройки авторизации по подсетям" %}

```
GET /proxy_backend/terminal_server_auth
```

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

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

* `enabled` - авторизация пользователей терминальных серверов AD:
  * `true` - включена;
  * `false` - выключена.
* `servers` - список IP-адресов терминальных серверов.

{% endcut %}

{% cut "Изменение настроек авторизации пользователей" %}

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

```
PATCH /proxy_backend/terminal_server_auth
```

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

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

* `enabled` - авторизация пользователей терминальных серверов AD:
  * `true` - включена;
  * `false` - выключена.
* `servers` - список IP-адресов терминальных серверов.

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

{% endcut %}

## Управление авторизацией в качестве Syslog-сервера

{% cut "Получение статуса службы" %}

```
GET /auth/status/syslog
```

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

```json5
{
    "msg": ["string"],
    "name": "string",
    "status": "string"
}
```

* `msg` - список сообщений о проблемах с запуском службы. Пустое, если служба запустилась без ошибок;
* `name` - имя службы;
* `status` - статус службы:
  * `active` - работает;
  * `activating` - запускается;
  * `deactivating` - останавливается;
  * `failed` - остановлена из-за ошибки;
  * `inactive` - остановлена;
  * `reloading` - применяет обновленную конфигурацию без перезапуска.

{% endcut %}

{% cut "Получение настройки авторизации в качестве Syslog-сервера" %}

```
GET /auth/settings/syslog
```

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

```json5
{
    "enabled": true | false,
    "listen_ip": "string",
    "port": "integer"
}
```

* `enabled` - статус авторизации в качестве Syslog-сервера:
  * `true` - включена;
  * `false` - выключена.
* `listen_ip` - IP-адрес без маски, на котором NGFW принимает Syslog-сообщения. Значение по умолчанию - `0.0.0.0`. В веб-интерфейсе не отображается и не редактируется;
* `port` - порт, который прослушивается для приема Syslog-сообщения. Значение по умолчанию - `12321`. В веб-интерфейсе не отображается и не редактируется.

{% endcut %}

{% cut "Изменение настройки авторизации в качестве Syslog-сервера" %}

```
PATCH /auth/settings/syslog
```

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

```json5
{
    "enabled": true | false,
    "listen_ip": "string",
    "port": "integer"
}
```

* `enabled` - статус авторизации в качестве Syslog-сервера:
  * `true` - включена;
  * `false` - выключена.
* `listen_ip` - IP-адрес без маски, на котором NGFW принимает Syslog-сообщения. Значение по умолчанию - `0.0.0.0`. В веб-интерфейсе не отображается и не редактируется;
* `port` - порт, который прослушивается для приема Syslog-сообщения. Значение по умолчанию - `12321`. В веб-интерфейсе не отображается и не редактируется.

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

{% endcut %}