Конфигурация файлов

Файл конфигурации config.json

Для работы сервера приложений PGHS необходимо, чтобы в директории сервера приложений присутствовал файл конфигурации config.json. Файл конфигурации содержит 3 раздела:

Описатель «app», где можно определить базовые настройки сервера:

{
    "app": {
    "port": "8888"
},

«port» - строка. Определяет номер сетевого порта, на котором будет запущен сервер (по умолчанию - 8888)

Описатель «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

Сервер приложений PGHS поддерживает аутентификацию и авторизацию с использованием следующих схем:

  • Microsoft LDAP

  • Microsoft Kerberos SSO

  • LDAP

  • Kerberos SSO

  • Open ID Connect

При разработке приложения в конструкторе XRAD разработчик определяет возможные схемы аутентификации посредством указания имени схемы и ее типа. При старте сервер приложений PGHS загружает схемы из файла auth_config.json и сопоставляет их по имени и типу с параметрами в БД XRAD.

Файл auth_config.json содержит массив описателей схем аутентификации следующего формата:

[
    {
        "name": "",
        "type": "",
        "options": {}
    }
]
  • «name» - строка. Имя схемы аутентификации.

  • «type» – строка. Тип схемы аутентификации.

Поддерживаемые значения:

  • ldap

  • kerberos_sso

  • microsoft_ldap

  • microsoft_kerberos_sso

  • oidc

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