Polymatica Dashboards TN поддерживает провайдинг аутентификации через протокол OIDC посредством провайдера СИА Avanpost FAM.
Аутентификация осуществляется по следующему алгоритму:
Метод аутентификации СИА Avanpost FAM конфигурируется следующими параметрами в файлах /srv/platform/docker-compose.yml (для Docker-установки) и /etc/polymatica/platform/manager/config.json (для пакетной установки):
| Docker-установка | Пакетная установка | Описание параметра |
POLYMATICA_CORE_OIDC_AUTH_METHOD_ACTIVE | { "oidc": { "auth_method_active": true/false, } } | Доступность метода аутентификация OIDC |
POLYMATICA_CORE_OIDC_PROVIDER_NAME | { "oidc": { "provider_name": "", } } | Произвольное имя провайдера |
POLYMATICA_CORE_OIDC_PROVIDER_ISSUER | { "oidc": { "provider_issuer": "", } } | Провайдер-поставщик аутентификации |
POLYMATICA_CORE_OIDC_PROVIDER_REDIRECT_URL | { "oidc": { "provider_redirect_url": "", } } | Адрес переадресации после аутентификации в провайдере |
POLYMATICA_CORE_OIDC_PROVIDER_CLIENT_ID | { "oidc": { "provider_client_id": "", } } | Client ID, указываемый в провайдере для приложения |
POLYMATICA_CORE_OIDC_PROVIDER_CLIENT_SECRET | { "oidc": { "provider_client_secret": "", } } | Client secret, выдаваемый провайдером |
POLYMATICA_CORE_OIDC_PROVIDER_SCOPE | { "oidc": { "provider_scope": "", } } | Scope, запрашиваемый у провайдера |
POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_PREFERRED_USERNAME_KEY | { "oidc": { "provider_claims": { "preferred_username_key": "", } } } | Ключ claims, по которому будет определено значение username пользователя в Polymatica |
POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_EMAIL_KEY | { "oidc": { "provider_claims": { "email_key": "", } } } | Ключ claims, по которому будет определено значение email пользователя в Polymatica |
POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_FIRST_NAME_KEY | { "oidc": { "provider_claims": { "first_name_key": "", } } } | Ключ claims, по которому будет определено значение "Имя пользователя" в Polymatica |
POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_LAST_NAME_KEY | { "oidc": { "provider_claims": { "last_name_key": "", } } } | Ключ claims, по которому будет определено значение "Фамилия пользователя" в Polymatica |
POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_MIDDLE_NAME_KEY | { "oidc": { "provider_claims": { "middle_name_key": "", } } } | Ключ claims, по которому будет определено значение "Отчество пользователя" в Polymatica |
POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_GROUP_KEY | { "oidc": { "provider_claims": { "group_key": "", } } } | Ключ claims, из которого будут добавляться группы пользователя |
POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_ROLE_KEY | { "oidc": { "provider_claims": { "role_key": "", } } } | Ключ claims, из которого будут добавляться роли пользователя |
POLYMATICA_CORE_OIDC_PROVIDER_GROUPS_WHITELIST | { "oidc": { "provider_groups_whitelist": "" } | Список групп, которым разрешён вход в приложение - массив строк через запятую |
Параметр |
POLYMATICA_CORE_OIDC_AUTH_METHOD_ACTIVE=true POLYMATICA_CORE_OIDC_PROVIDER_NAME=avanpost POLYMATICA_CORE_OIDC_PROVIDER_ISSUER=https://avanpost.example.ru/auth/realms/docs-realm POLYMATICA_CORE_OIDC_PROVIDER_REDIRECT_URL=https://polymatica.example.ru/auth/oidc-callback POLYMATICA_CORE_OIDC_PROVIDER_CLIENT_ID=polymatica POLYMATICA_CORE_OIDC_PROVIDER_CLIENT_SECRET=jmMEby8L9Jo0TNweolgSiLaXR4AEGNna POLYMATICA_CORE_OIDC_PROVIDER_SCOPE=openid email profile POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_PREFERRED_USERNAME_KEY=preferred_username POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_EMAIL_KEY=email POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_FIRST_NAME_KEY=first_name POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_LAST_NAME_KEY=last_name POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_MIDDLE_NAME_KEY=middle_name POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_GROUP_KEY=sia_groups POLYMATICA_CORE_OIDC_PROVIDER_CLAIMS_ROLE_KEY=sia_role POLYMATICA_CORE_OIDC_PROVIDER_GROUPS_WHITELIST=group1,group2,group3 |
{
"auth": {
"oidc": {
"auth_method_active": true,
"provider_name": "avanpost",
"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_id": "polymatica",
"provider_client_secret": "jmMEby8L9Jo0TNweolgSiLaXR4AEGNna",
"provider_scope": "openid email profile",
"provider_claims": {
"preferred_username_key": "preferred_username",
"email_key": "email",
"first_name_key": "first_name",
"last_name_key": "last_name",
"middle_name_key": "middle_name",
"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 |
Для того чтобы осуществлять вход через СИА Avanpost FAM, необходимо создать тему оформления системы (или отредактировать существующую пользовательскую тему системы), добавив следующий код 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 TN - Руководство пользователя - "Настройки" - "Оформление".