Пример файла config.json

Ниже приведен пример конфигурационного файла JRS config.json.

{
 
  "InboundInterface": "*:1812",
 
  "OutboundInterface": "*",
 
 
 
 
  "JasServiceUri": "http://192.168.10.55:8221/api/v4.1",
 
  "JasAuthType": "None",
 
  "JasUsername": "",
 
  "JasPassword": "",
 
  "JasTimeout": 50000,
 
 
 
 
  "DefaultUserDomain": "2019x64.test"
 
 
 
 
  "LdapConnections": [{
 
    "DomainName": "FQDN1.loc",
 
    "LdapServerUri": "Ldap://192.168.10.90",
 
    "LdapServerUsername": "fqdn1\\autotest",
 
    "LdapServerPassword": "123456qweRTY",
 
    "LdapType": "ActiveDirectory"
 
    "LdapContainer": "dc=fqdn1,dc=loc"
 
  }],
 
  "LdapAuthorizeGroupMember": [
 
    {
 
      "AccountSystemDomain": "FQDN1.loc",
 
      "Groups": [
 
  "FQDN1.loc\\Administrators"
 
],
 
      "ClassAttribute": "admins"
 
    },
 
    {
 
      "AccountSystemDomain": "FQDN1.loc",
 
      "Groups": [
 
  "FQDN1.loc\\users"
 
],
 
      "ClassAttribute": "users"
 
    }
 
  ], 
 
  "ChallengeResponseRadiusAuth": true,
 
  "SecondFactorAuthFirst": true,
 
  "AllowChangeExpiredPassword": true,
 
 
 
 
  "CheckPasswordAgainstExternalRadiusServer": true,
 
  "ExternalRadiusServer": "192.168.10.90:1812",
 
  "ExternalRadiusServerSharedSecret": "shared-secret",
 
  "ExternalRadiusServerRetryCount": 3,
 
  "ExternalRadiusServerRetryDelay": 1000,
 
  "ExternalRadiusServerTimeout": 50000,
 
 
 
 
  "UserNotFoundAction": "Pass",
 
  "TokensNotFoundAction": "Reject",
 
  "CheckA2faTokenState": true,
 
  "A2faNotActivatedAction": "Reject",
 
  "AuthTypes": "OTP, Messaging, Push",
 
  "AuthTypeSelection": "Auto",
 
  "NotifyPushSuccess": true,
 
 
 
 
  "MessagingAdditionalInfo": "",
 
  "MessagingSystemId": "",
 
  "MessagingRetryDelay": 5000,
 
  "MessagingTtl": 180,
 
 
 
 
  "ReplyMessageCodePage": 65001,
 
  "Culture": "ru",
 
  "Clients": [{
 
    "RadiusClientAddress": "192.168.10.50",
 
    "RadiusClientName": "cisco",
 
    "RadiusClientSharedSecret": "shared-secret"
 
    },
 
    {
 
      "RadiusClientAddress": "192.168.10.1",
 
      "RadiusClientName": "localhost",
 
      "RadiusClientSharedSecret": "shared-secret"
 
    }
 
  ],
 
  "LocalizationCulture": "ru-RU",
 
  "Localization": [
 
  {
 
    "Culture": "ru-RU",
 
    "Select2FAMessage": "Выберите второй фактор: ",
 
    "OtpCodeMessage": "Введите OTP-код",
 
    "SMSCodeMessage": "Введите код из SMS",
 
    "SMSCodeMessageWithAttempts": "Введите код из SMS. Осталось попыток: ",
 
    "ExpiredPasswordMessage": "Срок действия пароля учетной записи истек. Смените пароль или обратитесь к администратору",
 
    "NewPasswordNotMatchMessage": "Введенные пароли не совпадают",
 
    "NewPasswordComplexityMessage": "Пароль не соответствует требованиям сложности. Если Вы не знаете требования к сложности пароля, обратитесь к администратору",
 
    "NewPasswordExpiredMessage": "Пароль пользователя истек. Введите новый пароль",
 
    "ConfirmPasswordMessage": "Подтвердите новый пароль",
 
    "MaxAttemptsExceededMessage": "Превышено максимальное количество попыток смены пароля",
 
    "OtpName": "OTP",
 
    "MessagingName": "Messaging",
 
    "PushName": "Push"
 
  },
 
  {
 
    "Culture": "en-US",
 
    "Select2FAMessage": "Select 2FA method: ",
 
    "OtpCodeMessage": "Enter OTP code",
 
    "SMSCodeMessage": "Enter SMS code",
 
    "SMSCodeMessageWithAttempts": "Enter SMS code. Remaining attempts: ",
 
    "ExpiredPasswordMessage": "The user password has expired. Change your password or contact your administrator",
 
    "NewPasswordNotMatchMessage": "The entered passwords do not match",
 
    "NewPasswordComplexityMessage": "The new password does not match the complexity policy. If you do not know the password complexity requirements, contact your administrator",
 
    "NewPasswordExpiredMessage": "User password has expired. Enter a new password",
 
    "ConfirmPasswordMessage": "Confirm new password",
 
    "MaxAttemptsExceededMessage": "The maximum number of attempts to change the password has been exceeded",
 
    "OtpName": "OTP",
 
    "MessagingName": "Messaging",
 
    "PushName": "Push"
 
  }
 
],
 
  "HealthCheckConfig": {
 
    "Interfaces": "http://*:8323"
 
  },
 
  "ControlServiceWebApiConfig": {
 
    "SecurityType": "Basic",
 
    "Username": "admin",
 
    "Password": "password",
 
    "Addresses": [
 
      "http://localhost:8319"
 
    ]
 
  }
 
}

Описание параметров конфигурационного файла JRS

Ниже приведён перечень настроек JRS.

Табл. 6 – Настройки конфигурационного файла JRS

Настройка

Описание

Допустимые значения

InboundInterface

Сетевой интерфейс для входящих соединений.

Примечание. Интерфейс используется для обработки запросов и ответа на входящие запросы к JRS.

Допускается указывать

·   <IP>:<Port> — конкретный сокет;

·   *:<Port> — все доступные адреса с конкретным портом;

·   * —  все доступные интерфейсы

OutboundInterface

Сетевой интерфейс для исходящих соединений

Примечание. С данного интерфейса JRS отправляет запросы на внешний RADIUS-сервер (см. параметр ExternalRadiusServer, ниже), если включена опция перенаправления (см. параметр CheckPasswordAgainstExternalRadiusServer, ниже).

Тот же формат, что и у параметра InboundInterface

Примечание. Значение порта должно отличаться от порта в параметре InboundInterface .

JasServiceUri

Адрес сервера JAS. В зависимости от реализации сервера JAS (v 3.7.1, v4.1) следует указывать адрес соответствующего сетевого интерфейса AuthenticationService сервера JAS. Подробнее см.

·   Руководство по JAS 4.1 [1]

·   Руководство по JAS 3.7.1 [2]

Строка – URL. Например:

·   Для JAS v3.7.1:

"http://<FQDN-имя сервера JAS>:8008/JASEngine/Default/AuthenticationService/rest"

·   Для JAS v4.1:

"http://192.168.10.55:8221/api/v4.1"

JasAuthType

Тип аутентификации JAS.

Если не указаны имя пользователя и пароль для Windows-аутентификации, будут использованы учетные данные текущего пользователя.

В зависимости от реализации сервера JAS (v 3.7.1, v4.1) и платформы набор допустимых опций аутентификации RADIUS-клиента на сетевом интерфейсе AuthenticationService может меняться.

Подробнее см.

·   Руководство по JAS 4.1 [1]

·   Параметр SecurityType, Руководство по JAS 3.7.1 [2]

При аутентификации в JAS v 3.7.1 и v.4.1 на платформе Windows, допустимо одно из значений:

·   "None"

·   "Basic"

·   "Windows"

Примечания:

1.        Опция Windows включает в себя как Windows-аутентификацию, так и NTLM. Выбор протокола осуществляется автоматически

2.        При интеграции с JAS v 4.1 на платформе Linux, допустимы значения None и Basic

JasUsername

Имя пользователя, под которым JAS Radius Server будет подключаться к серверу JAS.

Строка – имя пользователя

JasPassword

Пароль пользователя, с которым JAS Radius Server будет подключаться к серверу JAS

Строка – пароль пользователя

JasTimeout

Ожидание ответа от сервера JAS (мс).

По умолчанию: 50000

Число

SecurityProtocols

Поддерживаемые протоколы шифрования.

По умолчанию поддерживаются все

Строка – лишние можно удалить

"Tls, Tls11, Tls12"

Culture

Язык локализации сервера JRS (настройка влияет на язык и региональные параметры самого сервера JRS, например логи сторонних библиотек могут отображаться на указанном языке).

По умолчанию "ru"

Строка:

·   "ru" (значение по умолчанию)

·   "en"

LdapConnections

Список (json-массив) настроек подключения к LDAP-серверам


LdapConnections ->

DomainName

Имя домена.

Используется для проверки принадлежности пользователя группе, определённой в LDAP-справочнике, подробнее см. раздел «Настройка режимов аутентификации в JRS», с. 29

Строка.

Например:

"FQDN1.loc"

LdapConnections ->

LdapServerUri

Адрес Ldap-сервера

Строка – URL. Например:

"Ldap://192.168.10.90"

или

"Ldaps://192.168.10.90"

(в случае подключения по защищённому протоколу)

LdapConnections ->

LdapType

Тип LDAP

Строка:

·   "ActiveDiretory"

·   "FreeIPA"

LdapConnections ->

LdapContainer

Точка подключения к LDAP-каталогу в случае, если подключение осуществляется не к корню домена

Строка, например:

"dc=fqdn1,dc=loc"

LdapConnections ->

LdapServerUsername

Имя пользователя для подключения к Ldap-серверу

Строка.

1) Доступные форматы для Active Directory:

а) DN (distinguished name), например:

"CN=Administrator,CN=Users,DC=fqdn1,DC=com"

б) Down-Level Logon Name, например:

"fqdn1\\Administrator"

Примечание. Удвоенный обратный слеш используется в связи с синтаксисом строковых значениях JSON: обратный слеш в значениях строк всегда «экранируется»

в) UPN, например: Administrator@fqdn1.com

2) Допустимый формат для FreeIPA – только DN (distinguished name), например:

"CN=Administrator,CN=Users,DC=fqdn1,DC=com"

LdapConnections ->

LdapServerPassword

Пароль пользователя для подключения к Ldap-серверу

Строка

LdapAuthorizeGroupMember

Список групп для проверки членства

Подробнее см. сценарии проверок в Табл. 7 c.29 и Табл. 8, с. 31.

Примечание. Для возможности проверки принадлежности пользователя группе в AD и FreeIPA необходимо обеспечить наличие у пользователя, от чьего имени запускается сервер JRS соответствующих прав в ОС (по умолчанию данные права предоставлены всем пользователям).

·       В AD это -- List contents (право на перечисление объектов в контейнерах, которых находятся пользователь USER и группа GROUP), а также на права на чтение атрибута memberOf(Read group membership) пользователя USER;

·       Во FreeIPA  это доступ атрибуту memberOf пользователя (Read User Membership), а также чтение Read groups (возможность получения группы из FreeIPA)

Массив json-объектов

LdapAuthorizeGroupMember ->

AccountSystemDomain

Следует указать в каком из  LDAP-каталогов, следует выполнять проверку принадлежности пользователя к группе.

(Выбор следует осуществлять из доменных имен, ранее указанных в параметре LdapConnections -> DomainName, см. выше)

Строка.

Например:

"FQDN1.loc"

LdapAuthorizeGroupMember ->

Groups

Список групп, разделенных запятой, в которые должен входить пользователь для успешной аутентификации

Массив строк, например: ["FQDN.com\\Group1,

FQDN.com\\Group2"]

Примечание. Удвоенный обратный слеш используется в связи с синтаксисом строковых значениях JSON: обратный слеш в значениях строк всегда «экранируется»

LdapAuthorizeGroupMember ->

ClassAttribute

Значение, которое будет установлено в 25 атрибут RADIUS-пакета (RFC 2865,  см. «Полезные web-ресурсы», [1], с. 64. Используется сторонними программами, такими, как Cisco ASA).

Если не задано – значение атрибута не устанавливается.

Строка. Произвольное значение, например:

"users"

SecondFactorAuthFirst

Приоритет аутентификации по второму фактору.

Подробнее сценарии проверок см. в Табл. 7 c.29 и Табл. 8, с. 31.

Примечание. Флаг удобен для предотвращения атаки на доменный пароль. При установке в true проверяться в первую очередь будет второй фактор, что защитит от перебора/блокировки доменного пароля.

Булева константа:

·   true – дополнительный фактор аутентификации (2FA) проверяется в первую очередь;

·   false (значение по умолчанию)

CheckPasswordAgainstExternalRadiusServer

Аутентификация с перенаправлением на внешний RADIUS-сервер (подробнее см. раздел «Настройка режимов аутентификации в JRS», с. 29, а также Табл. 7 c.29 и Табл. 8, с. 31).


Булева константа:

·   true -- проверка значения доменного пароля осуществляется на внешнем RADIUS-сервере

·   false (значение по умолчанию) – проверка значения доменного пароля осуществляется на сервере JAS

ExternalRadiusServer

Адрес подключения к внешнему RADIUS-серверу

Строка в формате IP:Port, например:

"192.168.10.90:1812"

ExternalRadiusServerSharedSecret

Секрет для взаимодействия с внешним RADIUS-сервером

Строка

ExternalRadiusServerRetryCount

Кол-во повторов отправки запросов на внешний RADIUS-сервер.


Число.

Значение по умолчанию: 3

ExternalRadiusServerRetryDelay

Задержка повторов отправки запросов на внешний RADIUS-сервер (мс)

Число.

Значение по умолчанию: 1000

ExternalRadiusServerTimeout

Ожидание ответа от внешнего RADIUS-сервера (мс)

Число.

Значение по умолчанию: 50000

UserNotFoundAction

Действия JAS Radius Server, если указанный пользователь не найден в JAS-сервере.

По умолчанию: “Pass”.

Строка:

·   “Pass” (продолжить обработку запроса, пропустить запрос, значение по умолчанию),

·   “Reject” (отклонить запрос, отказать в аутентификации)

TokensNotFoundAction

Действия JAS Radius Server, если у указанного пользователя нет активных OTP-аутентификаторов.

По умолчанию: “Reject”.

Строка:

·   “Pass” (продолжить обработку запроса, пропустить запрос),

·   “Reject” (отклонить запрос, отказать в аутентификации, значение по умолчанию)

CheckA2faTokenState

Проверять статус активации токенов в A2FA

Булева константа:

·   true (значение по умолчанию)

·   false

A2faNotActivatedAction

Действия RadiusProxy, если у указанного пользователя нет ни одного активированного A2FA-токена.

По умолчанию: “Pass”

Строка:

·   “Pass” (продолжить обработку запроса, пропустить запрос, значение по умолчанию),

·   “Reject” (отклонить запрос, отказать в аутентификации)

DefaultUserDomain

Значение по умолчанию имени домена пользователя. Данное значение добавляется к имени пользователя при аутентификации, например, в web-интерфейсе, если пользователь указал свое имя без домена.

Примечания:

1.        Параметр применим к разным ресурсным системам, в частности к доменным именам Active Directory (AD), RemoteAD и JDS.

2.        В случае если пользователь при аутентификации указал свое полное имя (включая домен) в любом формате (FQDN, NetBIOS, UPN см. ниже примеры), то значение, указанное в параметре DefaultUserDomain сервером JRS игнорируется.

Примеры форматов указания полного имени пользователя (с именем домена):

·          FQDN: jasdomain.aladdin-rd.local\user

·          NetBIOS: jasdomain\user

·          UPN: user@jasdomain.aladdin-rd.local

3.        В случае указания пустого значения DefaultUserDomain (по умолчанию) в JAS включается интеллектуальный механизм восстановления недостающего имени (по признаку регистрации OTP-аутентификаторов пользователя в том или ином домене). В случае если пользователь имеет OTP-аутентификаторы в разных доменах, выдается соответствующее сообщение об ошибке с рекомендацией указать полное имя явным образом.

Значение по умолчанию: пустая строка

Строка – имя домена

ChallengeResponseRadiusAuth

Режим работы RADIUS-сервера. Допустимые значения:

·   true – двухшаговый режим аутентификации (перед вводом дополнительного параметра аутентификации, например OTP, на первом шаге процедуры вводится значение доменного пароля пользователя);

·   false -- одношаговый режим аутентификации (значение дополнительного параметра аутентификации, например OTP, вводится за один шаг).

Подробнее сценарии проверок см. в разделе «Настройка режимов аутентификации в JRS», с. 29.

Булева константа:

·   true

·   false (значение по умолчанию)


AuthTypes

Поддерживаемые типы аутентификации и их приоритет.

Важно! Параметр использует три типа аутентификации (Messaging, OTP и Push) только при включении двухшаговой процедуры аутентификации (см. флаг "ChallengeResponseRadiusAuth": true, выше), в противном случае может быть использован либо метод OTP, либо метод Push, подробнее см. в разделе «Одношаговая процедура аутентификации» с. 29.

Возможные методы аутентификации:

·   "Messaging" – аутентификация по Messaging-токену;

·   "OTP"—аутентификация по OTP-токенам;

·   "Push"

Методы указываются через запятую в порядке снижения приоритета.

Значение по умолчанию: "Messaging, OTP, Push"

Строка.

Значение по умолчанию:

"Messaging, OTP, Push"

AuthTypeSelection

Режим выбора типа аутентификации.

Важно! Параметр используется только при включении двухшаговой процедуры аутентификации (см. флаг "ChallengeResponseRadiusAuth": true, выше)

Допустимые значения:

·   "Auto" – автоматический выбор (в соответствии с приоритетами, определенными в параметре AuthTypes, см. выше);

·   "Manual"– ручной выбор (выбор типа аутентификации производится пользователем в реализованном пользовательском интерфейсе).

Значение по умолчанию: "Auto"

Строка.

·   “Auto”

·   “Manual”

NotifyPushSuccess

Отправлять в JAS уведомление об успешной PUSH-аутентификации.

Булева константа:

·   true (значение по умолчанию)

·   false

MessagingAdditionalInfo

Текст, который будет отправляться в SMS пользователю вместе с кодом аутентификации для Messaging. Например "Код аутентификации для входа в систему XYZ"

Важно! Параметр используется только при включении двухшаговой процедуры аутентификации (см. флаг  "ChallengeResponseRadiusAuth": true, выше)

Допустимые значения: символьная строка

Значение по умолчанию: пустая строка.

Строка – текст сообщения

MessagingSystemId

Идентификатор внешней системы, в которой будут искаться пользователи при аутентификации по Messaging.

Важно! Параметр используется только при включении двухшаговой процедуры аутентификации (см. флаг  "ChallengeResponseRadiusAuth": true, выше)

Примечание. Идентификатор должен совпадать с идентификатором в поле Внешняя система на вкладке Параметры выпуска соответствующего профиля выпуска Messaging-токенов (см. руководство по функциями управления JMS [4], [5], раздел «Настройка профиля выпуска Messaging-токенов» )

Допустимые значения: символьная строка

Значение по умолчанию: пустая строка.

Строка – внешняя система

MessagingRetryDelay

Таймаут между попытками аутентификации посредством Messaging-токена (в миллисекундах), например 5000.

Важно! Параметр используется только при включении двухшаговой процедуры аутентификации (см. флаг "ChallengeResponseRadiusAuth": true, выше)

Параметр применяется непосредственно к серверу JAS, который на его основе принимает решение о возможности приёма попытки аутентификации. При попытке аутентификации, произошедшей до истечения указанного таймаута, возникает ошибка аутентификации.

По умолчанию (т.е. если параметр не задан в конфигурационном файле JRS) сервер JAS в процессе аутентификации будет использовать либо собственное значение по умолчанию (5000 мс), либо значение, заданное в свойствах Messaging-токена (см. параметр Задержка генерации OTP (мс) или в профиле выпуска Messaging-токенов; см. руководство по функциями управления JMS [4], [5]).

Число

MessagingTtl

Время жизни для одноразового пароля (в секундах, напр. 180), в течение которого ответ пользователя будет актуальным.

Важно! Параметр используется только при включении двухшаговой процедуры аутентификации (см. флаг "ChallengeResponseRadiusAuth": true, выше).

Если параметр не задан (пустое значение), то сервер JAS в процессе аутентификации будет использовать значение, заданное в свойствах Messaging-токена (см. параметр Время жизни OTP (с), в свойствах Messaging-токена или профиля выпуска Messaging-токенов; руководство по функциями управления JMS [4], [5]).

Значение по умолчанию: пустая значение (не задано)

Число

AllowChangeExpiredPassword

Настройка возможности смены пароля пользователя через JAS при истечении срока действия пароля в домене.

Допустимые значения:

·   false – смена пароля запрещена;

·   true – смена пароля разрешена;

Значение по умолчанию: false

Важно! Параметр используется только при включении двухшаговой процедуры аутентификации (см. флаг "ChallengeResponseRadiusAuth": true, выше).

Примечание.  Если опция смены пароля пользователя через JRS разрешена, то максимальная продолжительность сессии сброса пароля – от момента ввода текущего пароля до подтверждения нового пароля – по умолчанию составляет 300 секунд. При необходимости параметр настраивается в серверном конфигурационном файле JAS:

·   для JAS v3.7 на платформе Windows файл:

c:\Program Files\Aladdin\JaCarta Authentication Server\Aladdin.JAS.Engine.exe.config

·   для JAS v4.1 на платформе Linux файл:

/opt/jas-engine/Aladdin.JAS.Engine.dll.config 

Значение параметра задается в секундах.

<add key="ChangeDomainPasswordTimeout" value="300"/>

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

<add key="MaxPasswordInputAttempts" value="5"/>

Булева константа:

·   true

·   false  (по умолчанию)


ReplyMessageCodePage

Важно! Параметр используется только при включении двухшаговой процедуры аутентификации (см. флаг "ChallengeResponseRadiusAuth": true, выше).

Кодировка текстовых сообщений (ReplyMessage), используемых в пользовательском диалоге при двухшаговой процедуре аутентификации.

В качестве обозначения кодировок допускается использовать только их числовые обозначения, например:

·   65001 – кодировка UTF8;

·   1251 – Windows-1251;

Значение по умолчанию: 65001

Примечание. Тип кодировки влияет на отображение строки запроса на информацию в диалоговых окнах интегрируемых продуктов. Подробнее см.

Руководство по JAS [1], [2], раздел «Выбор корректной кодировки диалогового запроса ReplyMessage при интеграции JAS со сторонними продуктами».

Число.

Например:

65001 (значение по умолчанию, т.е. кодировка UTF8).

Clients

Настройки RADIUS-клиентов (JSON-массив)

JSON-массив

Clients ->

RadiusClientAddress

IP-адрес радиус-клиента

Строка.

Например:

"192.168.10.50"

Clients ->

RadiusClientName

Имя радиус-клиента

Строка.

Например:

"cisco"

Clients ->

RadiusClientSharedSecret

Значение «общего секрета» (Shared secret) RADIUS-клиента c JRS

Строка.

Например:

"shared-secret"

Clients ->

Config

Секция (JSON-объект) переопределения настроек для отдельного RADIUS-клиента.

Подробнее см. раздел «      Переопределение настроек для RADIUS-клиентов», с. 28

Вложенный JSON-объект (опциональный)

LocalizationCulture

Выбор языка (кода языка), используемого для ответов Radius-клиентам (определяет секцию языка текстовок, см. ниже Localization -> Culture )

Строка.

Например: "ru-RU" или "en-US"

Localization

Массив вариантов кастомизации текстовок.

Примечание. Язык текстовок (русский/английский) определяется параметром Culture (см. выше).

Массив JSON-объектов

Localization -> Culture

Код языка для текущей элемента JSON-массива Localization

Строка.

Например: "ru-RU" или "en-US"

Localization ->

Select2FAMessage

Сообщение выбора второго фактора

Строка

Например:

"Выберите второй фактор: "

Localization ->

OtpCodeMessage

Сообщение ввода OTP

Строка

Например:

"Введите OTP-код"

Localization ->

SMSCodeMessage

Сообщение ввода кода из СМС

Строка

Например:

"Введите код из SMS"

Localization ->

SMSCodeMessageWithAttempts

Сообщение ввода кода из СМС с количеством оставшихся попыток

Строка

Например:

"Введите код из SMS. Осталось попыток: "

Localization ->

ExpiredPasswordMessage

Сообщение о истекшем сроке действия пароля

Строка

Например:

"Срок действия пароля учетной записи истек. Смените пароль или обратитесь к администратору"

Localization ->

NewPasswordNotMatchMessage

Сообщение о несовпадении нового пароля и подтверждения

Строка

Например:

"Введенные пароли не совпадают"

Localization ->

NewPasswordComplexityMessage

Сообщение о несоответствии сложности пароля политике

Строка

Например:

"Пароль не соответствует требованиям сложности. Если Вы не знаете требования к сложности пароля, обратитесь к администратору"

Localization ->

NewPasswordExpiredMessage

Сообщение с запросом нового пароля

Строка

Например:

"Пароль пользователя истек. Введите новый пароль"

Localization ->

ConfirmPasswordMessage

Сообщение с запросом подтверждения нового пароля

Строка

Например:

"Подтвердите новый пароль"

Localization ->

MaxAttemptsExceededMessage

Сообщение о превышении количества неправильных попыток ввода пароля

Строка

Например:

"Превышено максимальное количество попыток смены пароля"

Localization ->

OtpName

Название для OTP метода аутентификации

Строка

Например:

"OTP"

Localization ->

MessagingName

Название для Messaging метода аутентификации

Строка

Например:

"Messaging"

Localization ->

PushName

Название для Push метода аутентификации

Строка

Например:

"Push"

HealthCheckConfig

Секция (JSON-объект) настройки интерфейсов с которых будет отдаваться статус JRS

JSON-объект

HealthCheckConfig ->

Interfaces

Сетевой интерфейс для проверки статуса JRS

Конкретный IP:Port или все доступные интерфейсы. Например:

"http://*:8323"

ControlServiceWebApiConfig

Секция настроек интерфейса управления сервером (например, для подключения web-консоли сервера JRS).

JSON-объект

ControlServiceWebApiConfig -> SecurityType

Тип аутентификации

Строка – “None” или “Basic”

По умолчанию “Basic”

ControlServiceWebApiConfig -> Username

Имя пользователя для доступа к API, исп. при типе аутентификации “Basic”

Строка.

По умолчанию “admin”

ControlServiceWebApiConfig -> Password

Пароль пользователя для доступа к API, исп. при типе аутентификации “Basic”

(Порядок установки пароля см. в разделе «Установка пользователя и пароля для аутентификации в Web-консоли», с. 36)

Строка

По умолчанию “password”

ControlServiceWebApiConfig -> Addresses

Список интерфейсов для доступа к API

Массив строк в формате «IP:Port»

Значение по умолчанию: “localhost:8319”

ControlServiceWebApiConfig -> Thumbprint

Отпечаток сертификата, используемый при SSL

Строка

Переопределение настроек для RADIUS-клиентов

Для того чтобы переопределить настройки для отдельного (отдельных) RADIUS-клиента (ов), в соответствующем данному клиенту элементе JSON-массива "Clients" необходимо добавить JSON-объект "Config", содержащий переопределяемые настройки. Список настроек, доступных для переопределения:

  • JasServiceUri
  • JasAuthType
  • JasUsername
  • JasPassword
  • JasTimeout
  • LdapAuthorizeGroupMember (требует переопределения также вложенных параметров – Groups и ClassAttribute; второй, если предусмотрен)
  • SetClassAttribute
  • ClassAttributeValue
  • SecondFactorAuthFirst
  • CheckPasswordAgainstExternalRadiusServer
  • ExternalRadiusServer
  • ExternalRadiusServerSharedSecret
  • ExternalRadiusServerRetryCount
  • ExternalRadiusServerRetryDelay
  • ExternalRadiusServerTimeout
  • UserNotFoundAction
  • TokensNotFoundAction
  • DefaultUserDomain
  • ChallengeResponseRadiusAuth
  • AuthTypes
  • AuthTypeSelection
  • MessagingAdditionalInfo
  • MessagingSystemId
  • MessagingRetryDelay
  • MessagingTtl
  • AllowChangeExpiredPassword
  • ReplyMessageCodePage
  • NotifyPushSuccess
  • LocalizationCulture

Пример переопределения настройки SecondFactorAuthFirst для клиента "cisco":

{
 
"InboundInterface": "…",
 
...
 
"Clients": [{
 
    "RadiusClientAddress": "192.168.10.50",
 
    "RadiusClientName": "cisco",
 
    "RadiusClientSharedSecret": "shared-secret",
 
    "Config": {
 
           "SecondFactorAuthFirst": true
 
        }
 
    },
 
    {
 
      "RadiusClientAddress": "192.168.10.1",
 
      "RadiusClientName": "localhost",
 
      "RadiusClientSharedSecret": "shared-secret"
 
    }
 
  ]
 
...
 
}

Настройка режимов аутентификации в JRS

Одношаговая процедура аутентификации

Одношаговая процедура аутентификации в JRS устанавливается значением параметра конфигурационного файла "ChallengeResponseRadiusAuth": false (см. Табл. 6, с. 16).

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

В зависимости от настройки параметра AuthTypes (OTP       или Push) проверка выполняется следующим образом:

  • Приоритет у "OTP" – с помощью OTP-токена выполняется проверка второго фактора так, как он определен параметром «Режим аутентификации» соответствующего профиля выпуска данного токена. (Режим аутентификации может включать в себя как просто значение OTP-кода, так и его различные сочетания с доменным паролем и PIN-кодом, подробнее см. руководство по функциями управления JMS [4], [5] )
  • Приоритет у "Push" – в процессе аутентификации пользователь вводит логин и доменный пароль, после чего подтверждает Push-аутентификацию в мобильном приложении.

Примечание. Messaging-токены (см. руководство по функциями управления JMS [4], [5]) не могут использоваться в сценарии одношаговой процедура аутентификации, поскольку требуют предварительного шага отправки логина пользователя, и если значение "Messaging" будет перечислено в параметре AuthTypes, то будет оно будет пропущено.

При установке значения параметра LdapAuthorizeGroupMember в одношаговой процедуре аутентификации будет выполнена также проверка принадлежности пользователя к группе (подробнее см. Табл. 7, ниже).

Табл. 7 – Сценарии (последовательности проверок) при одношаговой процедуре ("ChallengeResponseRadiusAuth": false)


п/п

SecondFactorAuthFirst

CheckPasswordAgainstExternalRadiusServer

LdapAuthorizeGroupMember

Сценарий

1

false

false

Пусто

·   Для "AuthTypes": "OTP"—проверить OTP (или его комбинацию с паролем и PIN ) в JAS.

·   Для "AuthTypes": "Push" – проверить доменный пароль в JAS, а затем выполнить подтверждение Push

2

false

false

Fqdn1.com\Admins

Выполнить базовые проверки (сценарий 1), а затем проверить принадлежность пользователя к группе Fqdn1.com\Admins

3

false

false

Fqdn1.com\Admins,Fqdn2.net\users

Выполнить базовые проверки (сценарий 1), а затем проверить принадлежность пользователя к группе Fqdn1.com\Admins ИЛИ группе Fqdn2.net\users

4

false

true

Пусто

·   Для "AuthTypes": "OTP"—В поле аутентификационных данных вводится только доменный пароль, проверка которого выполняется на внешнем RADIUS-сервере. (Значения второго фактора не вводятся и в процессе аутентификации пользователя не используются).

·   Для "AuthTypes": "Push" –Выполнить сценарий 1, но с проверкой пароля на внешнем RADIUS-сервере)

5

false

true

Fqdn1.com\Admins

Выполнить сценарий 4, а затем проверить принадлежность пользователя к группе Fqdn1.com\Admins

6

true

false

Пусто

·   Для "AuthTypes": "OTP"—  то же, что при сценарии 1.

·   Для "AuthTypes": "Push"— выполнить подтверждение Push, а затем проверить доменный пароль в JAS

7

true

true

Пусто

·   Для "AuthTypes": "OTP" – то же, что при сценарии 4.

·   Для "AuthTypes": "Push" – выполнить подтверждение Push, а затем проверить доменный пароль во внешнем RADIUS-сервере

8

true

true

Fqdn1.com\Admins

Выполнить сценарий 7, а затем проверить принадлежность пользователя к группе Fqdn1.com\Admins

Двухшаговая процедура аутентификации

Двухшаговая процедура аутентификации включает в себя последовательную проверку доменного пароля и второго фактора аутентификации. Данный сценарий определяется флагом "ChallengeResponseRadiusAuth": true (см. Табл. 6, с. 16).

Предусматриваются ситуации, когда у пользователя может быть одновременно установлено несколько типов токенов для генерации одноразового пароля (включая OTP-, Messaging-, PUSH-токены), этот сценарий предусматривает дополнительный этап, связанный с выбором типа токена (типа второго фактора аутентификации), который может осуществляться как с участием пользователя, так и автоматически (см. параметр AuthTypeSelection)

Кроме того, на ход аутентификации влияют другие настройки конфигурационного файла (Табл. 6, с. 16), а именно следующие параметры:

  • проверка доменных имени пользователя и пароля в JAS или в стороннем RADIUS-сервере – CheckPasswordAgainstExternalRadiusServer (false – проверка осуществляется в JAS, true – проверка осуществляется на внешнем RADIUS-сервере, настройки подключения к которому указаны в параметрах, начинающихся с ExternalRadiusServer…);
  • проверка второго фактора (2FA) в первую очередь – SecondFactorAuthFirst (true – «второй фактор первым»);
  • возможность смены истекшего пароля – AllowChangeExpiredPassword (true – разрешить смену пароля, т.е. в процессе аутентификации запускается дополнительная процедура смены устаревшего пароля);
  • проверка принадлежности пользователя к группе, определенной в секции (JSON-массиве) LdapAuthorizeGroupMember (для возможности проверки в секции LdapConnections должны быть определены настройки подключения к соответствующему LDAP-каталогу, значение параметра DomainName которого совпадает с доменом в имени группы) ;
  • установка способа выбора второго фактора аутентификации – ручного (по инициативе пользователя) или автоматического – AuthTypeSelection (Auto – автоматический, Manual – ручной);
  • установка, при необходимости, значение параметра ClassAttribute (подробнее в Табл. 6, с. 16)).

Подробнее настройка сценариев (последовательностей аутентификационных проверок) описана в Табл. 8, ниже.

Табл. 8 – Сценарии (последовательности проверок) при двухшаговой процедуре ("ChallengeResponseRadiusAuth": true)


п/п

SecondFactorAuthFirst

CheckPasswordAgainstExternalRadiusServer

LdapAuthorizeGroupMember

Сценарий

1

false

false

Пусто

Проверить доменный пароль в JAS -> Проверить OTP

2

false

false

Fqdn1.com\Admins

Проверить доменный пароль в JAS -> Проверить OTP -> Проверить принадлежность пользователя к группе Fqdn1.com\Admins

3

false

false

Fqdn1.com\Admins,Fqdn2.net\users

Проверить доменный пароль в JAS -> Проверить OTP -> Проверить принадлежность пользователя к группе Fqdn1.com\Admins ИЛИ группе Fqdn2.net\users

4

false

true

Пусто

Проверить доменный пароль в RADIUS-сервере -> Проверить OTP

5

false

true

Fqdn1.com\Admins

Проверить доменный пароль в RADIUS-сервере -> Проверить OTP -> Проверить принадлежность пользователя к группе Fqdn1.com\Admins

6

true

false

Пусто

Проверить OTP -> Проверить доменный пароль в JAS

7

true

true

Пусто

Проверить OTP -> Проверить доменный пароль в RADIUS-сервере

8

true

true

Fqdn1.com\Admins

Проверить OTP -> Проверить доменный пароль в RADIUS-сервере -> Проверить принадлежность пользователя к группе Fqdn1.com\Admins

Проверка доступности JRS (healthy-статус)

Настройка Http API для проверки healthy-статуса сервера JRS (например для балансировщиков нагрузки в кластере Corosync) осуществляется с помощью параметра "HealthCheckConfig" конфигурационного файла, например:

 
"HealthCheckConfig": {
 
    "Interfaces": "http://*:8323”
 
}

При приведенном в этом примере значении настройки можно посмотреть статус по адресу:

http://localhost:8323/healthz

В случае штатной работы возвращается страница со строкой статуса (например «Healthy») и кодом состояния HTTP «200».

Рис. 4 – Страница отклика от исправно функционирующего сервера JRS

Сервис возвращает состояние JRS и его зависимостей: подключение к JAS, LDAP-каталогам, стороннему RADIUS-серверу. Состояние каждого из компонентов может быть одним из трех: Healthy, Degraded, Unhealthy. Если какой-то компонент находится в состоянии ошибки или ответ от него не пришел, то в этом случае у него будет установлен статус Unhealthy. Если сервис ответил, но время ответа превысило таймаут, данный сервис получает статус Degraded. В случае исправной работы– Healthy. Общий статус устанавливается следующим образом: если хотя бы один из компонентов вернул статус Unhealthy, то общий статус будет Unhealthy; если один из компонентов вернул статус Degraded, а остальные находятся в состоянии Healthy, то общий статус будет Degraded. Общий статус Healthy выставляется в случае, если все компоненты вернули Healthy.

Настройка параметров ведения журнала событий в JRS

Настройки параметров журналирования находятся в файле Aladdin.JasRadiusServer.log4net.

Сервер JRS позволяет записывать в журнал событий сообщения следующих уровней:

  • OFF –ведение журнала событий отключено;
  • FATAL – неустранимая ошибка;
  • ERROR – ошибка;
  • WARN – предупреждение;
  • INFO – информация;
  • DEBUG – отладка;
  • ALL – показывать все события.

Примечание. Каждый последующий уровень включает все предыдущие (кроме OFF). Например, если выставлено значение INFO, то будут отображаться сообщения уровней: INFO, WARN, ERROR, FATAL.

Для изменения уровня журналирования необходимо указать в теге level одно из указанных выше значений.

Ниже приведен пример конфигурационного файла журналирования:

<?xml version="1.0" encoding="utf-8"?>
 
<log4net>
 
    <appender name="JasRadiusServer" type="log4net.Appender.RollingFileAppender">
 
        <file value="/var/log/aladdin/jas-radius-server/Engine.log"/>
 
        <appendToFile value="true"/>
 
        <encoding value="utf-8"/>
 
        <maxSizeRollBackups value="10"/>
 
        <maximumFileSize value="10MB"/>
 
        <rollingStyle value="Size"/>
 
        <datePattern value="yyyyMMdd"/>
 
        <layout type="log4net.Layout.PatternLayout">
 
            <conversionPattern value="%date [%property{ProcessId}] [%thread] %-5level %logger - %message%newline"/>
 
        </layout>
 
    </appender>
 
    <appender name="Console" type="log4net.Appender.ConsoleAppender">
 
        <layout type="log4net.Layout.PatternLayout">
 
            <conversionPattern value="%date [%property{ProcessId}] [%thread] %-5level %logger - %message%newline"/>
 
        </layout>
 
    </appender>
 
    <root>
 
        <level value="ALL"/>
 
        <appender-ref ref="JasRadiusServer"/>
 
        <appender-ref ref="Console" />
 
    </root>
 
    
 
</log4net>