Avanpost FAM обладает функциональностью управления источниками пользователей, включая возможность создания федерации из нескольких экземпляров Avanpost FAM, В данной инструкции описан принцип подключения двух компонентов Avanpost FAM в федерацию. При необходимости инструкцию можно использовать для масштабирования федерации, выполняя настройку для большего количества экземпляров Avanpost FAM по аналогии.
Настройка сервера Avanpost FAM
Настройка экземпляра Avanpost, играющего роль сервера, выполняется следующим образом:
- Открыть административную консоль серверного узла FAM и зайти во вкладку создания приложения, нажав кнопку "Добавить приложение" режима "Приложения".
- На этапе "Основные настройки" требуется ввести наименование и выбрать тип "OAuth/OpenID Connect" (более подробно процесс создания и управления приложениями описан в разделах Управление приложениями и Управление OIDC-приложениями).
- На этапе "Настройки интеграции" заполнить указанные поля в соответствии с таблицей (назначение прочих параметров описано в Шаг 2. Настройки интеграции для OIDC-приложений).
Параметр Значение Secret Произвольный секрет, который будет использоваться для подключения к приложению. Должен быть идентичен параметру clientSecret
, указываемому в настройках IdP на стороне клиента FAM.Redirect URIs URL-адрес, на который пользователь будет перенаправлен после успешной аутентификации.
Параметр устанавливается в формате
/extidp/{id}/callback
, гдеextidp
– URL внешнего IdP,id
- уникальный идентификатор настроенного IdP.Base URL URL-адрес, на который пользователь будет перенаправляться при переходе из личного кабинета. Logout URL-адрес, на который пользователь будет перенаправлен после выхода из приложения. - На этапе "Настройки аутентификации" выбрать факторы аутентификации приложения, установив переключатели напротив тех или иных факторов (более подробно описано в Шаг 3. Настройки аутентификации для OIDC-приложения).
- На этапе "Завершение" следует сохранить приложение, делая его активным сразу после создания (более подробно в Шаг 4. Завершение для OIDC-приложения).
- Войти в профиль созданного OIDC-приложения, нажав на наименование приложения в раздела "Приложения" административной консоли.
- Войти во вкладку "Настройки" профиля приложения и задать следующие параметры (параметры, не указанные в данной инструкции, задавать в соответствии со стандартной настройкой OpenID Сonnect-приложения):
Параметр Значение Публичный Убрать флаг из чекбокса "Публичный". Access Token Type Выбрать "JSON Web Token". - Создать группу, пользователи которой будет синхронизироваться между узлами федерации. Для этого необходимо нажать кнопку "Добавить группу" в режиме "Группы" и в открывшейся вкладке ввести запрашиваемые параметры (более подробно в разделе Добавление новых групп).
Добавить в группу пользователей, которые будут аутентифицироваться в настроенных приложениях. Ручное добавление пользователей администратором реализуется в профиле группы. Также настройка доступа пользователя к группам и ролям допускается редактировать в УЗ пользователя.
Назначить ранее созданное OIDC-приложение в данную группу. Для этого в профиле группы во вкладке "Приложения" созданной группы установить переключатель в положение "Активно" () напротив созданного приложения.
Настройка клиента Avanpost FAM
Настройка экземпляра Avanpost, играющего роль клиента, выполняется следующим образом:
- В административной консоли Avanpost FAM Server в разделе "Настройки внешних провайдеров идентификации (IdP)" режима "Сервис" нажать кнопку "Добавить".
- На шаге "Основные настройки" задать значения параметров согласно таблице (более подробно о значениях параметров описано в Шаг 1. Основные настройки) и нажать "Далее".
Параметр Значение Тип OpenID Connect
Наименование Задать произвольное наименование. Open ID Connect детали baseUrl Адрес, на который пользователь будет перенаправляться при переходе из личного кабинета (например, fam2.local:4080).
scope Области доступа (например,
openid fullname email
). Указываются через пробел.clientID Уникальный идентификатор приложения (например,
FAM1FED).
clientSecret Секрет, который будет использоваться для подключения. Должен соответствовать параметру Secret
, настраиваемому шаге 3 настройки серверного узла FAM в данной инструкции. - На шаге "Настройки перенаправления" задать значения параметров согласно таблице (более подробно о значениях параметров описано в Шаг 2. Настройки перенаправления) и нажать "Далее".
Параметр Значение URI авторизации Задать значение {{ .extidp_details.baseUrl }}/oauth2/authorize
Метод перенаправления Выбрать Redirect
(рекомендуется).Параметры перенаправления client_id Задать {{ .extidp_details.clientID }}
для автоматической подстановки значения clientID с прошлого шага.redirect_uri Задать {{ .extidp_request.CallbackURI }}
для автоматической подстановки значения CallbackURI на полученное от внешнего IdP.response_type code
scope Задать {{ .extidp_details.scope }}
для автоматической подстановки значения scope с прошлого шага. - На шаге "Настройки callback" задать значения раздела "Шаги для получения информации о пользователе" согласно таблице ниже (более подробно о значениях параметров описано в Шаг 3. Настройки callback) и нажать "Далее".
Шаг Тип действия Атрибут результата Метод URL Данные Заголовки Назначение 1 HTTP Запрос token POST {{ .extidp_details.baseUrl }}/oauth2/token
Пример настройки:
- Имя:
grant_type
; Значение:authorization_code
; - Имя:
code
; Значение:{{.code}}
; - Имя:
redirect_uri
; Значение:{{.extidp_request.CallbackURI}}
; - Имя:
client_id
; Значение:{{.extidp_details.clientID}}
; - Имя:
client_secret
; Значение:{{.extidp_details.clientSecret}}
.
Не требуются. Запрос и получение маркера доступа от экземпляра FAM, выступающего в роли сервера. В теле запроса Avanpost FAM направляет внешнему провайдеру информацию, содержащуюся в столбце "Данные", и в случае успеха получает Access token. - Имя:
- На шаге "Настройки callback" задать прочие значения значения согласно таблице ниже.
Параметр Значение Маппинг атрибутов Имя Значение Имя {{ .token.access_token.given_name }}
Фамилия {{ .token.access_token.family_name }}
Отчество Заполнять необязательно. Пример значения:
{{ .token.access_token.middlename }}
Имя пользователя {{ .token.access_token.preferred_username }}
Email {{ .token.access_token.email }}
Телефон Заполнять необязательно. Пример значения:
{{ .token.access_token.phone }}
Язык Заполнять необязательно. Пример значения: {{ .token.access_token.language }}
Внешний ID {{ .token.id_token.sub }}
ID запроса state
ID Токен token.access_token
Итератор Заполнять необязательно. Маппинг дополнительных атрибутов Маппинг дополнительных атрибутов осуществляется по аналогии с маппингом основных атрибутов в случае если требуется сопоставить и связать атрибуты, полученные из внешнего IdP и дополнительные атрибуты на стороне клиента. Атрибут привязки Выбрать атрибут привязки, по которому пользователь на стороне клиента ассоциируется с пользователем на стороне внешнего IdP. По умолчанию выбран атрибут Имя пользователя
. - На шаге "Завершение" задать значения параметров согласно таблицам ниже (более подробно о значениях параметров описано в Шаг 4. Завершение) и нажать "Сохранить".
Параметр Значение Настройки интеграции Значения переключателей настраиваются в зависимости от потребностей конкретной эксплуатирующей организации.
Доступна настройка следующих параметров:
- Создание пользователей
- при включенном переключателе () появление нового пользователя на стороне внешнего IdP приводит к автоматическому созданию пользователя на стороне Avanpost FAM (решение о создании принимается в результате поиска по значению атрибута привязки, выбранному в графе "Связывать по атрибуту" на Шаге 3 данной инструкции: если на стороне внешнего IdP найден пользователь с некоторым значением атрибута привязки, отсутствующим в Avanpost FAM, данный пользователь автоматически создается в Avanpost FAM);
- при включенном переключателе () автоматическое создание нового пользователя в Avanpost FAM, появившегося на стороне внешнего IdP, не осуществляется;
- Обновление пользователей
- при включенном переключателе () обновление связанных пользовательских атрибутов (указаны в графе Маппинг атрибутов на Шаге 3 данной инструкции) на стороне IdP приводит к автоматическому обновлению данных атрибутов на стороне Avanpost FAM;
- при включенном переключателе () автоматическое обновление пользовательских атрибутов на стороне Avanpost FAM не осуществляется;
- Подтверждение информации пользователем
- при включенном переключателе () после создания нового пользователя в момент первичной авторизации пользователю показываются значения его атрибутов для подтверждения;
- при включенном переключателе () новому пользователю не показываются его атрибуты для подтверждения при первой авторизации;
- Обогащение информации пользователем
- при включенном переключателе () после создания нового пользователя в момент первичной авторизации отображаемые значения атрибутов доступны пользователю для редактирования;
- при включенном переключателе () новому пользователю не доступно редактирование атрибутов при первичной авторизации;
- Подтверждение паролем
- при включенном переключателе () выполняется связывание пользователей Avanpost FAM и внешнего IdP посредством дополнительной аутентификации (например, если при авторизации посредством внешнего IdP в Avanpost FAM не находится пользователь, связанный с этим IdP, Avanpost FAM предлагает ввести логин-пароль и на основании введенных данных связывает УЗ в Avanpost FAM и во внешнем IdP)
- при включенном переключателе () связывание пользователей Avanpost FAM и внешнего IdP посредством дополнительной аутентификации недоступно;
- Множественная учетная запись
- при включенном переключателе () допускается использование нескольких учетных записей: пользователю будет предложен выбор учетной записи из списка найденных в Avanpost FAM/создаваемых при помощи внешнего IdP;
- при включенном переключателе () использование нескольких учетных записей недоступно пользователю.
Группа по умолчанию Ввести наименование группы, в которую по умолчанию будут добавляться новые пользователи. Активный Установить флаг чекбокс, чтобы запустить настроенный IdP без дополнительной интеграции. - Создание пользователей