В Polymatica Analytics существует возможность авторизации через систему единой аутентификации Avanpost FAM. Авторизация осуществляется посредством протокола OpenID Connect с передачей в Polymatica Analytics прав доступа, настроенных для пользователей в Avanpost FAM.
Примечание
В настоящем руководстве описывается конкретный пример подключения. В зависимости от требований заказчика, те или иные шаги по настройке могут отличаться.
Подготовка к настройке
Перед выполнением настройки авторизации через систему единой аутентификации Avanpost FAM необходимо убедиться в наличии:
- Доступа к системе Avanpost FAM. Это может быть VPN-подключение в закрытый контур. Главное, чтобы главная страница Avanpost FAM была доступна.
- Учётной записи Avanpost FAM с правами на создание приложения, управление ролями пользователей, управление группами и пользователями. Возможно использование учётной записи администратора.
- Сервера с развёрнутой системой Polymatica Analytics и доступа к конфигурационному файлу (polymatica.conf).
Настройка Avanpost FAM
Добавление приложения
Выполните следующие шаги:
- Войдите в систему под учётной записью с необходимыми правами.
- Перейдите на вкладку Приложения.
- Нажмите кнопку Добавить приложение. Откроется страница с 4 пунктами, первая вкладка Основные настройки:
- Наименование — любое уникальное в рамках данной копии Avanpost FAM;
- Тип — OpenID;
- Показывать приложение пользователям — на выбор;
- Нажмите Далее. Откроется следующая вкладка Настройки интеграции:
- Secret — с помощью генератора пароля создайте максимально сложную последовательность из 20 символов (максимальное ограничение) и запомните созданный пароль: он будет использоваться позже;
- Redirect URIs — укажите адрес переадресации на сервер Polymatica Analytics. Например, http://10.8.0.74:8080/api/v2/login/oauth2/redirect/bft_avanpost;
- Base URL — аналогично предыдущему, только базовый адрес сервера. Например, http://10.8.0.74:8080;
- Logout URL — укажите адрес переадресации для выхода из учётной записи Polymatica Analytics. Например, http://10.8.0.74:8080/api/v2/logout/oauth2;
Примечание
Система выхода из учётной записи через Logout URL на стороне Polymatica Analytics не поддерживается в текущей версии системы. См. реализацию стандарта OpenID Connect Back-Channel Logout.
Нажмите Далее. Откроется следующая вкладка Настройки аутентификации:
- Оставьте Password. При необходимости, укажите другие настройки.
Нажмите Далее. Откроется последняя вкладка Завершение:
- Оставьте установленным флажок Сделать приложение активным;
Нажмите Далее. Приложение создано. Теперь необходимо настроить дополнительные параметры приложения. Для этого на вкладке Приложения выберите только что созданное приложение. Перейдите на вкладку Настройки и включите редактирование нажатием на кнопку со значком карандаша справа. Укажите необходимые параметры:
- Access Token Type — JSON Web Token. Это необходимо, чтобы в access token система передавала права доступа приложения.
Нажмите кнопку Сохранить. Перейдите на вкладку Модель доступа. Далее, перенесите роли пользователей Polymatica Analytics в Avanpost FAM. Нажмите кнопку + и укажите:
- Код — уникальный идентификатор объекта ресурсов. Например, user_permissions. Запомните его: он будет использован позже;
- Описание — Права пользователя;
В блоке Права (scopes) добавляем 4 вида прав:
Код | Описание |
---|---|
administrator | Администратор системы |
cube_creation | Создание мультисфер |
member_control | Управление пользователями и группами |
data_export | Экспорт данных |
Внимание
Данные в графе Код должны соответствовать указанным на сервере Polymatica Analytics идентификаторам ролей (для списка допустимых идентификаторов см. plm::server::MemberRolesCodes::serialize). Описание может быть абсолютно любым, но рекомендуется, чтобы оно соответствовало описанию со страницы списка ролей Polymatica Analytics.
Сохраните указанные права и перейдите к процессу создания пользователей/групп (или назначению прав пользователей, если Avanpost FAM получает пользователей из внешнего источника, например, из LDAP).
Добавление пользователей (при необходимости)
Перейдите на вкладку Пользователи. Нажмите кнопку Добавить пользователя. Укажите основные атрибуты учётной записи. Возможно указывать дополнительные атрибуты в текущей версии системы не поддерживается. Повторите процесс столько раз, сколько необходимо.
Добавление групп пользователей (при необходимости)
Примечание
Назначение ролей на группы через Avanpost FAM в текущей версии системы не поддерживается.
Перейдите на вкладку Группы. Нажмите кнопку Добавить группу.
- Наименование — любое;
- Описание — любое.
Откройте созданную группу и добавьте пользователей, после чего активируйте для группы созданное ранее приложение.
В данном примере было создано три группы: test_polymatica_admins_group, test_polymatica_editors_group, test_polymatica_users_group.
Добавление ролей пользователей и групп
Теперь, когда есть учётные записи пользователей и группы, в которых они размещены, можно перейти к созданию ролей. Перейдите на вкладку Сервис и нажмите на ссылку Настройка ролей и прав. Нажмите кнопку Добавить:
- Наименование — любое уникальное;
- Описание — любое;
- Объекты доступа и права выбирайте только из списка test_polymatica. Они были добавлены ранее на этапе редактирования параметров только что созданного приложения. Выберите соответствующие права.
Нажимите Сохранить и откройте параметры только что созданной роли. Убедитесь, что на вкладке Объекты доступа и права всё указано корректно и добавьте пользователей и группы на соответствующих вкладках.
Внимание
В текущей версии системы, при работе с Avanpost FAM 1.2.0, она некорректно определяет роли пользователя в случае, если он добавлен в группу, а роли выданы только группе. При необходимости, роли каждому пользователю из группы можно добавить вручную.
Настройка сервера Polymatica Analytics
Далее, настройте провайдера OpenID Connect для Polymatica Analytics. В целом, процесс не отличается от настройки произвольного провайдера, но есть ряд важных параметров:
Параметр | Значение | Комментарии |
---|---|---|
plm.login.oauth2.avanpost_permissions_resource_id | user_permissions (который требовалось запомнить заранее) Значение должно соответствовать идентификатору объекта доступа, указанному ранее в настройках приложения в Avanpost FAM. | Если не указать, то Polymatica Analytics не сможет правильно прочитать права доступа пользователя, а Avanpost FAM может возвращать права доступа произвольных приложений. |
plm.login.oauth2.providers[i].client_secret | Секрет созданного приложения. Требовалось запомнить запомнить заранее, на этапе создания приложения Avanpost FAM. | Без секрета невозможно проверить подлинность запроса на получение токена доступа от Polymatica Analytics к Avanpost FAM. |
plm.login.oauth2.providers[i].scope | openid profile email permissions | Если не указать permissions, то Avanpost FAM не будет сообщать права доступа пользователя и, соответственно, их не удастся применить к учётной записи пользователя Polymatica Analytics. |
plm.login.oauth2.providers[i].flow | pkce | pkce — наиболее безопасный вариант аутентификации из общих. |
plm.login.oauth2.providers[i].claims.login | preferred_username | Если не указать, то Polymatica Analytics не сможет прочитать логин пользователя, а место хранения будет отличаться от стандартного. |
plm.login.oauth2.providers[i].claims.fullname | name | Если не указать, то Polymatica Analytics не сможет прочитать полное имя пользователя, а место хранения будет отличаться от стандартного. |
plm.login.oauth2.providers[i].claims.permissions | permissions | Если не указать, то Polymatica Analytics не сможет прочитать права доступа пользователя. |
plm.login.oauth2.providers[i].metadata.use_oidc_discovery | Avanpost FAM поддерживает OpenID Connect Discovery, поэтому данный параметр позволяет сэкономить время, предоставив настройку серверу. | |
plm.login.oauth2.providers[i].metadata.skip_validation | Не рекомендуется к использованию. Позволяет пропустить валидацию данных, например, в случае, если введённые данные не позволяют пройти валидацию. | |
plm.login.oauth2.avanpost.admin_group_name | Отвечает за назначение роли "Администратор" всем пользователям той группы, название которой прислал Avanpost в claims. |