Навигатор по разделу:
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
- Пример iga.config для внутренней аутентификации
{
"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"
},
"archiveDatabase": {
"connectionString": "host=127.0.0.1;database=iga;username=iga;password=Avanp0st;Timeout=300;Command Timeout=60;Maximum Pool Size=50",
"providerName": "Postgres",
"schemaName": "archive2"
},
"smtpclient": {
"host": "localhost",
"username": "Guest@avanpost.ru",
"password": "Guest",
"maxRetryCount":8
},
"enabledDefaultListeners": {
"OnHire": false,
"OnDismiss": false,
"OnAvailable": false,
"OnUnavailable": false,
"OnEmployeeMoved": false,
"OnEmployeeChanged": true,
"OnUnitEvent": false
},
"dataIntegrity": {
"enabled": true,
"initializing": 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"
},
"maxRequestBodySizeBytes": 30000000,
"rolesAssignPolicies": {
"enabled": true,
"onHrEvents": true,
"onUnitEvents": true,
"onChange": true,
},
"accountAutoLocking {
"enabled": true,
"onHrEvents": true,
},
"accountPropertyUpdating": {
"enabled": true,
"onHrEvents": true,
"onRoleRevoked: true,
"onRoleAssigned": true,
"ensureSuccess": true,
}
}
{
"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"
},
"archiveDatabase": {
"connectionString": "host=127.0.0.1;database=iga;username=iga;password=Avanp0st;Timeout=300;Command Timeout=60;Maximum Pool Size=50",
"providerName": "Postgres",
"schemaName": "archive2"
},
"smtpclient": {
"host": "localhost",
"username": "Guest@avanpost.ru",
"password": "Guest",
"maxRetryCount":8
},
"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"
}
},
"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"
},
"maxRequestBodySizeBytes": 30000000,
"rolesAssignPolicies": {
"enabled": true,
"onHrEvents": true,
"onUnitEvents": true,
"onChange": true,
},
"accountAutoLocking {
"enabled": true,
"onHrEvents": true,
},
"accountPropertyUpdating": {
"enabled": true,
"onHrEvents": true,
"onRoleRevoked: true,
"onRoleAssigned": true,
"ensureSuccess": true,
}
}
{
"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"
},
"archiveDatabase": {
"connectionString": "host=127.0.0.1;database=iga;username=iga;password=Avanp0st;Timeout=300;Command Timeout=60;Maximum Pool Size=50",
"providerName": "Postgres",
"schemaName": "archive2"
},
"smtpclient": {
"host": "localhost",
"username": "Guest@avanpost.ru",
"password": "Guest",
"maxRetryCount":8
},
"enabledDefaultListeners": {
"OnHire": false,
"OnDismiss": false,
"OnAvailable": false,
"OnUnavailable": false,
"OnEmployeeMoved": false,
"OnEmployeeChanged": true,
"OnUnitEvent": false
},
"dataIntegrity": {
"enabled": true,
"initializing": true
},
"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"
},
"maxRequestBodySizeBytes": 30000000,
"rolesAssignPolicies": {
"enabled": true,
"onHrEvents": true,
"onUnitEvents": true,
"onChange": true,
},
"accountAutoLocking {
"enabled": true,
"onHrEvents": true,
},
"accountPropertyUpdating": {
"enabled": true,
"onHrEvents": true,
"onRoleRevoked: true,
"onRoleAssigned": true,
"ensureSuccess": true,
}
}
{
"licensePath" : "/opt/avanpost/config/license.xml",
"connectorsFolder":"/opt/avanpost/connectors",
"serverKey": "/opt/avanpost/config/key",
"logLevel":"Warning",
"auth": {
"rootUser": "LOCAL\\idm",
"defaultRealm": "LOCAL",
"realms": {
"LOCAL": {
"type": "Internal"
}
}
},
...
Для первичной установки пароля администратора при использовании внутренней аутентификации требуется:
- Остановить сервис "iga.service".
systemctl stop iga.service
- В файл "/etc/systemd/system/iga.service" добавить в конец строки "ExecStart=/usr/bin/dotnet /opt/avanpost/idm/web/Avanpost.Idm.Selfservice.WebHost.dll" параметр "--adm-pwd="somepassword"". (Вместо "somepassword" требуется подставить произвольный пароль для администратора)
ExecStart=/usr/bin/dotnet /opt/avanpost/idm/web/Avanpost.Idm.Selfservice.WebHost.dll --adm-pwd="somepassword"
- Обновить конфигурацию и запустить сервис "iga.service".
sudo systemctl reload-daemon sudo systemctl start iga.service
Сервис будет остановлен исключением.
- Убрать из файла "/etc/systemd/system/iga.service" ранее добавленный параметр "--adm-pwd="somepassword"".
- Обновить конфигурацию и запустить сервис "iga.service".
sudo systemctl reload-daemon sudo systemctl start iga.service
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-файлу с сертификатом сервиса коннекторов Avanpost IDM. Используется для настройки обратного режима подключения удаленного сервиса коннекторов. |
| idmServerCertificatePassword | Пароль от pfx-файла с сертификатом сервиса коннекторов Avanpost IDM. Используется для настройки обратного режима подключения удаленного сервиса коннекторов. |
| general | Секция общих настройки |
| Идентификатор ресурса, по учетным записям которого выполняется поиск карточек сотрудников для аутентифицированного пользователя |
| Включение выполнение скрипта валидации документа на стороне сервера при создании Допустимые значения: true, false |
| database | Секция настройки базы данных |
| Строка подключения к БД в формате соответствующего провайдера ADO.Net Для настройки кластера Postgres адреса хостов требуется указывать через запятую. Пример настройки кластера Postgres "database": {
"connectionString": "host=127.0.0.1:9876,127.0.0.1:5432;database=iga;username=iga;password=Avanp0st;Timeout=300;Command Timeout=60;Maximum Pool Size=50",
"providerName": "Postgres",
"schemaName": "WF"
},
|
| Провайдер для работы с БД Допустимые значения: Postgres, MSSQL |
| Имя схемы БД. Может быть задано любое допустимое имя схемы |
| archiveDatabase | Секция настройки архивной базы данных |
| Строка подключения к архивной БД в формате соответствующего провайдера ADO.Net Для настройки кластера Postgres адреса хостов требуется указывать через запятую. Пример настройки кластера Postgres "archiveDatabase": {
"connectionString": "host=127.0.0.1:9876,127.0.0.1:5432;database=iga;username=iga;password=Avanp0st;Timeout=300;Command Timeout=60;Maximum Pool Size=50",
"providerName": "Postgres",
"schemaName": "archive2"
},
|
| Провайдер для работы с БД Допустимые значения: 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 |
| Количество потоков записи в базу данных рабочей информации безнес процессов
|
| Уровень логирования по умолчанию при выполнении скриптов в бизнес-процессах
|
| maxRequestBodySizeBytes | Максимальный размер запроса для Kestrel
|
rolesAssignPolicies | Секция настроек включения и отключения выполнения политик назначения ролей |
| Флаг для включения и отключения выполнения всех политик назначения ролей. При значении "true" назначение ролей включено
|
| Флаг для включения и отключения назначения ролей только при обработке кадровых событий. При значении "true" назначение ролей включено
|
| Флаг для включения и отключения назначения ролей только при обработке событий юнитов. При значении "true" назначение ролей включено
|
| Флаг для включения и отключения назначения ролей только при создании и изменении организационных и атрибутивных политик. При значении "true" назначение ролей включено
|
accountAutoLocking | Секция настроек включения и отключения работы автоматической блокировки и разблокировки УЗ |
| Флаг для включения и отключения работы автоматической блокировки и разблокировки УЗ. При значении "true" автоматическая блокировка и разблокировка УЗ включена
|
| Флаг для включения и отключения работы автоматической блокировки и разблокировки УЗ только при обработке кадровых событий. При значении "true" автоматическая блокировка и разблокировка УЗ включена
|
accountPropertyUpdating | Секция настроек включения и отключения работы автоматического пересчёта свойств УЗ |
| Флаг для включения и отключения работы автоматического пересчёта свойств УЗ. При значении "true" автоматический пересчёт свойств УЗ включен
|
| Флаг для включения и отключения работы автоматического пересчёта свойств УЗ только при обработке кадровых событий. При значении "true" автоматический пересчёт свойств УЗ включен
|
| Флаг для включения и отключения работы автоматического пересчёта свойств УЗ только при отзыве ролей, у которых параметр "Создавать уникальные УЗ" имеет значение "true".
|
| Флаг для включения и отключения работы автоматического пересчёта свойств УЗ только при назначении ролей, у которых параметр "Создавать уникальные УЗ" имеет значение "true".
|
| Флаг управления количеством возможных попыток обновления значений свойств.
|