5. Описание конфигурационных файлов Prohibitor
5.1. Состав и содержание дистрибутивного пакета
Состав дистрибутива prohibitor.
/distr/prohibitor– Сервис проверки полномочий:/distr/prohibitor/application.yml– заготовка конфигурационного файла;/distr/prohibitor/config/lockback.xml– файл описания настроек логирования аудита;/distr/prohibitor/liquibase/*– файлы, описывающие все операции, которые необходимо выполнить над базой Сервиса проверки полномочий.
Путь /distr/ указан в качестве примера. Есть возможность использовать любой другой путь, скорректировав соответствующим образом упоминаемые ниже команды.
5.2. Реестр изменений конфигурационного файла
Таблица 5.1 содержит реестр изменений. Фиксация изменений ведется с версии 3.5.4
Версия |
Перечень изменений (относительно предыдущей версии) |
|---|---|
3.5.4 |
Добавлен компонент Prohibitor |
3.8.1 |
|
5.3. Формирование конфигурационного файла prohibitor
5.3.1. Общие настройки конфигурационного файла
В конфигурационном файле application.yml задать:
идентификатор агента (мнемоника ИС);
ОГРН Агента
тип используемого транспорта, параметр use-ca: прогрессивный, RSocket (true) либо традиционный, pulsar (false)
Идентификатор ключа КриптоПро: алиас контейнера КриптоПро, установленного в компоненте notarius (необходимо использовать тот же ключ, что и на Агенте, с которым работает данный сервис проверки полномочий);
Адрес и порт notarius – координаты подключения к сервису криптографии
# Общие настройки агента
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: *** ИДЕНТИФИКАТОР КЛЮЧА КриптоПро ***
# Адрес соединения с notarius, сервером криптографии.
notarius:
target-host: *** АДРЕС NOTARIUS ***
target-port: *** ПОРТ NOTARIUS ***
5.3.2. Настройка подключения к базе данных:
db.host – адрес БД Postgres;
db.port – порт БД Postgres;
db.user - логин БД Postgres;
db.password – пароль к БД Postgres;
db.database - имя БД Postgres;
Переменные db.* указываются в разделе настроек подключения к PostgreSQL:
# параметры подключения к базе и настройки пулла коннектов
db:
host: *** hostname ***
port: *** port ***
user: *** username ***
password: *** password ***
database: *** database name ***
pool:
max-size: 10
Пример раздела конфигурации для настройки Сервиса проверки полномочий для работы в геораспределенной конфигурации (необходимо перечислить все развернутые Ядра с указанием ссылки на pulsar Ядра).
Примечание
Значения параметров подключения к ядру(-ам) (ip адреса и порты) уже прописаны соответствующим образом в поставляемых с сервисом шаблонах конфигурационных файлов, в соответствии с контуром для подключения. В общем случае изменение данных параметров не требуется.
# Настройки подключения ко всем ЦОД с установленным ПО ядра
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 }}
{...}
5.3.3. Настройка подключения к сервису подписания и верификации сообщений
Пример раздела конфигурации:
notarius:
target-host: *** IP АДРЕС СЕРВЕРА NOTARIUS ***
target-port: *** ПОРТ NOTARIUS ***
5.3.4. Настройка параметров, связанных с настройками времени жизни и блокировки пользовательских учетных записей
Пример раздела конфигурации:
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
5.3.5. Настройка передачи информации в аудит гостех
Для передачи информации аудита, используются следующие параметры:
gostech:
audit:
host: *** audit_server_host ***
port: *** audit_server_port ***