Конфигурационные файлы
Файл конфигурации config.json
Для работы XRAD необходимо, чтобы в каталоге с исполняемым файлом присутствовал файл конфигурации config.json.
Файл конфигурации содержит 3 раздела: Описатель «app», где можно определить базовые настройки сервера:
{
"app": {
"port": "8889"
},
«port» - строка. Определяет номер сетевого порта, на котором будет запущен сервер (по умолчанию - 8889)
Описатель «XRAD», где определяются настройки для работы с БД XRAD:
«login» – строка. Имя пользователя для подключения к базе данных XRAD.
«password» – строка. Пароль пользователя для подключения к базе данных XRAD.
«host» – строка. IP-адрес сервера базы данных XRAD.
«port» - число. Номер порта, на котором работает сервер базы данных XRAD.
«dbName» – строка. Имя базы данных, к которой требуется подключиться XRAD.
«minCons» – число. Минимальное количество одновременных соединений с базой данных.
«maxCons» - число. Максимальное количество одновременных соединений с базой данных.
описатель runtimeOptions содержит локальные настройки:
«LC_NUMERIC» – строка. Локальные настройки числового формата, используемого для работы с базой данных.
Описатель «datasources» определяет массив источников данных, используемых сервером приложений. Блок описания источника данных содержит тот же набор полей, что и описание БД XRAD и дополнительное поле:
«name» - строка. Имя источника данных.
Например, в следующем блоке определяется два источника данных с именами DEFAULT_APP и DEFAULT_APP_TEST
"datasources": [
{
"login": "app_user",
"password": "app_user",
"host": "10.100.117.219",
"name":"DEFAULT_APP",
"port": 5432,
"minCons":1,
"maxCons":15,
"dbName":"pghs",
"runtimeOptions":{
"LC_NUMERIC":"ru_RU.UTF-8"
}
},
{
"login": "app_user",
"password": "app_user",
"host": "10.100.117.219",
"name":"DEFAULT_APP_TEST",
"port": 5432,
"minCons":1,
"maxCons":15,
"dbName":"pghs",
"runtimeOptions":{
"LC_NUMERIC":"ru_RU.UTF-8"
}
}
]
Файл конфигурации схем аутентификации auth_config.json
XRAD поддерживает аутентификацию и авторизацию с использованием следующих схем:
Microsoft LDAP,
Microsoft Kerberos SSO
LDAP
Kerberos SSO
Open ID Connect
При старте сервер разработки XRAD загружает схемы из файла auth_config.json и использует их при аутентификацииавторизации разработчиков.
Файл auth_config.json содержит массив описателей схем аутентификации следующего формата:
[
{
"name": "",
"label": "",
"type": "",
"enabled": ,
"order": ,
"options": {}
}
«name» - строка. Имя схемы аутентификации.
«label» - строка. Отображаемое на кнопке наименование схемы аутентификации.
«type» – строка. Тип схемы аутентификации.
Поддерживаемые значения:
ldap
kerberos_sso
microsoft_ldap
microsoft_kerberos_sso
oidc
«enabled» – логическое значение. Данный флаг определяет доступность схемы аутентификации для использования в приложении.
«order» – число. Порядковый номер в общем списке схем при отображении на странице аутентификации.
«options» – блок параметров схемы, который зависит от типа схемы.
Загруженные из конфигурационного файла схемы будут использоваться на странице авторизации XRAD в соответствии с флагом enabled и порядковым номером order.

Рассмотрим блок options для различных схем аутентификации.
LDAP, MICROSOFT_LDAP
Для типа схемы ldap и microsoft_ldap блок «options» описывает параметры подключения к LDAP-серверу, которые используются для аутентификации и получения информации о пользователях.
«host» – строка. IP-адрес LDAP-сервера.
«port» – число. Порт, используемый для связи с LDAP-сервером.
«base» – строка. Определяет базовую точку входа в LDAP-каталог.
«encryption» – строка. Определяет тип шифрования, используемого для связи с LDAP-сервером. Поддерживаемые значения:
start_tls – устанавливает защищенное TLS-соединение после начальной аутентификации по незашифрованному каналу. Обычно используется на порту 389.
simple_tls – устанавливает полностью зашифрованное TLS-соединение с самого начала. Обычно используется на порту 636.
plain – не использует шифрование и работает по незащищенному каналу. Обычно используется на порту 389.
«bind_dn» – строка. Distinguished Name (DN) пользователя, используемого для аутентификации на LDAP-сервере.
«password» – строка. Пароль, связанный с указанным bind_dn.
«request_user_groups» – логическое значение. Определяет необходимость запроса групп, к которым принадлежит пользователь.
Например:
{
"name": "User Auth LDAP",
"type": "ldap",
"options": {
"host": "10.100.117.229",
"port": 389,
"base": "DC=ald,DC=dom",
"encryption": "start_tls",
"bind_dn": "uid=ldap,cn=users,cn=accounts,dc=ald,dc=dom",
"password": "password",
"request_user_groups": true
}
}
KERBEROS_SSO, MICROSOFT_KERBEROS_SSO
Для типа схемы kerberos_sso и microsoft_kerberos_sso блок «options» описывает параметры подключения к LDAP-серверу, которые используются для аутентификации и получения информации о пользователях.
«keytab» – строка. Закодированное в BASE64 содержимое keytab файла сгенерированного для сквозной доменной аутентификации.
«request_user_groups» – логическое значение. Определяет необходимость запроса групп, к которым принадлежит пользователь.
Например:
{
"name": "User Auth Kerberos SSO",
"type": "kerberos_sso",
"options": {
"keytab": "BQIAAABVAAIAB0FMRC5ET00ABEhUVFAAEXBnaHM0LWRldi5hbG",
"request_user_groups": true
}
},
OIDC
Для типа схемы oidc (Open Id Connect) блок «options» описывает конфигурацию аутентификации и авторизации пользователей с использованием OpenID Connect (OIDC).
«scope»- строка. Список запрашиваемых областей, к которым требуется доступ при аутентификации.
«issuer»- строка. URL-адрес сервера аутентификации (Issuer).
«uid_field» - строка. Определяет поле, содержащее уникальный идентификатор пользователя (UID).
«pkce»- логическое значение. Флаг, указывающий на необходимость использования Proof Key for Code Exchange (PKCE) для повышения безопасности.
«client_options» - описатель блока параметров клиента, использующего OIDC-аутентификацию.
«id»- строка. Идентификатор клиента(Client ID).
«secret» - строка. Секретный ключ клиента(Client Secret).
«redirect_uri»- строка. URL-адрес, на который будет перенаправлен пользователь после успешной аутентификации.
«request_user_groups» – логическое значение. Определяет необходимость запроса групп, к которым принадлежит пользователь.