Конфигурационные файлы

Файл конфигурации 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.

../_images/authorization.png

Рассмотрим блок 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» – логическое значение. Определяет необходимость запроса групп, к которым принадлежит пользователь.