Общие сведения
В статье описывается настройка двухфакторной аутентификации (2FA), многофакторной аутентификации (MFA) и Single-Sign On для системы централизованного управления учетными записями и правами доступа в информационных системах Avanpost IDM. Avanpost IDM позволяет осуществлять автоматическое управление учетными записями на основе кадровых событий, централизованное управление правами доступа по ролевой модели, обработку заявок на изменение прав доступа, управление паролями пользователей, аудит прав доступа, поиск и устранение несоответствий в учетных записях. В инструкции описывается настройка 2FA/MFA/SSO с использованием механизма OpenID Connect. При интеграции поддерживается функциональность SSO (Signle Sign-On): если пользователь прошёл аутентификацию в веб-приложение в соответствии с настроенным сценарием, то система не будет запрашивать повторного подтверждения аутентификации при аутентификации в другое веб-приложение. Также поддерживается функциональность SLO (Single Logout): пользователь автоматически выходит из всех приложений, если разлогинился в одном из них.
Настройка на стороне Avanpost FAM
Настройка приложения на стороне Avanpost FAM осуществляется следующим образом:
- Открыть административную консоль Avanpost FAM Server и зайти во вкладку создания приложения, нажав кнопку "Добавить приложение" режима "Приложения".
- На этапе "Основные настройки" требуется задать следующие параметры (параметры, доступные для настройки в OpenID Connect-приложениях, подробно описаны в разделе Управление приложениями и Управление OIDC-приложениями):
Параметр Значение Наименование Ввести наименование (в данном примере IDM-IDP
).Тип OAuth/OpenID Connect
Показывать приложение пользователям Выключить чекбокс (рекомендуется) - На этапе "Настройки интеграции" заполнить указанные поля в соответствии с таблицей:
Параметр Значение Secret Задать произвольный секрет (конфиденциальный ключ, который используется для аутентификации клиентского приложения). Redirect URIs http://usr.avanpost.local/
Base URL http://usr.avanpost.local/
Logout http://usr.avanpost.local/api/v1/externallogout
- На этапе "Настройки аутентификации" выбрать факторы аутентификации приложения, установив переключатели напротив тех или иных факторов (особенности настройки шага описаны в разделе Управление приложениями и Управление OIDC-приложениями).
- На этапе "Завершение" следует сохранить приложение, делая его активным сразу после создания.
Значения параметров, которые не были упомянуты в данной инструкции, допускается оставить по умолчанию (в соответствии с автоматической настройкой, которая выполняется после создания OIDC-приложения в Avanpost FAM).
- Создать группу (если таковая группа на была настроена ранее), пользователи которой будет иметь доступ к Avanpost IDM. Для этого необходимо нажать кнопку "Добавить группу" в режиме "Группы" и в открывшейся вкладке ввести запрашиваемые параметры (более подробно в разделе Добавление новых групп).
Добавить в группу пользователей, которые будут аутентифицироваться в настроенных приложениях. Ручное добавление пользователей администратором реализуется в профиле группы (более подробно о способах добавления пользователей описано в разделе Управление пользователями).
Назначить ранее созданное OIDC-приложение в данную группу. Для этого в профиле группы во вкладке "Приложения" созданной группы установить переключатель в положение "Активно" () напротив созданного приложения.
Настройка на стороне Avanpost IDM
Настройка приложения на стороне Avanpost IDM осуществляется следующим образом:
- Перейти к конфигурационному файлу Avanpost IDM
iga.config
, содержащему основные технические параметры, необходимые для запуска и аутентификации при помощи Avanpost IDM. Сервисы определяют местоположение файла конфигурации, используя значение переменной окруженияIGA_CFG
(если переменная окруженияIGA_CFG
не задана, сервисы выполняют поиск файла конфигурацииiga.config
в рабочей директории).Пример параметра
IGA_CFG
:IGA_CFG=/opt/avanpost/config/iga.config
- В административной консоли Avanpost FAM перейти в созданное приложение OIDC-приложение из режима "Приложения".
- В профиле созданного приложения во вкладке "Настройки" скопировать значения параметров Client ID и Redirect URIs.
- Перенести скопированные параметры в соответствии с таблицей:
Параметр в Avanpost FAM Параметр в конфигурационном файле iga.config Client ID
CallBackAddress
в разделеidp
Redirect URIs
Id
в разделеidp
Пример фрагмента конфигурационного файла Avanpost IDM"idp": { "DiscoveryUrl": "", "Client": { "CallBackAddress": "http://usr.avanpost.local", "Id": "00c0000c-0e0e0-0e0e0-0e0e0-110cfc93913a", "Secret": "SomeStrongSecret300" },
- Сохранить изменения и убедиться в том, что при аутентификации посредством Avanpost FAM пользователь, состоящий в соответствующей группе (для которой был настроен доступ в процессе настройки на стороне Avanpost FAM), получает доступ к Avanpost IDM.
Приложение А. Пример конфигурационного файла Avanpost FAM
Для подробной информации о настройке конфигурационного файла следует обратиться к документации на Avanpost IDM (Identity Management).
{ "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, "rpcMessageChunkSize": 3000, "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": { "domainname1": "aliasname1", "domainname2": "aliasname2" } }, "idp": { "DiscoveryUrl": "", "Client": { "CallBackAddress": "http://usr.avanpost.local", "Id": "00c0000c-0e0e0-0e0e0-0e0e0-110cfc93913a", "Secret": "SomeStrongSecret300" }, "Admin": { "CallBackAddress": "http://adm.avanpost.local", "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 } }