Навигатор по разделу:
1. Общие сведения
Файл конфигурации содержит основные технические параметры, необходимые для запуска Avanpost IDM и аутентификации в Системе. Файл является универсальным для всех сервисов системы. Сервисы определяют местоположение файла конфигурации, используя значение переменной окружения "IGA_CFG".
IGA_CFG=/opt/avanpost/config/iga.config
Если переменная окружения "IGA_CFG" не задана, сервисы выполняют поиск файла конфигурации "iga.config" в рабочей директории.
2. Примеры конфигурационного файла "iga.config"
- Пример iga.config для LDAP аутентификации
- Пример iga.config для Kerberos аутентификации
- Пример iga.config для аутентификации через IDP
{
"licensePath" : "/opt/avanpost/config/license.xml",
"connectorsFolder":"/opt/avanpost/connectors",
"serverKey": "/opt/avanpost/config/key",
"logLevel":"Warning",
"auth": {
"rootUser":"LOCAL\\administrator",
"defaultRealm": "LOCAL",
"realms": {
"LOCAL": {
"type": "LDAP",
"host": "127.0.0.1",
"bindDN": "cn=admin,dc=avanpost,dc=local",
"password": "Avanp0st",
"usersBase": "dc=avanpost,dc=local",
"userNameAttribute": "uid"
}
}
},
"serviceUrl": "http://idm.avanpost.local",
"connectorCommandTimeout": "120",
"connectorCertificateSuppressValidation": "true",
"rpcMessageMaxSizeBytes": 4194304,
"idmServerCertificatePath": "",
"idmServerCertificatePassword": "",
"general": {
"ResourceId": 1,
"EnableDocumentCreateValidators": true,
},
"database": {
"connectionString": "host=127.0.0.1;database=idm;username=avanpost;password=Avanp0st",
"providerName": "Postgres",
"schemaName": "public"
},
"smtpclient": {
"host": "localhost",
"username": "Guest@avanpost.ru",
"password": "Guest"
},
"enabledDefaultListeners": {
"OnHire": false,
"OnDismiss": false,
"OnAvailable": false,
"OnUnavailable": false,
"OnEmployeeMoved": false,
"OnEmployeeChanged": true,
"OnUnitEvent": false
},
"dataIntegrity": {
"enabled": true,
"initializing": true
},
"kerberos": {
"KeytabPath": "",
"DisableAdminHost": false,
"Aliases": {
}
},
"idp": {
"DiscoveryUrl": "",
"Client": {
"CallBackAddress": "",
"Id": "",
"Secret": ""
},
"Admin": {
"CallBackAddress": "",
"Id": "",
"Secret": ""
},
"BackendClient": {
"Id": "",
"Secret": "",
"UserName": "",
"Password": ""
},
"NameClaimType": "preferred_username",
"ValidateEndpoints": "true"
},
"TargetUrls": {
"Admin": "http://adm.avanpost.local",
"User": "http://wf.avanpost.local",
"Registration": "http://reg.avanpost.local"
},
"experimental": {
"enableResourceSessions": true,
"enabledRoleDynamicPolicyClustering": true
},
"enableRequestLog": false,
"enableResourceLog": false,
"workers": {
"hrEvents": 12,
"hrEventsBatchSize": 100000,
"role": 12,
"accountsMaxActive": 12,
"resourceLoaders": 1,
"resourceAccountTasks": 12,
"resourcesMaxActive": 12,
"enableRolePropertyUpdateObserver": false
},
"eventsQueue": {
"MaxEventsPerSecond": 20000,
"MaxActiveProcesses": 1000,
"ActiveProcessDuration": 30
},
"enableSwagger": true,
"licenseValue": "base64-value",
"serverKeyValue": "base64-value",
"cookieLifetimeHours": 4,
"ensureSuccessPropertyChange": false,
"personalDataAgreementPath": "",
"AFlow":{
"Executors": 4,
"Persistent":{
"Writers": 2
},
"ScriptLogLevel" : "Debug"
}
}
{
"licensePath" : "/opt/avanpost/config/license.xml",
"connectorsFolder":"/opt/avanpost/connectors",
"serverKey": "/opt/avanpost/config/key",
"logLevel":"Warning",
"auth": {
"rootUser":"LOCAL\\administrator",
"defaultRealm": "LOCAL",
"realms": {
"LOCAL": {
"type": "LDAP",
"host": "127.0.0.1",
"bindDN": "cn=admin,dc=avanpost,dc=local",
"password": "Avanp0st",
"usersBase": "dc=avanpost,dc=local",
"userNameAttribute": "uid"
}
}
},
"serviceUrl": "http://idm.avanpost.local",
"connectorCommandTimeout": "120",
"connectorCertificateSuppressValidation": "true",
"rpcMessageMaxSizeBytes": 4194304,
"idmServerCertificatePath": "",
"idmServerCertificatePassword": "",
"general": {
"ResourceId": 1,
"EnableDocumentCreateValidators": true,
},
"database": {
"connectionString": "host=127.0.0.1;database=idm;username=avanpost;password=Avanp0st",
"providerName": "Postgres",
"schemaName": "public"
},
"smtpclient": {
"host": "localhost",
"username": "Guest@avanpost.ru",
"password": "Guest"
},
"enabledDefaultListeners": {
"OnHire": false,
"OnDismiss": false,
"OnAvailable": false,
"OnUnavailable": false,
"OnEmployeeMoved": false,
"OnEmployeeChanged": true,
"OnUnitEvent": false
},
"dataIntegrity": {
"enabled": true,
"initializing": true
},
"kerberos": {
"KeytabPath": "/opt/avanpost/web_host.keytab",
"DisableAdminHost": false,
"Aliases": {
"avanpost.local": "LOCAL"
}
},
"idp": {
"DiscoveryUrl": "",
"Client": {
"CallBackAddress": "",
"Id": "",
"Secret": ""
},
"Admin": {
"CallBackAddress": "",
"Id": "",
"Secret": ""
},
"BackendClient": {
"Id": "",
"Secret": "",
"UserName": "",
"Password": ""
},
"NameClaimType": "preferred_username",
"ValidateEndpoints": "true"
},
"TargetUrls": {
"Admin": "http://adm.avanpost.local",
"User": "http://wf.avanpost.local",
"Registration": "http://reg.avanpost.local"
},
"experimental": {
"enableResourceSessions": true,
"enabledRoleDynamicPolicyClustering": true
},
"enableRequestLog": false,
"enableResourceLog": false,
"workers": {
"hrEvents": 12,
"hrEventsBatchSize": 100000,
"role": 12,
"accountsMaxActive": 12,
"resourceLoaders": 1,
"resourceAccountTasks": 12,
"resourcesMaxActive": 12,
"enableRolePropertyUpdateObserver": false
},
"eventsQueue": {
"MaxEventsPerSecond": 20000,
"MaxActiveProcesses": 1000,
"ActiveProcessDuration": 30
},
"enableSwagger": true,
"licenseValue": "base64-value",
"serverKeyValue": "base64-value",
"cookieLifetimeHours": 4,
"ensureSuccessPropertyChange": false,
"personalDataAgreementPath": "",
"AFlow":{
"Executors": 4,
"Persistent":{
"Writers": 2
},
"ScriptLogLevel" : "Debug"
}
}
{
"licensePath" : "/opt/avanpost/config/license.xml",
"connectorsFolder":"/opt/avanpost/connectors",
"serverKey": "/opt/avanpost/config/key",
"logLevel":"Warning",
"auth": {
"rootUser":"LOCAL\\administrator",
"defaultRealm": "LOCAL",
"realms": {
"LOCAL": {
"type": "LDAP",
"host": "127.0.0.1",
"bindDN": "cn=admin,dc=avanpost,dc=local",
"password": "Avanp0st",
"usersBase": "dc=avanpost,dc=local",
"userNameAttribute": "uid"
}
}
},
"serviceUrl": "http://idm.avanpost.local",
"connectorCommandTimeout": "120",
"connectorCertificateSuppressValidation": "true",
"rpcMessageMaxSizeBytes": 4194304,
"idmServerCertificatePath": "",
"idmServerCertificatePassword": "",
"general": {
"ResourceId": 1,
"EnableDocumentCreateValidators": true,
},
"database": {
"connectionString": "host=127.0.0.1;database=idm;username=avanpost;password=Avanp0st",
"providerName": "Postgres",
"schemaName": "public"
},
"smtpclient": {
"host": "localhost",
"username": "Guest@avanpost.ru",
"password": "Guest"
},
"enabledDefaultListeners": {
"OnHire": false,
"OnDismiss": false,
"OnAvailable": false,
"OnUnavailable": false,
"OnEmployeeMoved": false,
"OnEmployeeChanged": true,
"OnUnitEvent": false
},
"dataIntegrity": {
"enabled": true,
"initializing": true
},
"kerberos": {
"KeytabPath": "",
"DisableAdminHost": false,
"Aliases": {
}
},
"idp": {
"DiscoveryUrl": "http://idp.avanpost.local/.well-known/openid-configuration",
"Client": {
"CallBackAddress": "http://wf.avanpost.local",
"Id": "0c2c095c-e2e5-4d73-b3f0-440cfc9e948a",
"Secret": "Avanp0st"
},
"Admin": {
"CallBackAddress": "http://adm.avanpost.local",
"Id": "0c2c095c-e2e5-4d73-b3f0-440cfc9e948a",
"Secret": "Avanp0st"
},
"BackendClient": {
"Id": "",
"Secret": "",
"UserName": "",
"Password": ""
},
"NameClaimType": "preferred_username",
"ValidateEndpoints": "true"
},
"TargetUrls": {
"Admin": "http://adm.avanpost.local",
"User": "http://wf.avanpost.local",
"Registration": "http://reg.avanpost.local"
},
"experimental": {
"enableResourceSessions": true,
"enabledRoleDynamicPolicyClustering": true
},
"enableRequestLog": false,
"enableResourceLog": false,
"workers": {
"hrEvents": 12,
"hrEventsBatchSize": 100000,
"role": 12,
"accountsMaxActive": 12,
"resourceLoaders": 1,
"resourceAccountTasks": 12,
"resourcesMaxActive": 12,
"enableRolePropertyUpdateObserver": false
},
"eventsQueue": {
"MaxEventsPerSecond": 20000,
"MaxActiveProcesses": 1000,
"ActiveProcessDuration": 30
},
"enableSwagger": true,
"licenseValue": "base64-value",
"serverKeyValue": "base64-value",
"cookieLifetimeHours": 4,
"ensureSuccessPropertyChange": false,
"personalDataAgreementPath": "",
"AFlow":{
"Executors": 4,
"Persistent":{
"Writers": 2
},
"ScriptLogLevel" : "Debug"
}
}
3. Описание параметров конфигурационного файла "iga.config"
| Параметр | Описание |
|---|---|
| licensePath | Путь к лицензионному файлу |
| connectorsFolder | Путь к каталогу с локально размещаемыми коннекторами |
| serverKey | Ключ шифрования секретов Допустимые значения: путь к 256-битному бинарному или текстовому файлу в формате base64 |
| logLevel | Уровень логирования журнала интеграции с ресурсами Допустимые значения: Debug, Information, Warning, Error |
| auth | Секция настроек LDAP-аутентификации |
| Пользователь с правами корневого администратора Допустимые значения: логин пользователя |
| Домен по умолчанию |
| Перечень доменов, пользователи которых могут аутентифицироваться в системе |
| serviceUrl | URL сервиса IDM для обращения сервисов коннекторов в обратном режиме взаимодействия |
| connectorCommandTimeout | Тайм-аут операции коннектора при выполнении через сервис коннекторов, устанавливается в секундах Допустимые значения: 0 - 2147483647 |
| connectorCertificateSuppressValidation | Отключение валидации сертификатов серверов коннекторов Допустимые значения: true, false |
| rpcMessageMaxSizeBytes | Максимальный размер кластерного сообщения в байтах
|
| idmServerCertificatePath | Путь к pfx-файлу с сертификатом сервера IDM |
| idmServerCertificatePassword | Пароль от pfx-файла с сертификатом сервера IDM |
| general | Секция общих настройки |
| Идентификатор ресурса, по учетным записям которого выполняется поиск карточек сотрудников для аутентифицированного пользователя |
| Включение выполнение скрипта валидации документа на стороне сервера при создании Допустимые значения: true, false |
| database | Секция настройки базы данных |
| Строка подключения к БД в формате соответствующего провайдера ADO.Net |
| Провайдер для работы с БД Допустимые значения: Postgres, MSSQL |
| Имя схемы БД. Может быть задано любое допустимое имя схемы |
| smtpclient | Секция настройки подключения к SMTP-серверу |
| Имя или IP-адрес SMTP-сервера |
| Имя технологической учетной записи |
| Пароль технологической учетной записи |
| enabledDefaultListeners | Секция параметров включения встроенных кадровых обработчиков |
| События приема на работу Допустимые значения: true, false |
| События увольнения Допустимые значения: true, false |
| События доступности сотрудника Допустимые значения: true, false |
| События недоступности сотрудника Допустимые значения: true, false |
| События кадрового перевода Допустимые значения: true, false |
| События изменения свойств сотрудника Допустимые значения: true, false |
| События изменения связанных юнитов сотрудника Допустимые значения: true, false |
| dataIntegrity | Секция настроек контроля несанкционированного доступа (НСД) к БД |
| Включение или отключение НСД Допустимые значения: true, false |
| Разрешение инициализации контрольных сумм записей НСД при их отсутствии Допустимые значения: true, false |
| kerberos | Секция настроек прозрачной аутентификации |
| Путь к файлу keytab |
| Отключение Kerberos аутентификации для веб-интерфейса администратора Avanpost IDM Допустимые значения: true, false |
| Список синонимов доменных имен. Должен соответствовать значениям realms из секции Auth. Заполняется при расхождении полного имени домена с realm |
| idp | Секция настроек аутентификации через IdP по стандарту OpenID Connect |
| URL для получения метаданных IdP |
| Настройки клиента для взаимодействия с IdP |
| URL для перенаправления пользователя после аутентификации |
| Идентификатор клиента в системе IdP |
| Секрет для аутентификации клиента |
| Настройки администратора для взаимодействия с IdP |
| URL для перенаправления администратора после аутентификации |
| Идентификатор администратора в IdP |
| Секрет для аутентификации администратора |
| Настройки для клиента, взаимодействующего с сервером |
| Идентификатор клиента |
| Секрет для аутентификации клиента |
| Имя пользователя для аутентификации |
| Пароль для аутентификации |
| Тип утверждения, который используется для идентификации имени пользователя в токене аутентификации |
| Валидация конечных точек Допустимые значения: true, false |
| TargetUrls | Перечень URI опубликованных интерфейсов, используется для подстановки в шаблонах уведомлений |
| URL для администратора |
| URL для пользователя |
| URL для регистрации |
| experimental | Секция экспериментальных настроек |
| Режим выделенных сессий коннекторов Допустимые значения: true, false |
| Режим кластерного обновления динамических политик ресурсов Допустимые значения: true, false |
enableRequestLog | Включение логирования запросов действий администраторов Допустимые значения: true, false |
enableResourceLog | Включение логирования ошибок запросов к ресурсам Допустимые значения: true, false |
workers | Секция настроек параметров обработки фоновых задач |
| Количество потоков обработки кадровых событий
|
| Количество кадровых событий в пакете
|
| Количество потоков обработки ролевых событий
|
| Количество потоков обработки задач УЗ
|
| Количество потоков загрузчиков ресурсов
|
| Количество потоков обработки задач блокировки УЗ
|
| Количество потоков обработки задач ресурсов
|
| Включение или отключение обработчика событий изменения свойств роли Допустимые значения: true, false |
| eventsQueue | Секция настроек очереди обработки внешних событий |
| Ограничение максимального количество событий в секунду
|
| Максимальное число процессов, которые могут быть одновременно активны в системе
|
| Ожидаемое время активной фазы работы процесса, выраженное в секундах
|
| enableSwagger | Флаг для отключения swagger.
|
| licenseValue | Лицензия Avanpost IDM в формате base64. Используется для хранения лицензии в Vault |
| serverKeyValue | Ключ Avanpost IDM в формате base64. Используется для хранения ключа в Vault |
| cookieLifetimeHours | Время жизни маркера авторизации пользователя в Системе, выраженное в часах. После истечения времени требуется повторная авторизация
|
| ensureSuccessPropertyChange | Флаг. Используется при обработке кадровых событий изменения свойств сотрудника Допустимые значения: true, false При значении "true", если изменение не было применено к сотруднику, то обработка текущего пакета событий останавливается и выводятся соответствующие логи |
| personalDataAgreementPath | Путь к файлу соглашения о персональных данных. Используется в модуле "Приглашение к регистрации" |
| AFlow | Секция настроек AFlow |
| Количество потоков для выполнения бизнес процессов
|
| Настройки Persistent |
| Количество потоков записи в базу данных рабочей информации безнес процессов
|
| Уровень логирования по умолчанию при выполнении скриптов в бизнес-процессах
|