Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 2 Текущий »

Общие сведения

Polymatica Dashboards TN поддерживает провайдинг аутентификации через протокол OIDC посредством провайдера СИА Avanpost FAM.

Аутентификация осуществляется по следующему алгоритму:

  1. Пользователь вводит свой логин и пароль в провайдере СИА Avanpost FAM.
  2. Polymatica забирает из СИА Avanpost FAM токен claims, из которого извлекаются логин, ФИО пользователя, список его групп и ролей.
    • Если пользователь отсутствует в системе, он создается с извлеченными данными, происходит вход в систему.
    • Если пользователь есть в системе, его данные обновляются, происходит вход в систему.
    • Если пользователь находится в группе, которая не входит в белый список групп (см. ниже), авторизации не происходит, выводится сообщение об ошибке.
  3. При выходе из приложения осуществляется выход и из СИА 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_PROVIDER_GROUPS_WHITELIST не является обязательным. Если не задавать его, аутентификация будет работать, но без ограничений по доступу.


Примеры конфигураций


Пример конфигурации для Docker-установки
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');
  const observer = new MutationObserver(mutations => {
    if (document.location.href.includes('auth')) {

      const interval = setInterval(()=>{
          const tab = document.querySelector('sl-tab[panel="openIDConnect"]')

	      if(tab){
            clearInterval(interval)
            document.querySelector('sl-tab[panel="openIDConnect"]').textContent = 'СИА'
          }
      
      })
    }
  });
  observer.observe(body, { childList: true, subtree: true });
};

window.onload = observeUrlChange;

Сохраните тему и примените ее. В окне авторизации появится вкладка "СИА", при нажатии на которую будет выполняться автоматическая переадресация в СИА Avanpost FAM.

Видоизмененное окно с вкладкой авторизации CИА


О создании и применении тем см. Polymatica Dashboards TN - Руководство пользователя - "Настройки" - "Оформление".

  

  • Нет меток