Описание конфигурационных файлов Prohibitor

Состав и содержание дистрибутивного пакета

Состав дистрибутива prohibitor.

  • /distr/prohibitor – Сервис проверки полномочий:

    • /distr/prohibitor/application.yml – заготовка конфигурационного файла;

    • /distr/prohibitor/config/lockback.xml – файл описания настроек логирования аудита;

    • /distr/prohibitor/liquibase/* – файлы, описывающие все операции, которые необходимо выполнить над базой Сервиса проверки полномочий.

Путь /distr/ указан в качестве примера. Есть возможность использовать любой другой путь, скорректировав соответствующим образом упоминаемые ниже команды.

Реестр изменений конфигурационного файла

tab_config_prohibitor содержит реестр изменений. Фиксация изменений ведется с версии 3.5.4

Реестр изменений конфигурационного файла

Версия

Перечень изменений (относительно предыдущей версии)

3.5.4

Добавлен компонент Prohibitor

3.8.1

  • удалены параметры подключения к 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

  • добавлены параметры (Раздел 3.3.13) выбора способа аутентификации:

    • data-center.default-node.pulsar.auth.keycloak-oauth.auth-typee

    • data-center.default-node.pulsar.auth.keycloak-oauth.auth-protocol

  • добавлен параметр (prohibitor_config) выбора транспорта (pulsar/RSocket)

3.11.2

Изменений нет

Формирование конфигурационного файла prohibitor

Общие настройки конфигурационного файла

В конфигурационном файле application.yml задать:

  • идентификатор агента (мнемоника ИС);

  • ОГРН Агента

  • тип используемого транспорта, параметр use-ca: прогрессивный, RSocket (true) либо традиционный, pulsar (false)

  • Идентификатор ключа CryptoPro: алиас контейнера CryptoPro, установленного в компоненте 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: *** ИДЕНТИФИКАТОР КЛЮЧА CryptoPro ***

# Адрес соединения с notarius, сервером криптографии.
notarius:
  target-host: *** АДРЕС NOTARIUS ***
  target-port: *** ПОРТ NOTARIUS ***

Настройка подключения к базе данных:

  • 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 }}
      {...}

Настройка подключения к сервису подписания и верификации сообщений

Пример раздела конфигурации:

notarius:
target-host: *** IP АДРЕС СЕРВЕРА  NOTARIUS ***
target-port: *** ПОРТ NOTARIUS ***

Настройка параметров, связанных с настройками времени жизни и блокировки пользовательских учетных записей

Пример раздела конфигурации:

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

Настройка передачи информации в аудит гостех

Для передачи информации аудита, используются следующие параметры:

gostech:
  audit:
    host: *** audit_server_host ***
    port: *** audit_server_port ***