Описание файла RADIUS‑адаптера

За настройки ресурса отвечает файл appsettings.jsonЧтобы добавить ресурс, создайте его конфигурацию в кабинете администратора.

Для этого:

  1. Перейдите на вкладку «Ресурсы».
  2. Выберите ресурс для защиты на второй фактор.
  3. Задайте параметры.
  4. Скачайте конфигурацию.

В скачанном архиве находятся пакеты для настройки двухфакторной аутентификации. Содержимое архива будет зависеть от созданной конфигурации и выбранных способов аутентификации.

Для изменения настроек ресурса:

  1. Разархивируйте содержимое архива.
  2. Найдите файл appsettings.json, по умолчанию расположен в папке RadiusProxy.
  3. Отредактируйте и сохраните настройки, используя любой текстовый редактор.
  4. Перезапустите службу RADIUS-адаптера.

Пример конфигурационного файла appsettings.json
appsettings.json
{
  "RadiusServerConfiguration": {
    "SharedSecret": "1ccbfe3c******************",
    "IpAddress": "0.0.0.0",
    "Port": 1812,
    "Localization": "Ru",
    "SourceName": "Checkpoint",
    "Deduplication": {
      "Enabled": true,
      "ExpirationInSeconds": 60
    },
    "LoggingPacket": true
  },
  "RadiusClientConfiguration": {
    "ExternalRadiusEndpoint": "10.219.151.54:1812",
    "ClientEndpoint": "0.0.0.0:12345"
  },
  "VerificationApiConfiguration": {
    "BypassConfiguration": {
      "Enabled": false
    }
  },
  "PolicyConfiguration": {
    "Policy": "AllUsersWithExceptions",
    "Exceptions": {
      "Domains": {
        "test.ru": {
          "Groups": [
            "Group1",
            "Group2"
          ]
        }
      },
      "Users": [
        "guid1",
        "guid2"
      ],
      "LocalUsers": [
        "ivanov"
      ]
    }
  },
  "AuthenticationConfiguration": {
    "FirstFactorSource": "ActiveDirectory",
    "SecondFactorSource": "Verification.Api.Notification",
    "CacheOptions": {
      "ConfidenceInterval": "00:12:00",
      "ConfidenceAttributeNames": [
        "Attr1",
        "Attr2"
      ]
    },
    "LocalUserBehavior": {
      "SkipAd": true
    },
    "AuthenticationPolicies": [
      {
        "PolicyName": "PolicyName1",
        "SecondFactorSource": [
          "Verification.Api.OTP"
        ],
        "Domains": {
          "test.ru": {
            "Groups": [
              "Group1",
              "Group2"
            ]
          },
          "first.test.ru": {
            "Groups": [
              "GroupOtherDomain1",
              "GroupOtherDomain2"
            ]
          }
        }
      },
      {
        "PolicyName": "PolicyName2",
        "SecondFactorSource": [
          "Verification.Api.Notification"
        ],
        "Domains": {
          "test.ru": {
            "Groups": [
              "Group1",
              "Group4"
            ]
          },
          "first.test.ru": {
            "Groups": [
              "GroupOtherDomain3",
              "GroupOtherDomain4"
            ]
          }
        }
      }
    ]
  },
  "ActiveDirectoryConfiguration": {
    "DomainConfigurations": [
      {
        "DomainSettings": {
          "Name": "test.ru",
          "NetBiosName": "test",
          "ServerAddress": "0.0.0.0:389"
        }
      },
      {
        "DomainSettings": {
          "Name": "first.test.ru",
          "NetBiosName": "first.test",
          "ServerAddress": "0.0.0.0:389"
        },
        "LDAPCredentials": {
          "UserName": "Login",
          "Password": "*********",
          "AuthType": "Basic"
        },
        "BanAccountConfiguration": {
          "Enabled": true,
          "MaxTotalFailedLoginAttempts": 19,
          "ResetFailedLoginAttemptsCounterAfter": "00:15:00",
          "UnblockAccountAfter": "00:30:00"
        },
        "UseOnlyStraightGroups": true,
        "SessionOptions": {
          "ReferralChasing": "None"
        }
      }
    ],
    "GlobalCatalogConfigurations": [
      {
        "ServerAddress": "1.1.1.3:3268",
        "LdapCredentials": {
          "UserName": "Login",
          "Password": "*********",
          "AuthType": "Basic"
        }
      }
    ]
  },
  "ResponseTransformConfiguration": {
    "UserGroupsTransformRule": {
      "Attribute": "Fortinet-Group-Name",
      "TransferMode": "Delimiter",
      "Delimiter": "; ",
      "GroupNameTemplate": "{GroupName}",
      "KnownGroups": [
        "Developers",
        "HomeOffice"
      ]
    },
    "AdditionalAttributeTransformRules": [
      {
        "Attribute": "Cisco",
        "Value": "21",
        "GroupsFilter": [
          "21C"
        ]
      }
    ]
  },
  "AuthorizationConfiguration": {
    "Policy": "AllUsersWithExceptions",
    "Exceptions": {
      "Domains": {
        "test.ru": {
          "Groups": [
            "Group1",
            "Group2"
          ]
        }
      },
      "Users": [
        "guid1",
        "guid2"
      ],
      "LocalUsers": [
        "ivanov"
      ]
    }
  },
  "ProxyServerConfiguration": {
    "Address": "https://127.0.0.1:8080",
    "Credentials": [
      {
        "AuthenticationType": "Basic",
        "UserName": "BasicUserName",
        "Password": "***************",
        "Domain": "basicNetbiosName"
      }
    ]
  },
  "Logging": {
    "Syslog": {
      "Protocol": {
        "FormatType": "Rfc3164",
        "FramingType": "CrLf",
        "UseJsonFormat": false,
        "WriteBom": false
      },
      "Servers": [
        {
          "ConnectionType": "Udp",
          "Address": "10.0.0.1",
          "Port": 514,
          "Protocol": {
            "FormatType": "Rfc5424",
            "FramingType": "OctetCounting",
            "UseJsonFormat": false,
            "WriteBom": false
          }
        }
      ],
      "MessageMappings": {
        "AUTH_1_FACTOR_ERROR": {
          "Facility": "4",
          "Severity": "4"
        },
        "AUTH_1_FACTOR_SUCCESS": {
          "Facility": "4",
          "Severity": "6"
        },
        "*": {
          "Facility": "1",
          "Severity": "6"
        }
      }
    },
    "FileLog": {
      "MaxFiles": 30,
      "Period": "Day",
      "MaxSize": 2147483648,
      "Type": "Hybrid",
      "DirectoryPath": null
    }
  }
}

Файл состоит из следующих блоков:

Конфигурация RADIUS-сервера

RadiusServerConfiguration
"RadiusServerConfiguration": {
  "SharedSecret": "1ccbfe3c******************",
  "IpAddress": "0.0.0.0",
  "Port": 1812,
  "Localization": "Ru",
  "SourceName": "Checkpoint",
  "Deduplication": {
    "Enabled": true,
    "ExpirationInSeconds": 60
  },
  "LoggingPacket": true
}

Имя параметра Значение параметра

SourceName

Имя ресурса, с которым работает RADIUS-адаптер. Можно задать любое значение типа строки (string). Например, "OpenVPN"

SharedSecret

Секрет, который используется для аутентификации между ресурсом и RADIUS-адаптером

Port

Порт для подключения к RADIUS-адаптеру.
Порт по умолчанию: 1812

LoggingPacket

Расширенное логирование входящего RADIUS-пакета.
Возможные значения: true или false

Localization

Настройка для локализации ошибок.
Параметры локализации: "Ru" или "Eng"

IpAddress

Локальный IP-адрес компьютера, на котором установлен RADIUS-адаптер.
Адрес по умолчанию: 0.0.0.0

Deduplication

Дедубликация запросовПри включении настройки повторные запросы обрабатываются один раз. Запросы объединяются на основе идентификатора, логина и пароля

Параметры дедубликации: "Enabledи "ExpirationInSeconds".

  • "Enabled" — включена или нет.
    Возможные значения: true или false.

  • "ExpirationInSeconds — интервал в секундахВсе запросы, которые приходят в установленный интервал, считаются идентичными и рассматривается только первый из них

Конфигурация RADIUS-клиента

Конфигурация этого блока позволяет настроить RADIUS-клиент, если он указан в качестве основного фактора.

RadiusClientConfiguration
"RadiusClientConfiguration": {
	"ExternalRadiusEndpoint": "10.219.151.54:1812",
	"ClientEndpoint": "0.0.0.0:12345",
	"BanAccountConfiguration": {
		"Enabled": true,
		"MaxTotalFailedLoginAttempts": 19,
		"ResetFailedLoginAttemptsCounterAfter": "00:15:00",
		"UnblockAccountAfter": "00:30:00"
	}
}

Имя параметра Значение параметра

ExternalRadiusEndpoint

Адрес внешнего RADIUS-сервера в формате «ip:port»

ClientEndpoint

Адрес RADIUS-клиента.
Значение по умолчанию "0.0.0.0:12345"

Блок BanAccountConfiguration позволяет настроить блокировку учётных записей для внешнего RADIUS:

Имя параметра Значение параметра
Enabled

Настройка блокировки учётных записей для внешнего RADIUS. Значение true включает блокировку, false отключает.

Блокировка учётных записей активна при условии, что указаны:

  • В DomainConfigurations LDAPCredentials.
  • В AuthenticationConfiguration FirstFactorSource: ExternalRadius
MaxTotalFailedLoginAttempts

Максимальное значение неудачных попыток аутентификации.

Возможные значения: от 1 до 999

ResetFailedLoginAttemptsCounterAfter

Параметр определяет количество минут, которое должно пройти после последней неудачной попытки входа в систему. После того как истечёт время, счетчик попыток вернется в изначальное состояние. 

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

Важно, что значение ResetFailedLoginAttemptsCounterAfter должно быть меньше или равно значению UnblockAccountAfter.

Возможные значения: от 1 до 99 999 минут.

Укажите параметр в TimeSpan в формате "hh:mm:ss":

  • "00:02:00" 2 минуты;
  • "00:30:00" — 30 минут
UnblockAccountAfter

Параметр определяет количество минут, которое должно пройти после того, как учётная запись пользователя будет разблокирована.

Возможные значения: от 1 до 99 999 минут. 

Укажите параметр в TimeSpan в формате "hh:mm:ss"

Подробнее о настройке смотрите в инструкции Блокировка учётных записей с внешним RADIUS-сервером.

Конфигурация API

VerificationApiConfiguration
"VerificationApiConfiguration": {
  "BypassConfiguration": {
    "Enabled": false
  }
}

Имя параметра Значение параметра

BypassConfiguration

Настройка недоступности API. Если настройка включена, то проверка второго фактора будет пропущена. По умолчанию настройка выключена. 

Имеет один параметр: "Enabled". 
Возможные значения: true или false

Конфигурация политики запроса второго фактора

PolicyConfiguration
"PolicyConfiguration": {
  "Policy": "AllUsersWithExceptions",
  "Exceptions": {
    "Domains": {
      "test.ru": {
        "Groups": [
          "Group1",
          "Group2"
        ]
      }
    },
    "Users": [
      "guid1",
      "guid2"
    ],
    "LocalUsers": [
      "ivanov"
    ]
  }
}

Имя параметра Значение параметра

Policy

Настройка политики.
Возможные значения:

  • "AllUsers" — спрашивать подтверждение доступа у всех пользователей;

  • "AllUsersWithExceptions— спрашивать подтверждение доступа у всех пользователей, кроме тех, которые находятся в исключении;

  • "NoOneWithExceptions" спрашивать подтверждение доступа только у пользователей, которые находятся в списке исключений.

Политика настраивается с помощью единой настройки, которая применима как к одному домену, так и ко всем доменам.

Exceptions

Настройка исключений по правилам политики.
Атрибуты:

  • "Domains" — список доменов с группами. Представлен в виде ключ-значение, где ключ — это домен и "Groups" — список групп в домене

  • "Users— cписок идентификаторов пользователей в исключении.

  • "LocalUsers" — список локальных пользователей в исключении. Используется для аутентификации в Windows/SSH

Конфигурация аутентификации

AuthenticationConfiguration
"AuthenticationConfiguration": {
  "FirstFactorSource": "ActiveDirectory",
  "SecondFactorSource": "Verification.Api.Notification",
  "CacheOptions": {
    "ConfidenceInterval": "00:12:00",
    "ConfidenceAttributeNames": [
      "Attr1",
      "Attr2"
    ]
  },
  "LocalUserBehavior": {
    "SkipAd": true
  },
  "AuthenticationPolicies": [
    {
      "PolicyName": "PolicyName1",
      "SecondFactorSource": [
        "Verification.Api.OTP"
      ],
      "Domains": {
        "test.ru": {
          "Groups": [
            "Group1",
            "Group2"
          ]
        },
        "first.test.ru": {
          "Groups": [
            "GroupOtherDomain1",
            "GroupOtherDomain2"
          ]
        }
      }
    },
    {
      "PolicyName": "PolicyName2",
      "SecondFactorSource": [
        "Verification.Api.Notification"
      ],
      "Domains": {
        "test.ru": {
          "Groups": [
            "Group1",
            "Group4"
          ]
        },
        "first.test.ru": {
          "Groups": [
            "GroupOtherDomain3",
            "GroupOtherDomain4"
          ]
        }
      }
    }
  ]
}

Имя параметра Значение параметра

FirstFactorSource

Настройка первого фактора.
Возможные значения:

  • "None" — подтверждение доступа отсутствует. Например, используется для настройки RDG, SSH;
  • "ActiveDirectory" — подтверждение доступа через Active Directory;
  • "Verification.Api.OTP" — подтверждение доступа через OTP-коды;
  • "ExternalRadius" — подтверждение доступа через внешний RADIUS. Например, используется для настройки Mikrotik с протоколом MSCHAPv2

SecondFactorSource

Общая настройка второго фактора.
Возможные значения:

  • "None" — подтверждение доступа отсутствует, используется, если FirstFactorSource имеет значение Verification.Api.OTP;

  • "Verification.Api.Notification" — подтверждение доступа через push-уведомление в приложении Контур.Коннект или звонок;

  • "Verification.Api.OTP" — подтверждение доступа через OTP-коды;

  • "Verification.Api.Otp.External" — подтверждение доступа через внешние аутентификаторы;

  • "Verification.Api.CodeEmail" — подтверждение доступа через почту

CacheOptions

Настройка кэша аутентификации. Используется для пропуска второго фактора в течение заданного времени.

  • "ConfidenceInterval" — время хранения входа пользователя в формате TimeSpan:

    • "03:12:36" — запрос второго фактора через 3 часа, 12 минут, 36 секунд;

    • "3.12:54:01" — запрос второго фактора через 3 дня, 12 часов, 54 минуты, 1 секунду.

  • "ConfidenceAttributeNames" — список атрибутов в RADIUS-адаптере

LocalUserBehavior

Настройка для управления поведением учётных записей локальных пользователей. Используется для аутентификации в Windows

LocalUserBehavior.SkipAd

Если настройка в значение true, то проверка первого фактора в Active Directory для локальных учётных записей игнорируется.
Возможные значения: true или false

AuthenticationPolicies

Настройка одной или нескольких политик для разделения пользователей по способам аутентификации.

Если пользователь находится в домене и группе в политике, то второй фактор для этого пользователя сработает из политики. Если пользователь находится в нескольких политиках, то второй фактор сработает у первой политики, а остальные будут проигнорированы.

Возможные значения:

  • "PolicyName" —  название политики;

  • "SecondFactorSource" — настройка второго фактора.
    Список возможных значений:

    • "Verification.Api.Notification" — подтверждение доступа через push-уведомление в приложении Контур.Коннект или звонок;

    • "Verification.Api.OTP" — подтверждение доступа через OTP-коды;

    • "Verification.Api.Otp.External" — подтверждение доступа через внешние аутентификаторы;

    • "Verification.Api.CodeEmail" — подтверждение доступа через почту.
  • "Domains— список доменов с группами. Представлен в виде ключ-значение, где ключ — это домен и "Groups" — список групп в домене

Конфигурация Active Directory

ActiveDirectoryConfiguration
"ActiveDirectoryConfiguration": {
  "DomainConfigurations": [
    {
      "DomainSettings": {
        "Name": "test.ru",
        "NetBiosName": "test",
        "ServerAddress": "0.0.0.0:389"
      }
    },
    {
      "DomainSettings": {
        "Name": "first.test.ru",
        "NetBiosName": "first.test",
        "ServerAddress": "0.0.0.0:389"
      },
      "LDAPCredentials": {
        "UserName": "Login",
        "Password": "*********",
        "AuthType": "Basic"
      },
      # Если не настроен глобальный каталог, необходимо установить бан над доменом или доменами
      "BanAccountConfiguration": {
        "Enabled": true,
        "MaxTotalFailedLoginAttempts": 19,
        "ResetFailedLoginAttemptsCounterAfter": "00:15:00",
        "UnblockAccountAfter": "00:30:00"
      },
      "UseOnlyStraightGroups": true,
      "SessionOptions": {
        "ReferralChasing": "None"
      }
    }
  ],
  "GlobalCatalogConfigurations": [
    {
      "ServerAddress": "1.1.1.3:3268",
      "LdapCredentials": {
        "UserName": "Login",
        "Password": "*********",
        "AuthType": "Basic"
      }
    },
    # Если настроен глобальный каталог, необходимо установить бан над глобальным каталогом
    "BanAccountConfiguration": {
      "Enabled": true,
      "MaxTotalFailedLoginAttempts": 3,
      "ResetFailedLoginAttemptsCounterAfter": "00:00:30",
      "UnblockAccountAfter": "00:00:30"
    },
  ]
}

Блок DomainConfigurations состоит из списка настроек для одного или нескольких доменов:

DomainSettings
Имя параметра Значение параметра

Name

Домен, в котором RADIUS-адаптер проверяет логин и пароль пользователя

ServerAddress

Адрес домена в формате «ip:port». Порт по умолчанию для большинства серверов LDAP: 389 и LDAPS: 636

NetBiosName

Имя домена "NetBios". Используется в Linux

LDAPCredentials
Имя параметра Значение параметра

UserName

Имя пользователя

Password

Пароль пользователя

AuthType

Тип аутентификации.
Возможные значения:

"Basic—  требует от клиента отправки зашифрованного имени пользователя и пароля в каждом запросе.

"Negotiate" —  позволяет клиенту и серверу согласовать, какой протокол аутентификации использовать. Применяется в средах, где распространена аутентификация Windows.

"Kerberos—  выполняет аутентификацию в качестве службы аутентификации доверенной третьей стороны, используя криптографический ключ. Применяется в корпоративных средах, которые работают с Active Directory.

В Linux при работе с ActiveDirectory поддерживаются только типы аутентификации "Basic" и "Kerberos".

Active Directory передаёт логин пользователя вместе с доменом, например, DOMAIN\username или user@domain. Если AuthType имеет значение "Basic", то в UserName укажите имя пользователя совместно с доменом DOMAIN\username или user@domain

BanAccountConfiguration
Имя параметра Значение параметра

Enabled

Настройка блокировки учётных записей в Active Directory. Значение true включает блокировку, false — отключает.

Блокировка учётных записей активна при условии, что указаны:

  • В DomainConfigurations — LDAPCredentials.
  • В AuthenticationConfiguration 
    FirstFactorSource: ActiveDirectory

MaxTotalFailedLoginAttempts

Максимальное значение неудачных попыток аутентификации в Active Directory.

Возможные значения: от 1 до 999

ResetFailedLogin
AttemptsCounterAfter

Параметр определяет количество минут, которое должно пройти после последней неудачной попытки входа в систему. После того как истечёт время, счетчик попыток вернется в изначальное состояние. 

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

Важно, что значение ResetFailedLoginAttemptsCounterAfter должно быть меньше или равно значению UnblockAccountAfter.

Возможные значения: от 1 до 99 999 минут.

Укажите параметр в TimeSpan в формате "hh:mm:ss":

  • "00:02:00" — 2 минуты;
  • "00:30:00" — 30 минут

UnblockAccountAfter

Параметр определяет количество минут, которое должно пройти после того, как учётная запись пользователя будет разблокирована.

Возможные значения: от 1 до 99 999 минут. 

Укажите параметр в TimeSpan в формате "hh:mm:ss"

UseOnlyStraightGroups

Имя параметра Значение параметра

UseOnlyStraightGroups

Настройка для вложенных групп. Значение true отключает проверку вложенных групп. Используется для ускорения запросов к Active Directory при медленной аутентификации.
Возможные значения: true или false

SessionOptions
Имя параметра Значение параметра

ReferralChasing

Настройка режима отслеживания ссылок LDAP Referrals.

Механизм LDAP Referrals позволяет отследить запросы между несколькими серверами. Сервер возвращает ответ в формате специальной записи — реферала. Эта запись содержит ссылку (LDAP URL) другого сервера, где находится нужная информация.

Основные значения:

  • "None" — настройка по умолчанию. Ссылки на другие серверы не отслеживаются. Этот режим позволяет избежать обращения клиента к другим серверам.
  • "All" — отслеживаются все ссылки, как внешние, так и внутренние.

Про режимы отслеживания ссылок см. подробнее на сайте Microsoft

Блок GlobalCatalogConfigurations позволяет настроить сервер глобального каталога:

GlobalCatalogConfigurations
Имя параметра Значение параметра

ServerAddress

Адрес домена в формате «ip:port».
Порт по умолчанию 3268 или безопасная версия 3269 (SSL). Порт используется для запроса к глобальному каталогу LDAP

LDAPCredentials.UserName

Имя пользователя

LDAPCredentials.Password

Пароль пользователя

LDAPCredentials.AuthType

Тип аутентификации.
Возможные значения:

  • "Basic" —  требует от клиента отправки зашифрованного имени пользователя и пароля в каждом запросе.
  • "Negotiate" —  позволяет клиенту и серверу согласовать, какой протокол аутентификации использовать. Применяется в средах, где распространена аутентификация Windows.
  • "Kerberos" —  выполняет аутентификацию в качестве службы аутентификации доверенной третьей стороны, используя криптографический ключ. Применяется в корпоративных средах, которые работают с Active Directory.

В Linux при работе с ActiveDirectory поддерживаются только типы аутентификации "Basic" и "Kerberos".

Active Directory передаёт логин пользователя вместе с доменом, например, DOMAIN\username или user@domain. Если LDAPCredentials.AuthType имеет значение "Basic", то в LDAPCredentials.UserName укажите имя пользователя совместно с доменом DOMAIN\username или user@domain

Блок BanAccountConfiguration позволяет настроить блокировку учётных записей Active Directory:

BanAccountConfiguration

Имя параметра Значение параметра
Enabled

Настройка блокировки учётных записей в Active Directory. Значение true включает блокировку, false отключает.

Блокировка учётных записей активна при условии, что указаны:

  • В DomainConfigurations LDAPCredentials.
  • В AuthenticationConfiguration FirstFactorSource: ActiveDirectory
MaxTotalFailedLoginAttempts

Максимальное значение неудачных попыток аутентификации в Active Directory.

Возможные значения: от 1 до 999

ResetFailedLoginAttemptsCounterAfter

Параметр определяет количество минут, которое должно пройти после последней неудачной попытки входа в систему. После того как истечёт время, счетчик попыток вернется в изначальное состояние. 

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

Важно, что значение ResetFailedLoginAttemptsCounterAfter должно быть меньше или равно значению UnblockAccountAfter.

Возможные значения: от 1 до 99 999 минут.

Укажите параметр в TimeSpan в формате "hh:mm:ss":

  • "00:02:00" 2 минуты;
  • "00:30:00" — 30 минут
UnblockAccountAfter

Параметр определяет количество минут, которое должно пройти после того, как учётная запись пользователя будет разблокирована.

Возможные значения: от 1 до 99 999 минут. 

Укажите параметр в TimeSpan в формате "hh:mm:ss"

Настроить блокировку можно одним из способов:

  • Если у пользователя настроен глобальный каталог, нужно добавить настройку BanAccountConfiguration в блок GlobalCatalogConfigurations.
  • Если у пользователя не настроен глобальный каталог, нужно добавить настройку BanAccountConfiguration в блок DomainConfigurations.

Подробнее о настройке смотрите в инструкции Блокировка учётных записей Active Directory.

Конфигурация передачи групп пользователей и дополнительных атрибутов

Конфигурация состоит из двух блоков:

  • UserGroupsTransformRule  правила передачи групп пользователя в ответе ресурсу.
  • AdditionalAttributeTransformRules  правила передачи дополнительных атрибутов в ответе ресурсу.

Если ваш ресурс реализует авторизацию на основе групп ActiveDirectory, то при настройке двухфакторной аутентификации, авторизация перестанет работать. Ресурс будет отправлять запрос в компонент RADIUS-адаптера вместо Active Directory. Для корректной работы необходимо настроить правила передачи групп пользователей.

ResponseTransformConfiguration
"ResponseTransformConfiguration": {
  "UserGroupsTransformRule": {
    "Attribute": "Fortinet-Group-Name",
    "TransferMode": "Delimiter",
    "Delimiter": "; ",
    "GroupNameTemplate": "{GroupName}",
    "KnownGroups": [
      "Developers",
      "HomeOffice"
    ]
  },
  "AdditionalAttributeTransformRules": [
    {
      "Attribute": "Cisco",
      "Value": "21",
      "GroupsFilter": [
        "21C"
      ]
    }
  ]
}

RADIUS поддерживает работу с атрибутами, которые указаны в файле radius.dictionary. Файл находится в ранее скачанном архиве в папке «Content».Если в radius.dictionary атрибута нет, добавьте его в список.

Поддерживаемые типы:

  • string — строка: "value";
  • integer  число:  23;
  • ipaddr — IPv4-адрес: "192.168.1.1";
  • octet  массив байт в виде строки от 0 до 255 разделенной ";": "123;255;123;211;241;3;54".

UserGroupsTransformRule
Имя параметра Значение параметра

Attribute

Имя атрибута, в котором передаются группы пользователя

TransferMode

Способ передачи атрибута:

  • "Multiple" — передает атрибут несколько раз, каждый раз по одной группе;
  • "Delimiter" —  передает атрибут один раз, группы записаны в строку через разделитель

Delimiter

Разделитель. Активен, если TransferMode имеет значение Delimiter

GroupNameTemplate

Шаблон для преобразования названия группы. Должен содержать подстроку "{GroupName}" или "ou={GroupName}" в зависимости от ресурса. Подстрока шаблона автоматически будет заменена на оригинальное название группы. 

Например, пользователь состоит в группе Developers. Для шаблона "ou={GroupName}" строка будет заменена на "ou=Developers"

KnownGroups

Список групп пользователей для передачи. Если группы нет в списке, то она не передается. Если параметр KnownGroups не указан, то передаются все группы

AdditionalAttributeTransformRules
Имя параметра Значение параметра

Attribute

Имя передаваемого атрибута

Value

Значение передаваемого атрибута

GroupsFilter

Фильтрация по группам. Атрибут передаётся, если пользователь состоит хотя бы в одной группе. Если фильтр не указан, то атрибут передаётся всегда

Конфигурация авторизации по группам пользователей

Конфигурация этого блока позволяет ограничить доступ к ресурсу по группам пользователей.

AuthorizationConfiguration
"AuthorizationConfiguration": {
  "Policy": "AllUsersWithExceptions",
  "Exceptions": {
    "Domains": {
      "test.ru": {
        "Groups": [
          "Group1",
          "Group2"
        ]
      }
    },
    "Users": [
      "guid1",
      "guid2"
    ],
    "LocalUsers": [
      "ivanov"
    ]
  }
}

Имя параметра Значение параметра

Policy

Настройка политики.
Возможные значения:

  • "AllUsers" — спрашивать подтверждение доступа у всех пользователей;
  • "AllUsersWithExceptions"  — спрашивать подтверждение доступа у всех пользователей, кроме тех, которые находятся в исключении;
  • "NoOneWithExceptions"  — спрашивать подтверждение доступа только у пользователей, которые в списке исключений

Exceptions

Настройка исключений по правилам политики.
Атрибуты:

  • "Domains" — список доменов с группами. Представлен в виде ключ-значение, где ключ — это домен и "Groups" — список групп в домене
  • "Users— cписок идентификаторов пользователей в исключении.
  • "LocalUsers" — список локальных пользователей в исключении. Используется для аутентификации в Windows/SSH

Конфигурация саморегистрации и авторегистрации

Конфигурация этого блока позволяет настроить регистрацию пользователя:

  • Саморегистрация — это процесс регистрации нового пользователя в Контур.ID. Если пользователь еще не зарегистрирован в системе, сервис отправит приглашение на регистрацию по почте или в смс. После этого пользователь автоматически будет добавлен в базу.

  • Авторегистрация избавляет зарегистрированного пользователя от повторной регистрации, когда он заходит в систему с другим логином или доменом.

SelfRegistrationConfiguration
"SelfRegistrationConfiguration": {
  "RegistrationType": "ByEmail",
  "AutoRegistrationEnabled": true
}

Имя параметра Значение параметра

RegistrationType

Тип саморегистрации пользователя.
Возможные значения: 

  • "ByEmail" — саморегистрация по почте. Сервис автоматически добавит пользователя в базу. Пользователю придёт приглашение на электронную почту.

  • "ByPhone" — саморегистрация по телефону через смс. Сервис автоматически добавит пользователя в базу. Пользователю придёт приглашение на телефон.

  • "None" — саморегистрация отключена. Администратор добавляет пользователя вручную.  Пользователю придет приглашение на электронную почту.

Если параметр RegistrationType не указан, то по умолчанию саморегистрация работает по почте

AutoRegistrationEnabled

Авторегистрация пользователя. Если параметр AutoRegistrationEnabled не указан, то по умолчанию авторегистрация включена.
Возможные значения: true или false

Конфигурация проксирования запросов

ProxyServerConfiguration отвечает за настройку прокси-сервера, который перенаправляет HTTP-запросы в облако Контур.ID.

Для минимальной настройки укажите:

  • Адрес прокси-сервера.
  • Реквизиты входа, если необходима аутентификация.

ProxyServerConfiguration
"ProxyServerConfiguration": {
  "Address": "https://127.0.0.1:8080",
  "Credentials": [
    {
      "AuthenticationType": "Basic",
      "UserName": "BasicUserName",
      "Password": "***************",
      "Domain": "basicNetbiosName"
    }
  ],
  "ApiKeyCredentials": {
    "ApiKey": "api-key-value",
    "HeaderName": "X-API-Key",
    "Prefix": "Bearer"
  }
}

Имя параметра Значение параметра

Address

Адрес прокси-сервера может содержать порт и схему как по протоколу HTTP, так и по протоколу HTTPS. Поле является обязательным.

Например:

Если в поле Address схема не указана, по умолчанию используется HTTP. Для работы по HTTPS необходимо дополнительно настроить выпуск сертификата

Credentials

Список реквизитов для входа с помощью имени пользователя и пароля

Credentials.AuthenticationType

Настройка типа аутентификации.

Например:

  • Basic
  • Digest
  • NTLM
  • Negotiate

Обязательное поле

Credentials.UserName 

Имя учетной записи. Если UserName не указан, по умолчанию реквизитами являются учетные данные пользователя, от имени которого запущено приложение. Такие реквизиты работают только в ОС Windows и доступны для типов аутентификации NTLM и Negotiate. Необязательное поле

Credentials.Password

Пароль учетной записи. Необязательное поле

Credentials.Domain

Домен учетной записи. Укажите для домена netBIOS-имя или DNS-имя. Необязательное поле

ApiKeyCredentials

Настройка реквизитов входа для аутентификации с помощью API-ключа. Укажите параметр, если в прокси-сервере требуется аутентификация по API-ключу

ApiKeyCredentials.ApiKey

Значение API-ключа. Обязательное поле

ApiKeyCredentials.UserName

Имя заголовка HTTP, в котором передается API-ключ. Если в поле HeaderName значение не указано, то по умолчанию значение будет X-API-Key

ApiKeyCredentials.Prefix

Специальный префикс перед значением API-ключа. Если поле Prefix указано, то заголовок будет сформирован по следующему правилу: {HeaderName}: {Prefix} {ApiKey}. Необязательное поле

Конфигурация Syslog

Syslog — протокол сбора и отправки журнала событий в сети. Для настройки журнала событий укажите Syslog-сервер и его конфигурацию.

Изменять конфигурацию протокола следует в том случае, если настройки не подходят по умолчанию.

Logging
"Logging": {
  "Syslog": {
    "Protocol": {
      "FormatType": "Rfc3164",
      "FramingType": "CrLf",
      "UseJsonFormat": false,
      "WriteBom": false
    },
    "Servers": [
      {
        "ConnectionType": "Udp",
        "Address": "10.0.0.1",
        "Port": 514,
        "Protocol": {
          "FormatType": "Rfc5424",
          "FramingType": "OctetCounting",
          "UseJsonFormat": false,
          "WriteBom": false
        }
      }
    ],
    "MessageMappings": {
      "AUTH_1_FACTOR_ERROR": {
        "Facility": "4",
        "Severity": "4"
      },
      "AUTH_1_FACTOR_SUCCESS": {
        "Facility": "4",
        "Severity": "6"
      },
      "*": {
        "Facility": "1",
        "Severity": "6"
      }
    }
  }
}

Имя параметра Значение параметра
Logging Блок настройки системы логирования
Syslog Настройки логов Syslog
Protocol

Общие настройки протокола для всех Syslog-серверов. 

  • FormatType — формат сообщений для отправки на сервер.
    Возможные значения: Rfc3164 или Rfc5424.
  • FramingType — способ разделения больших сообщений при отправке на сервер.
    Возможные значения:
    • CrLf;
    • Cr;
    • Nul;
    • OctetCounting.
  • UseJsonFormat — отправка логов в виде JSON строки.
    Возможные значения: true или false.
  • WriteBom — отправка логов в кодировке UTF8-BOM.
    Возможные значения: true или false
Servers Список Syslog-серверов. Может содержать один или несколько серверов.
Если сервера не указаны, логи Syslog не отправляются
Servers.ConnectionType

Тип подключения Syslog-сервера:

  • Udp;
  • Tcp;
  • TlsTcp
Servers.Address Адрес Syslog-сервера.
Возможные значения: имя DNS или IPv4
Servers.Port Порт Syslog-сервера
Servers.Protocol Настройки протокола для конкретного Syslog-сервера
MessageMappings

Настройки переопределения уровня логирования для Syslog сообщений. Формат вывода Syslog генерирует сообщения в соответствии со спецификациями, которые описаны в стандартах RFC 3164 и RFC 5424.

MessageMappings принимает значения вида:

"MESSAGE_ID": {
  "Facility": "4",
  "Severity": "4"
},
"MESSAGE_ID": {
  "Facility": "4",
  "Severity": "6"
},
"MESSAGE_ID": {
  "Facility": "6",
  "Severity": "6"
}


Где MESSAGE_ID — это идентификатор сообщения для переопределения уровня логирования. Идентификатор имеет следующие значения:

  • AUTH_1_FACTOR_SUCCESS;
  • AUTH_1_FACTOR_ERROR;
  • AUTH_2_FACTOR_SUCCESS;
  • AUTH_2_FACTOR_ERROR;
  • AUTH_2_FACTOR_SKIP;
  • RESOURCE_ACCESS_SUCCESS;
  • RESOURCE_ACCESS_ERROR;
  • APP_LOG.

Для переопределения уровня логирования для всех сообщений укажите —  «*».

Каждое сообщение имеет параметры:

  • Facility  — категория сообщения;
  • Severity  — важность сообщения

Конфигурация FileLog

FileLog отвечает за настройки журнала лог-файлов. Блок расположен в секции Logging.

Изменять конфигурацию протокола следует в том случае, если настройки не подходят по умолчанию.

Logging
"Logging": {
  "FileLog": {
    "MaxFiles": 30,
    "Period": "Day",
    "MaxSize": 2147483648,
    "Type": "Hybrid",
    "DirectoryPath": null
  }
}

Имя  параметра Значение параметра
Logging

Блок настройки системы логирования

FileLog Настройки журнала лог-файлов
MaxFiles Отвечает за количество хранимых лог-файлов. Старые файлы автоматически удаляются при переключении на новый файл.
Чтобы избежать удаления старых файлов, укажите значение: 0
Period

Настройка временного периода.
Возможные значения:

  • Day запись логов в файл за день. Настройка по умолчанию.

  • Hour запись логов в файл за час.

  • Minute — запись логов в файл за минуту.
  • Second запись логов в файл за секунду
MaxSize

Настройка максимального размера лог-файла. По умолчанию размер установлен в 1ГБ. Чтобы изменить размер лог-файла, укажите значение в байтах

Type

Настройка ротации логов. Для управления размером лог-файлов и предотвращения их переполнения используется ротация логов. Когда лог достигает определенного размера или возраста, лог переименовывается и начинается запись в новый файл.
Возможные значения:

  • None — запись логов всегда в один файл.
  • ByTime — запись логов в новый файл по достижению заданного времени. В блоке Period настройте необходимое время.
  • BySize — запись логов в новый файл по достижению заданного размера. По умолчанию размер равен 1ГБ.
  • Hybrid — гибридный вариант записи. Запись логов в файл происходит, либо по достижению заданного размера, либо по достижению определённого времени. Настройка по умолчанию
DirectoryPath Путь конфигурации каталога лог-файлов. В каталоге сформируется папка logs, в которую будут записываться файлы с логами

Двухфакторная аутентификация на ваши ресурсы

Протестируй функциональность бесплатно в течении 2х недель

База знаний