Описание конфигурационных файлов Prohibitor =========================================== Состав и содержание дистрибутивного пакета ------------------------------------------- Состав дистрибутива prohibitor. - ``/dist/prohibitor`` – Сервис проверки полномочий: - ``/dist/prohibitor/application.yml`` – заготовка конфигурационного файла; - ``/dist/prohibitor/config/lockback.xml`` – файл описания настроек логирования аудита; - ``/dist/prohibitor/liquibase/*`` – файлы, описывающие все операции, которые необходимо выполнить над базой Сервиса проверки полномочий. Путь ``/dist/`` указан в качестве примера. Есть возможность использовать любой другой путь, скорректировав соответствующим образом упоминаемые ниже команды. Реестр изменений конфигурационного файла ------------------------------------------ :numref:`tab_config_prohibitor` содержит реестр изменений. Фиксация изменений ведется с версии 3.5.4 .. _tab_config_prohibitor: .. table:: Реестр изменений конфигурационного файла +--------+-----------------------------------------------------------------------------------+ | Версия | Перечень изменений (относительно предыдущей версии) | +========+===================================================================================+ | 3.5.4 | Добавлен компонент Prohibitor | +--------+-----------------------------------------------------------------------------------+ | 3.8.0 | - удалены параметры подключения к pulsar: | | | | | | - data-center.default-node.pulsar.auth.keycloak-oauth.realm | | | | | | - data-center.default-node.pulsar.auth.keycloak-oauth.grant_type | | | | | | - data-center.default-node.pulsar.auth.keycloak-oauth.client_id | | | | | | - добавлены параметры (:ref:`auth_type_set`) выбора способа аутентификации | | | | | | - data-center.default-node.pulsar.auth.keycloak-oauth.auth-typee | | | | | | - data-center.default-node.pulsar.auth.keycloak-oauth.auth-protocol | | | | | | - добавлен параметр (:ref:`prohibitor_config`) выбора транспорта (pulsar/RSocket) | +--------+-----------------------------------------------------------------------------------+ .. _prohibitor_config: Формирование конфигурационного файла prohibitor ----------------------------------------------- Общие настройки конфигурационного файла ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ В конфигурационном файле ``application.yml`` задать: - *** ИДЕНТИФИКАТОР (МНЕМОНИКА) АГЕНТА *** – мнемоника ИС; - *** ОГРН АГЕНТА *** - ОГРН Агента - тип используемого транспорта, параметр use-ca: прогрессивный, RSocket (true) либо традиционный, pulsar (false) - *** ИДЕНТИФИКАТОР КЛЮЧА CryptoPro *** – алиас контейнера CryptoPro, уста-новленного в компоненте notarius (необходимо использовать тот же ключ, что и на Агенте, с которым работает данный «сервис проверки полномочий); - Адрес и порт notarius – координаты подключения к сервису криптографии .. code-block:: yaml # Общие настройки агента agent: # Идентификатор агента id: *** ИДЕНТИФИКАТОР (МНЕМОНИКА) АГЕНТА *** ogrn: '*** ОГРН АГЕНТА ***' # использовать традиционный транспорт обмена с Ядром (pulsar, значение false) # либо прогрессивный вариант транспорта (rsocket, значение true) use-ca: false # Общие настройки ядра core: mnemonic: core_mnemonic broadcast-tenant: core_broadcast # Настройка Web-сервера и Web-клиентов REST-Api http: port: 8692 keys: alias: *** ИДЕНТИФИКАТОР КЛЮЧА CryptoPro *** # Адрес соединения с notarius, сервером криптографии. notarius: target-host: *** АДРЕС NOTARIUS *** target-port: *** ПОРТ NOTARIUS *** - db.host – адрес БД Postgres; - db.port – порт БД Postgres; - db.user - логин БД Postgres; - db.password – пароль к БД Postgres; - db.database - имя БД Postgres; Переменные ``postgres_*`` указываются в разделе настроек подключения к PostgreSQL: .. code-block:: yaml # параметры подключения к базе и настройки пулла коннектов db: host: *hostname* port: *port* user: *username* password: *password* database: *database name* pool: max-size: 10 Пример раздела конфигурации для настройки Сервиса проверки полномочий для работы в геораспределенной конфигурации (необходимо перечислить все развернутые Ядра с указанием ссылки на pulsar Ядра). .. note:: Значения параметров подключения к ядру(-ам) (ip адреса и порты) уже прописаны соответствующим образом в поставляемых с сервисом шаблонах конфигурационных файлов, в соответствии с контуром для подключения. В общем случае изменение данных парамтеров не требуется. .. code-block:: yaml # Настройки подключения ко всем ЦОД с установленным ПО ядра data-center: ... nodes: - node-id: *node1_name* # Адреса брокеров для подключения по RSocket broker-addresses: - host: *node1_ip1* port: *node1_port1* - host: *node1_ip2* port: *node1_port2* # Настройки подключения к Pulsar pulsar: # Включение Round-Robin балансировки по спику брокеров enable-balancing: true # Максимально допустимое время передачи сообщения одному из брокеров send-timeout: 35s # Длительность периода вывода брокеров из пула, при его недоступности max-dismissal-delay: 5s # Список подключений к брокерам client: serviceUrl: pulsar://*pulsar_kernel1_link* consumer: subscriptionName: ${agent.id}.prohibitor producer: maxPendingMessages: 1000 blockIfQueueFull: false auth: enabled: true service-token: '' keycloak-oauth: auth-server: - url: http://*node1_keycloak* auth-type: SIGNED_JWT auth-protocol: PLAIN_HTTP cached-token-max-expiration-lag: 5s # Пул потоков для обработчиков принимающих сообщения из ядра consumer-pool: # Размер пула size: 4 # Таймаут на блокировку потока, не прерывает поток, пишет предупреждения в лог execution-lock-timeout: 1M # Пул потоков для обработчиков отправляющих сообщения в ядро producer-pool: # Размер пула size: 4 # Таймаут на блокировку потока, не прерывает поток, пишет предупреждения в лог execution-lock-timeout: 1M - node-id: *node2_name* broker-addresses: - host: *node1_ip1* port: *node1_port1* {...} pulsar: {...} client: serviceUrl: pulsar://*pulsar_kernel2_link* {...} keycloak-oauth: auth-server - url: http://{{ node2_keycloak }} {...} Настройка подключения к сервису подписания и верификации сообщений ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Пример раздела конфигурации: .. code-block:: yaml notarius: target-host: *** IP АДРЕС СЕРВЕРА NOTARIUS *** target-port: *** ПОРТ NOTARIUS *** Настройка параметров, связанных с настройками времени жизни и блокировки пользовательских учетных записей ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Пример раздела конфигурации: .. code-block:: yaml user: # Задание повторного логина невозможно в течении конфигурируемого периода login-uniq-period: P3Y # Время бездействия пользователя, после которого, он будет разлогинен inactive-timeout: 5m password: # Максимальное время жизни пароля пользователя max-password-lifetime: 60d # Минимальное время жизни пароля пользователя min-password-lifetime: 1d # Период, в который нужно уведомлять пользователя об истечения срока действия пароля password-expire-notification-period: 5d block: # Количество попыток аутентификации, после превышения которого пользователь временно блокируется max-failed-login-attempts: 3 # Время блокировки при превышении разрешенного числа попыток аутентификации block-period: 60m # Период не активности, после которого пользователь блокируется inactive-period: 45d # Частота актуализации статусов пользователей в БД status-actualize-period: 1m totp: # Размер секрета в байтах, на основе которого генерируется дополнительный код. # Размер секрета и алгоритм хэширования связаны: # - для SHA1 рекомендуется размер не менее 20 байт (160 бит); # - для SHA256 рекомендуется размер не менее 32 байт (256 бит); # - для SHA512 рекомендуется размер не менее 64 байт (512 бит). secretSize: 20 # Алгоритм хэширования. Возможные значения: SHA1, SHA256, SHA512. hashingAlgorithm: SHA1 # Количество цифр дополнительного кода (длина дополнительного кода). digits: 8 # Период актуальности дополнительного кода. period: PT30S Настройка передачи информации в аудит гостех ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для передачи информации аудита, используются следующие параметры: .. code-block:: yaml gostech: audit: host: *audit_server_host* port: *audit_server_port*