Пример файла 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 | Список групп, разделенных запятой, в которые должен входить пользователь для успешной аутентификации | |
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 | Выполнить базовые проверки (сценарий 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 | Проверить доменный пароль в 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>