Общие сведения
Polymatica Dashboards поддерживает провайдинг аутентификации через протокол OIDC посредством провайдера СИА (Avanpost FAM).
Аутентификация осуществляется по следующему алгоритму:
- Пользователь вводит свой логин и пароль в провайдере СИА (Avanpost FAM),
- Polymatica забирает из СИА (Avanpost FAM) токен claims, из которого извлекаются логин, ФИО пользователя, список его групп и ролей.
- Если пользователь отсутствует в системе, он создается с извлеченными данными, происходит вход в систему.
- Если пользователь есть в системе, его данные обновляются, происходит вход в систему.
- Если пользователь находится в группе, которая не входит в белый список групп (см. ниже), авторизации не происходит, выводится сообщение об ошибке.
- При выходе из приложения осуществляется выход и из Avanpost FAM.
При получении в токене значения роли "superuser" пользователю автоматически назначается системная роль "Суперпользователь", а другие роли, переданные в токене, пользователю не назначаются и не учитываются системой.
Параметры конфигурации метода
Метод аутентификации СИА (Avanpost FAM) конфигурируется следующими параметрами в файле oidc-providers.json:
| Параметр | Описание параметра |
|---|---|
{ | Включение метода аутентификации OIDC |
{ | Произвольное имя провайдера. Будет отображаться в интерфейсе на кнопке при настройке нескольких провайдеров. |
{ | Провайдер-поставщик аутентификации |
{ | Адрес переадресации после аутентификации в провайдере |
{ | Client ID, указываемый в провайдере для приложения |
{ | Client Secret, выдаваемый провайдером |
{ | Scope, запрашиваемый у провайдера |
{ | Ключ claims, по которому будет определено значение username пользователя в Polymatica Dashboards |
{ | Ключ claims, по которому будет определено значение email пользователя в Polymatica Dashboards |
{ | Ключ claims, по которому будет определено значение "Имя пользователя" в Polymatica Dashboards |
{ | Ключ claims, по которому будет определено значение "Фамилия пользователя" в Polymatica Dashboards |
{ | Ключ claims, по которому будет определено значение "Отчество пользователя" в Polymatica Dashboards |
{ | Ключ claims, из которого будут добавляться группы пользователя. Используется только для Avanpost FAM (СИА). |
{ | Ключ claims, из которого будут добавляться роли пользователя. Используется только для Avanpost FAM (СИА). |
{ | Список групп, которым разрешен вход в приложение. Используется только для Avanpost FAM (СИА). |
Путь до файла oidc-providers.json задается параметром POLYMATICA_CORE_OIDC_PROVIDERS_CONFIG_PATH в /srv/platform/docker-compose.yml (для Docker-установки) и /etc/polymatica/platform/manager/config.json (для пакетной установки).
Параметр "provider_groups_whitelist" не является обязательным. Если не задавать его, аутентификация будет работать, но без ограничений по доступу.
Пример конфигурации
[
{
"auth_method_active": true,
"provider_issuer": "https://avanpost.example.ru/auth/realms/docs-realm",
"provider_redirect_url": "https://polymatica.example.ru/auth/oidc-callback",
"provider_client_id": "polymatica",
"provider_client_secret": "jmMEby8L9Jo0TNweolgSiLaXR4AEGNna",
"provider_scope": "openid profile email",
"provider_name": "Avanpost"
"provider_claims": {
"preferred_username_key": "preferred_username",
"email_key": "email",
"first_name_key": "firstName",
"middle_name_key": "middleName",
"last_name_key": "lastName",
"group_key": "sia_groups",
"role_key": "sia_role"
},
"provider_groups_whitelist": "group1,group2,group3"
}
]
После внесения изменений в файл конфигурации необходимо перезапустить Polymatica Dashboards.
Для системы, установленной с использованием пакетов, выполните команду:
systemctl restart polymatica-platform-manager
Для системы, установленной с использованием Docker, выполните команду:
cd /srv/platform && docker compose up -d --remove-orphans || docker-compose up -d --remove-orphans
Настройка названия вкладки в окне авторизации для входа через СИА
Вкладку "Open ID" в окне авторизации можно переименовать в "СИА". Для этого необходимо создать тему оформления системы (или отредактировать существующую пользовательскую тему системы), добавив следующий код JavaScript:
const observeUrlChange = () => {
const body = document.querySelector('body');
let lastText = '';
const observer = new MutationObserver(() => {
if (document.location.href.includes('auth')) {
const tab = document.querySelector('sl-tab[panel="openIDConnect"]');
if (tab) {
const currentText = tab.textContent.trim();
if (currentText !== 'СИА' && lastText !== 'СИА') {
tab.textContent = 'СИА';
lastText = 'СИА';
}
}
} else {
lastText = '';
}
});
observer.observe(body, { childList: true, subtree: true });
};
window.onload = observeUrlChange;
Сохраните тему и примените ее. В окне авторизации появится вкладка "СИА", при нажатии на которую будет выполняться автоматическая переадресация в СИА (Avanpost FAM).
О создании и применении тем см. Polymatica Dashboards - Руководство пользователя - "Настройки системы" - "Оформление".
