Файл конфигурации

Документация Avanpost IDM 7 : 4.2. Файл конфигурации

Навигатор по разделу:

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

Файл конфигурации содержит основные технические параметры, необходимые для запуска Avanpost IDM и аутентификации в Системе. Файл является универсальным для всех сервисов системы. Сервисы определяют местоположение файла конфигурации, используя значение переменной окружения "IGA_CFG".

Пример IGA_CFG
IGA_CFG=/opt/avanpost/config/iga.config

Если переменная окружения "IGA_CFG" не задана, сервисы выполняют поиск файла конфигурации "iga.config" в рабочей директории.

2. Примеры конфигурационного файла "iga.config"

Пример iga.config для LDAP аутентификации
{
    "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"
    }
  }

Пример iga.config для Kerberos аутентификации
{
    "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"
    }
  }

Пример 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": "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-аутентификации
  • rootUser

Пользователь с правами корневого администратора

Допустимые значения: логин пользователя

  • defaultRealm
Домен по умолчанию
  • realms
Перечень доменов, пользователи которых могут аутентифицироваться в системе
serviceUrlURL сервиса IDM для обращения сервисов коннекторов в обратном режиме взаимодействия
connectorCommandTimeout

Тайм-аут операции коннектора при выполнении через сервис коннекторов, устанавливается в секундах

Допустимые значения: 0 - 2147483647

connectorCertificateSuppressValidation

Отключение валидации сертификатов серверов коннекторов

Допустимые значения: true, false

rpcMessageMaxSizeBytes

Максимальный размер кластерного сообщения в байтах

  • Допустимые значения: 262144 (256 КБ) - 16777216 (16 МБ)
  • Значение по умолчанию: 4194304 (4 МБ)
idmServerCertificatePathПуть к pfx-файлу с сертификатом сервера IDM
idmServerCertificatePasswordПароль от pfx-файла с сертификатом сервера IDM
generalСекция общих настройки 
  • ResourceId

Идентификатор ресурса, по учетным записям которого выполняется поиск карточек сотрудников для аутентифицированного пользователя

  • EnableDocumentCreateValidators

Включение выполнение скрипта валидации документа на стороне сервера при создании

Допустимые значения: true, false

databaseСекция настройки базы данных
  • connectionString
Строка подключения к БД в формате соответствующего провайдера ADO.Net
  • providerName

Провайдер для работы с БД

Допустимые значения: Postgres, MSSQL

  • schemaName
Имя схемы БД. Может быть задано любое допустимое имя схемы
smtpclientСекция настройки подключения к SMTP-серверу
  • host
Имя или IP-адрес SMTP-сервера
  • username
Имя технологической учетной записи
  • password
Пароль технологической учетной записи
enabledDefaultListenersСекция параметров включения встроенных кадровых обработчиков
  • OnHire

События приема на работу

Допустимые значения: true, false
  • OnDismiss

События увольнения 

Допустимые значения: true, false
  • OnAvailable

События доступности сотрудника

Допустимые значения: true, false
  • OnUnavailable

События недоступности сотрудника

Допустимые значения: true, false
  • OnEmployeeMoved

События кадрового перевода

Допустимые значения: true, false
  • OnEmployeeChanged

События изменения свойств сотрудника

Допустимые значения: true, false
  • OnUnitEvent

События изменения связанных юнитов сотрудника

Допустимые значения: true, false
dataIntegrityСекция настроек контроля несанкционированного доступа (НСД) к БД
  • enabled

Включение или отключение НСД

Допустимые значения: true, false
  • initializing

Разрешение инициализации контрольных сумм записей НСД при их отсутствии

Допустимые значения: true, false
kerberosСекция настроек прозрачной аутентификации
  • KeytabPath
Путь к файлу keytab
  • DisableAdminHost

Отключение Kerberos аутентификации для веб-интерфейса администратора Avanpost IDM

Допустимые значения: true, false

  • Aliases
Список синонимов доменных имен. Должен соответствовать значениям realms из секции Auth. Заполняется при расхождении полного имени домена с realm
idpСекция настроек аутентификации через IdP по стандарту OpenID Connect
  • DiscoveryUrl
URL для получения метаданных IdP
  • Client
Настройки клиента для взаимодействия с IdP
    • CallBackAddress
URL для перенаправления пользователя после аутентификации
    • Id
Идентификатор клиента в системе IdP
    • Secret
Секрет для аутентификации клиента
  • Admin
Настройки администратора для взаимодействия с IdP
    • CallBackAddress
URL для перенаправления администратора после аутентификации
    • Id
Идентификатор администратора в IdP
    • Secret
Секрет для аутентификации администратора
  • BackendClient
Настройки для клиента, взаимодействующего с сервером
    • Id
Идентификатор клиента
    • Secret
Секрет для аутентификации клиента
    • UserName
Имя пользователя для аутентификации
    • Password
Пароль для аутентификации
  • NameClaimType
Тип утверждения, который используется для идентификации имени пользователя в токене аутентификации
  • ValidateEndpoints

Валидация конечных точек

Допустимые значения: true, false

TargetUrlsПеречень URI опубликованных интерфейсов, используется для подстановки в шаблонах уведомлений
  • Admin
URL для администратора
  • User
URL для пользователя
  • Registration
URL для регистрации
experimentalСекция экспериментальных настроек
  • enableResourceSessions

Режим выделенных сессий коннекторов

Допустимые значения: true, false

  • enabledRoleDynamicPolicyClustering

Режим кластерного обновления динамических политик ресурсов

Допустимые значения: true, false

enableRequestLog

Включение логирования запросов действий администраторов

Допустимые значения: true, false

enableResourceLog

Включение логирования ошибок запросов к ресурсам

Допустимые значения: true, false

workers

Секция настроек параметров обработки фоновых задач
  • hrEvents

Количество потоков обработки кадровых событий

  • Допустимые значения: нет ограничений.
  • Рекомендуемое значение: количество ядер ЦПУ, умноженное на 4.
  • hrEventsBatchSize

Количество кадровых событий в пакете

  • Допустимые значения: нет ограничений.
  • Рекомендуемое значение: 10000 - 100000
  • Значение по умолчанию: 100000
  • role

Количество потоков обработки ролевых событий

  • Допустимые значения: нет ограничений.
  • Рекомендуемое значение подбирается исходя из потребностей и доступных ресурсов.
  • Значение по умолчанию: количество ядер ЦПУ.
  • accountsMaxActive

Количество потоков обработки задач УЗ

  • Допустимые значения: нет ограничений.
  • Рекомендуемое значение подбирается исходя из потребностей и доступных ресурсов.
  • Значение по умолчанию: количество ядер ЦПУ, умноженное на 4.
  • resourceLoaders

Количество потоков загрузчиков ресурсов

  • Допустимые значения: нет ограничений.
  • Рекомендуемое значение: 1-2
  • Значение по умолчанию: 2
  • resourceAccountTasks

Количество потоков обработки задач блокировки УЗ

  • Допустимые значения: нет ограничений.
  • Рекомендуемое значение: 1-2
  • Значение по умолчанию: 2
  • resourcesMaxActive

Количество потоков обработки задач ресурсов

  • Допустимые значения: нет ограничений.
  • Рекомендуемое значение: 1-2
  • Значение по умолчанию: 2
  • enableRolePropertyUpdateObserver

Включение или отключение обработчика событий изменения свойств роли

Допустимые значения: true, false

eventsQueueСекция настроек очереди обработки внешних событий
  • MaxEventsPerSecond

Ограничение максимального количество событий в секунду

  • Допустимые значения: 16-20000.
  • Рекомендуемое значение подбирается исходя из потребностей и доступных ресурсов.
  • Значение по умолчанию: 1000
  • MaxActiveProcesses

Максимальное число процессов, которые могут быть одновременно активны в системе

  • Допустимые значения: нет ограничений.
  • Рекомендуемое значение подбирается исходя из потребностей и доступных ресурсов.
  • Значение по умолчанию: 1000
  • ActiveProcessDuration

Ожидаемое время активной фазы работы процесса, выраженное в секундах

  • Допустимые значения: 30 и более.
  • Рекомендуемое значение подбирается исходя из потребностей и доступных ресурсов.
  • Значение по умолчанию: 60
enableSwagger

Флаг для отключения swagger. 

  • Допустимые значения: true, false
  • Значение по умолчанию: true
licenseValue

Лицензия Avanpost IDM в формате base64. Используется для хранения лицензии в Vault

serverKeyValue

Ключ Avanpost IDM в формате base64. Используется для хранения ключа в Vault

cookieLifetimeHours

Время жизни маркера авторизации пользователя в Системе, выраженное в часах. После истечения времени требуется повторная авторизация

  • Допустимые значения: 1 и более (целое положительное число)
  • Значение по умолчанию: 8
ensureSuccessPropertyChange 

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

Допустимые значения: true, false

При значении "true", если изменение не было применено к сотруднику, то обработка текущего пакета событий останавливается и выводятся соответствующие логи

personalDataAgreementPath

Путь к файлу соглашения о персональных данных. Используется в модуле "Приглашение к регистрации"

AFlow

Секция настроек AFlow

  • Executors

Количество потоков для выполнения бизнес процессов

  • Допустимые значения: 1 и более (целое положительное число)
  • Рекомендуемое значение: 4-8 (значения больше 12 могут привести к проблемам производительности)
  • Значение по умолчанию: количество ядер ЦПУ
  • Persistent

Настройки Persistent

    • Writers

Количество потоков записи в базу данных рабочей информации безнес процессов

  • Допустимые значения: 1 и более (целое положительное число)
  • Рекомендуемое значение: менее 10 (значения более10 могут привести к проблемам производительности БД)
  • Значение по умолчанию: 2
  • ScriptLogLevel

Уровень логирования по умолчанию при выполнении скриптов в бизнес-процессах

  • Допустимые значения: Debug, Info, Error
  • Значение по умолчанию: Debug



Обсуждение