Спецификация конфигурационного файла config.toml.default

11.1 Спецификация конфигурационного файла config.toml.default компонента Avanpost FAM Server


Общие сведения

Конфигурационный файл config.toml.default является шаблоном предварительных значений параметров конфигурации для запуска Системы.

Основной конфигурационный файл службы Avanpost FAM Server – config.toml, расположенный по умолчанию по пути /opt/idp/config.toml.

В случае если есть параметры, определённые в переменных окружения (ENV) – приоритет отдаётся значению, определённому в переменных окружения.

Пример конфигурационного файла config.toml.default

baseUrl = 'http://idp.avanpost.local'
cert = '/home/idp/.idp/cert.pem'
encryptionKey = 'key.dat'
issuer = 'idp.avanpost.local'
privateKey = '/home/idp/.idp/key.pem'
publicPath = 'public/'
backgroundTasks = false

#[kerberos]
#keytab = "/path/to/keytab"
#serviceAccountName = "accountname"
#requireHostAddr = true

[adminconsole]
baseUrl = 'http://idp.avanpost.local
dir = './webui/adm/dist'
#path = 'admin'
runAsService = false
host = 'localhost'
port = 4012
canCreateRadiusApp = true
canCreateDesktopApp = true
#dleTimeoutInMinutes = 50

[cryptoprovider]
pathToCProCspDir = '/opt/cprocsp/bin/amd64'

[cryptoprovider.certToUserLink]
certSubjectRdnOid = '1.2.643.100.3'
userAttributeName = 'snils'

[database]
connectionString = 'postgres://avanpost:Passw0rd@localhost/idp?sslmode=disable'
driver = 'pgx'

[grpcServer]
ensureToken = false
host = 'localhost'
network = 'tcp'
port = 9007
useTls = false

[lk]
idleTimeoutInMinutes = 50
#path = 'lk'
runAs = "nats"
webauthnOrigin = "http://self.avanpost.local" #baseUrl SelfService

[lk.nats]
connection = "nats://192.168.40.131:4222"
useTls = false
#caCertPath = "cmd/selfservice/develop-cert-ca.pem"
#clientCertPath = "cmd/selfservice/develop-cert-client.pem"
#clientKeyPath = "cmd/selfservice/develop-key-client.pem"
#username = "natsUser"
#password = "password"

[metrics]
host = 'localhost'
port = 9089

[cookie]
path = '/'
secure = false                  
http_only = true						                                                                            
same_site = 'None'
max_age = 2592000

[payControlConfig]
active = false
apiUrl = 'https://stable.paycontrol.org/api4/pc/pc-api'
callbackUrl = ''
systemId = 'system-id-hash'

[replication]
memberID = '33645877-70c1-45b1-a140-ba4028f1a401'

[events]
maxTriesRunTasks = 25
archivatorTickerInMinutes = 5
taskExecTickerInSeconds = 20
savingDisabledFor = 'SIGNED_IN'

[syslog]
network = 'udp'
address = '127.0.0.1:514'
tag = 'FAMNode1'

[qrsigninConfig]
skipPassword = false

[radiusServer]
address = ':1812'
secret = 'server_secret'

[restorePassword]
emulatedUsers = 32
emulationEnable = false
emulationFactors = []
throttleOn = false

[reverseproxyServer]
host = 'localhost'
port = 4010

[selfregistration]
disabled = true
redirectUrl = ''

[server]
host = 'localhost'
port = 4008

[session]
lifetimeInMinutes = 60
maxCountPerUser = 5
background_verify_expired_sessions = true
background_verify_expired_sessions_interval = "1m"

#[telegram]
#accessToken = 'TELEGRAM_TOKEN'
#authLifeTimeSeconds = 60
#inlineBindingEnable = true
#listenerGetUpdatesTimeout = 60
#senderTimeoutMilliSeconds = 1
#verificationLifeTimeInSeconds = 60

[templates]
localization = 'public/templates/localization'
oauth2_error_template = 'public/templates/oauth2-error-response.html'
oauth2_form_post_template = 'public/templates/oauth2-formpost-response.html'
saml_response = 'public/templates/saml-response.html'
templates = 'public/templates/default'

[userLocker]
inactivePeriodInDays = 10

[user_providers]

[usernameBlacklistPolicy]
active = false
blacklistDefaultDurationDays = '365'

[logging]
level = "trace"

Описание параметров конфигурационного файла config.toml.default

ПараметрОписание

baseUrl

Базовый URL (основной URL, по которому доступен Avanpost FAM).

cert

Путь к сертификату и ключу, которые будут использоваться в Avanpost FAM.

privateKey

Путь к приватному ключу подписи SAML и шифрования gRPC.

encryptionKey

Имя ключа шифрования паролей в БД, генерируется Avanpost FAM (утрата ключа приведет к необходимости повторного создания базы данных).

issuer

Адрес автора сертификата при выдаче токенов подтверждения личности.

publicPath

Путь размещения публичных ресурсов (статические файлы и шаблоны).

backgroundTasks

Флаг, указывающий, должна ли выполняться задача импорта данных из MS AD (используется, когда несколько серверов FAM работают с одной БД). При значении true данные импортируются.

[kerberos]

(секция параметров для настройки Kerberos-аутентификации)

keytab

Путь к keytab-файлу, который содержит ключи аутентификации Kerberos.

serviceAccountName

Определяет имя УЗ службы, которая используется для представления приложения в системе.

requireHostAddr

Флаг, указывающий, требуется ли при аутентификации использовать IP-адрес хоста.

Если значение установлено в true, при аутентификации требуется совпадение IP-адреса хоста, с которого выполняется запрос, с зарегистрированным IP-адресом в Kerberos.

[server]

(секция настроек сервера)

host

Хост (адрес) сервера.

port

Порт, на котором работает сервер.

[database]

(секция настроек базы данных)

connectionString

Строка подключения к базе данных PostgreSQL.

driver

Драйвер базы данных.

[adminconsole]

(секция настроек административной консоли)

baseUrl

Базовый URL административной консоли. Для работы консоли в качестве отдельной службы значение 'baseUrl' не должно совпадать с базовым URL Avanpost FAM.

dir

Директория хранения файлов пользовательского интерфейса административной консоли.

path

Устанавливает относительный адрес административной консоли (необязательный параметр.)

runAsService

Флаг определяет, будет ли административная консоль запущена как отдельный сервис с отдельным URL-адресом (true) или будет запущена вместе с основным приложением и доступна по тому же URL-адресу (false). Адрес консоли необходимо изменить при совпадении с базовым URL Avanpost FAM.

host

Хост (адрес) административной консоли.

port

Порт административной консоли. Если установлено runAsService = true, то необходимо изменить значение порта на отличное от других секций. Используется при настройке reverse-proxy в NGINX.

canCreateRadiusApp

Флаг возможности создания RADIUS-приложений (по умолчанию true).

canCreateDesktopApp

Флаг возможности создания Desktop-приложений (по умолчанию true).

idleTimeoutInMinutes

Устанавливает длительность сессии пользователя в административной панели, в минутах.

[lk]

(секция настроек личного кабинета пользователя)

idleTimeoutInMinutes

Устанавливает длительность сессии пользователя в личном кабинете, в минутах

dir

 Директория хранения файлов интерфейса личного кабинета.

path

Определяет подпуть относительно текущего домена.

verifyPermissions

Если параметру присвоено значение false, то самостоятельное изменение пользователем своих данных (фамилия, имя, отчество, электронная почта, телефон) в личном кабинете запрещено.

runAs

Определяет режим запуска личного кабинета:

  • nats – прием и отправка запросов в NATS от FAM SelfService, посредством которого опубликованы личные кабинеты;
  • embedded – личный кабинет, встроенного в FAM Server, без использования FAM SelfService.

webauthnOrigin

URL-адрес компонента FAM SelfService, который используется для работы механизма WebAuthn.

[cryptoprovider]

(секция настроек криптопровайдера CryptoPro)

pathToCProCspDir

Путь к директории с установленным криптопровайдером CryptoPro CSP.

[cryptoprovider.certToUserLink]

(секция настроек сертификата криптопровайдера

certSubjectRdnOid

OID (Идентификатор объекта) для RDN (Именованный дескриптор) сертификата пользователя.

userAttributeName

Имя атрибута пользователя, который будет использоваться при связывании сертификата с пользователем.

[grpcServer]

(секция настроек gRPC-сервера)

ensureToken

Флаг, указывающий, должен ли запрос на gRPC сервере содержать токен.

host

Хост (адрес) для gRPC-сервера.

network

Сеть для gRPC-сервера.

port

Порт, на котором работает gRPC-сервер.

useTls

Флаг, указывающий, следует ли использовать TLS для защищенного соединения.

[metrics]

(секция настроек публикации метрик)

host

Хост (адрес) для метрик.

port

Порт, на котором доступны метрики.

[qrsigninConfig]

(секция настроек для входа по QR-коду)

skipPassword

Флаг, указывающий, необходим ли запрос пароля, если вход по QR-коду уже выполнен. Если флагу присвоено значение true, пароль запрошен не будет.

lifeTime

Устанавливает время существования QR-кода (после создания), в секундах.

[radiusServer]

(секция настройки сервера RADIUS)

address

Адрес и порт сервера RADIUS.

secret

Секрет-пароль для аутентификации и взаимодействия клиент-сервер RADIUS.

[restorePassword]

(секция настроек восстановления пароля)

emulatedUsers

Устанавливает количество эмулируемых пользователей для восстановления пароля.

emulationEnable

Флаг, указывающий, включить ли эмуляцию для восстановления пароля.

emulationFactors

Определяет факторы эмуляции для восстановления пароля.

throttleOn

Флаг, указывающий, включить ли ограничение степени использования восстановления пароля.

[reverseproxyServer]

(секция настроек обратного прокси-сервера)

host

Хост (адрес) для обратного прокси-сервера.

port

Порт, на котором работает обратный прокси-сервер.

runNatsServer

Флаг, запускающий NATS-сервер для приема запросов от компонента FAM Reverse Proxy Service.

[selfregistration]

(секция настроек самостоятельной регистрации пользователя)

redirectUrl

URL-адрес перенаправления после самостоятельной регистрации пользователя.

disabled

Флаг, определяющий отключение возможности самостоятельной регистрации пользователя.

[session]

(секция настроек сессионной пользовательской политики)

lifetimeInMinutes

Определяет длительность сессии пользователя, в минутах.

maxCountPerUser

Устанавливает максимальное количество сессий для одного пользователя.

background_verify_expired_sessions

Флаг, включающий автоматическое удаление данных о завершенных сессиях через заданный промежуток времени.

background_verify_expired_sessions_interval

Определяет промежуток времени в минутах, через который будут удалены завершенные сессии.

[templates]

(секция настроек шаблонов)

localization

Путь размещения директории с шаблонами локализации.

oauth2_error_template

Путь размещения шаблона ошибки OAuth2.

oauth2_form_post_template

Путь размещения шаблона формы ответа OAuth2 для метода POST.

saml_response

Путь размещения шаблона ответа SAML.

templates

Путь размещения папки с шаблонами по умолчанию.

[cookie]

(секция настроек cookies-файлов)

path

Путь размещения директории для хранения файлов.

secure

При назначении флагу значения true используется защищенное соединение (https).

http_only

При назначении флагу значения true используется незащищенное соединение (http) .

same_site

При установлении значения None cookie будет отправлено во всех запросах к выдавшему его сайту, даже в тех, которые вызваны не связанными с ним сторонними сайтами.

max_age

Устанавливает время жизни cookies-файлов, в секундах.

[payControlConfig]

(секция настроек взаимодействия с сервисом PayControl)

active

При присвоении флагу значения true активна интеграция с сервисом PayControl.

apiUrl

URL-адрес API сервиса PayControl.

callbackUrl

URL-адрес обратного вызова.

systemId

Идентификатор системы для сервиса PayControl.

[replication]
(секция дополнительных настроек репликатора)

memberID

Уникальный UUID, сгенерированный для репликатора и указанный в параметре memberID в конфигурационном файле replicator/conf.json.

[events]

(секция настроек фоновых задач, связанных с событиями в системе)

maxTriesRunTasks

Максимальное количество попыток запуска фоновых задач (например, оповещения пользователя о смене пароля), связанных с событием в системе (например, сменой пароля, входом в приложение и т.д, по умолчанию 25.

archivatorTickerInMinutes

Периодичность запуска архиватора для задач, исчерпавших максимальное количество попыток запуска, в минутах. Архивированная задача больше не запускается.

taskExecTickerInSeconds

Периодичность запуска задач, связанных с событиями в системе, по умолчанию 20. Уменьшение значения не рекомендуется, так как ведет к повышению нагрузке.

savingDisabledFor

Список событий, не записывающихся в базу данных и не запускающих фоновые задачи. 

Доступные типы событий:

  • USER_CREATED – Создание пользователя;
  • SIGNED_IN – Вход в приложение под учетной записью пользователя;
  • USER_DATA_UPDATED – Обновление данных пользователя. 

[syslog]
(секция параметров управления событиями безопасности)

network

Сетевой протокол, используемый для передачи syslog-сообщений.

address

IP-адрес и порт, используемый для подключения к SIEM-системе.

tag

Тег, добавляемый к каждому syslog-сообщению.

 tlsCertPath

Включение защищенного соединения TLS в системе журналирования.

[restorePassword]

(секция параметров для настройки парольной политики)

emulatedUsers

Количество эмулируемых пользователей для восстановления пароля.

emulationEnable

Флаг, указывающий, включить ли эмуляцию для восстановления пароля.

emulationFactors

Факторы эмуляции для восстановления пароля.

throttleOn

Флаг, указывающий, включить ли ограничение степени использования восстановления пароля.

[selfregistration]

(секция параметров для настройки параметров регистрации пользователя)

redirectUrl

URL-адрес перенаправления после самостоятельной регистрации пользователя.

disabled

Флаг, указывающий на отключение возможности самостоятельной регистрации пользователя.

[server]

(секция базовых параметров настройки сервера)

host

Хост (адрес) сервера.

port

Порт, на работает сервер.

[telegram]

(секция параметров для настройки взаимодействия с Telegram)

accessToken

Токен доступа Telegram, который используется для аутентификации и авторизации при взаимодействии с Telegram API.

authLifeTimeSeconds

Время жизни авторизации в секундах, которое определяет, сколько времени пользователю разрешено оставаться авторизованным, не выполняя повторную аутентификацию.

inlineBindingEnable

Флаг, указывающий, разрешено ли использование inline-привязки в Telegram для процесса аутентификации.

listenerGetUpdatesTimeout

Время ожидания (в секундах) для получения Системой обновлений от Telegram-бота.

senderTimeoutMilliSeconds

Время ожидания (в миллисекундах) для отправки сообщений.

verificationLifeTimeInSecondsВремя жизни верификации в секундах, которое определяет, сколько времени есть у пользователя на подтверждение операции.

[templates]

(секция параметров для настройки шаблонов)

localization

Путь к директории с шаблонами локализации.

oauth2_error_template

Путь к шаблону ошибки OAuth2.

oauth2_form_post_template

Путь к шаблону формы ответа OAuth2 для метода POST.

saml_response

Путь к шаблону ответа SAML.

templates

Путь к папке с шаблонами по умолчанию.

[userLocker]

(секция настройки блокировки неактивных УЗ)

inactivePeriodInDays

Время (в днях), через которое блокируется УЗ пользователя, не выполнявшего действий в течение этого периода.  

[user_providers]

(секция параметров для настройки пользовательских провайдеров)

[usernameBlacklistPolicy]

(секция параметров для настройки политики блокировки пользователей)

active

Флаг, указывающий, активна ли политика блокировки имен пользователей.

blacklistDefaultDurationDays

Стандартная длительность блокировки имен пользователей.

[logging]

(секция уровня логирования)

level

Уровень логирования системы.


Обсуждение