Polymatica Analytics поддерживает любого провайдера учетных записей (далее – провайдер) по стандарту OAuth2/OpenID Connect. Для Polymatica Analytics может быть настроено и одновременно использовано произвольное количество провайдеров.
Настройка OAuth2/OpenID Connect осуществляется через конфигурационный файл (далее – конфигурация) /etc/polymatica/polymatica.conf. После изменений в конфигурации необходимо перезапускать сервер, чтобы изменения вступили в силу.
Аутентификация и авторизация через провайдера могут выполняться следующими тремя способами.
Параметр | Тип значения | Назначение | Состояние по умолчанию | Обязательный | Описание |
---|---|---|---|---|---|
plm.login.oauth2.enabled | – | Переключатель | Параметр отсутствует | Нет | Включить/выключить поддержку аутентификации через провайдеров OAuth2/OpenID Connect |
plm.login.oauth2.redirect_hostname | string | URI | http://localhost | Да, если поддержка аутентификации включена | Абсолютное базовое имя хоста для обратного перенаправления из провайдера. Имя должно указывать на текущий сервер Polymatica Analytics. Может содержать порт. Не должен содержать что-либо после authority-части URI |
plm.login.oauth2.verify_ssl | – | Переключатель | Параметр отсутствует | Нет | Выполнять проверку SSL-сертификата |
plm.login.oauth2.state_lifetime | int | Время, сек. | 600 | Нет | Время жизни идентификаторов состояний "state" для аутентификации по протоколу OAuth2 |
plm.login.oauth2.debug_print_sensitive_content | – | Переключатель | Параметр отсутствует | Нет | Записывать в лог персональные данные пользователей, получаемые от провайдеров, в случае возникновения ошибок |
Конфигурируя параметры очередного провайдера используйте с ними префикс
plm.login.oauth2.providers[i]. |
где i – порядковый номер конфигурируемого провайдера.
Система загружает все конфигурационные записи провайдеров, начиная с 0 до тех пор, пока в конфигурационном файле не будет пропущена запись
plm.login.oauth2.providers[i].enabled |
Как только для i-го провайдера НЕ обнаруживается эта запись, поиск записей останавливается.
Если необходимо отключить i-го провайдера, но оставить работающим (i+1)-го, то следует указать параметры
plm.login.oauth2.providers[i].enabled = false plm.login.oauth2.providers[i+1].enabled = true |
Параметр | Тип значения | Назначение | Состояние по умолчанию | Обязательный | Описание | |
---|---|---|---|---|---|---|
enabled | Булево | Переключатель | false | Да | Включить/выключить i-го провайдера | |
name | Строка | Текст | – | Да | Внутренний текстовый идентификатор провайдера. Используется в процессе перенаправлений пользователя между провайдером и веб-интерфейсом Polymatica Analytics | |
localized_name | Строка | Текст | Значение поля name | Нет | Локализованное название провайдера для веб-интерфейса | |
icon_uri | Строка | Относительный путь | – | Нет | Путь к иконке провайдера относительно корневой директории веб-интерфейса | |
client_id | Строка | Идентификатор | – | Да | Идентификатор приложения-клиента, зарегистрированный у провайдера | |
client_secret | Строка | Текст | – | Нет | Секретный ключ, привязанный к приложению-клиенту, зарегистрированному у провайдера | |
scope | Строка | Текст | – | Нет | Список scopes, запрос на доступ к которым отправляется провайдеру | |
group_for_users | Строка | Текст | – | Нет | Название группы Polymatica Analytics, в которую добавить пользователя после успешной аутентификации. В случае отсутствия группы, она будет создана. После завершения всех сессий, группа продолжает существование | |
flow | Строка | Идентификатор | pkce | Нет | Способ аутентификации OAuth2/OIDC. Принимает значения:
| |
authorization_add_redirect_parameter | – | Переключатель | Параметр отсутствует | Нет | Добавить в запрос клиента на аутентификацию (этап перенаправления клиента с Polymatica Analytics к провайдеру) параметр "redirect_uri" с адресом обратного перенаправления клиента в случае успешной аутентификации | |
token_add_client_secret | – | Переключатель | Параметр отсутствует | Нет | Добавить в запрос идентификационного токена параметр "client_secret" со значением секретного ключа приложения | |
token_pass_parameters_through_body | – | Переключатель | Параметр отсутствует | Нет | Передавать параметры запроса идентификационного токена через тело запроса. В противном случае параметры будут передаваться через сам URI-запрос (после символа "?") | |
use_groups_whitelist | – | Переключатель | Параметр отсутствует | Нет | При входе пользователя проверять список его доступных групп на соответствие "белому списку" заранее заданных имен групп (см. параметр groups_whitelist). Если пользователь имеет хотя бы одну группу из списка, он будет допущен в систему | |
groups_whitelist | Массив | Список строк | Параметр отсутствует | Нет, если отсутствует параметр use_groups_whitelist | Задать массив групп пользователей, которым разрешено входить в систему. | |
claims | Объект | Группа параметров | – | Да | Сопоставление полей идентификационного токена со смысловым значением (mapping). См. таблицу ниже | |
metadata | Объект | Группа параметров | – | Да | Настройка параметров адресов провайдера для выполнения операций в рамках OAuth2/OIDC. См. таблицу ниже | |
skip_token_permissions | – | Переключатель | Параметр отсутствует | Нет | При добавлении параметра, у учетной записи пользователя после успешной аутентификации не будут сбрасываться настроенные права доступа и не будут применяться описанные в токенах права доступа | |
skip_token_groups | – | Переключатель | Параметр отсутствует | Нет | После успешной аутентификации не назначать описанные в токене группы пользователю и не исключать пользователя из уже назначенных групп. Переданные в токене группы не будут созданы
| |
skip_token_roles | – | Переключатель | Параметр отсутствует | Нет | После успешной аутентификации не применять описанные в токене роли и не сбрасывать уже назначенные |
Группа параметров объекта claims служит для отображения ключей в идентификационном токене на смысловые значения (mapping). Все параметры claims необходимо указывать с префиксом
plm.login.oauth2.providers[i].claims. |
Параметр | Тип значения | Назначение | Состояние по умолчанию | Обязательный | Описание | ||
---|---|---|---|---|---|---|---|
login | Строка | Поле в идентификационном токене | – | Да | Название поля в идентификационном токене, содержащее логин пользователя
| ||
Строка | Поле в идентификационном токене | – | Нет | Название поля в идентификационном токене, содержащее адрес электронной почты пользователя | |||
fullname | Строка | Поле в идентификационном токене | – | Нет | Название поля в идентификационном токене, содержащее полное ФИО пользователя | ||
permissions | Строка | Поле в идентификационном токене | – | Нет | Название поля в идентификационном токене, содержащее список объектов, описывающих роли пользователя в системе Avanpost FAM | ||
groups | Строка | Поле в идентификационном токене | – | Нет | Название поля в идентификационном токене, которое должно содержать список групп Polymatica Analytics, в которые требуется включить пользователя | ||
roles | Строка | Поле в идентификационном токене | – | Нет | Название поля в идентификационном токене, которое должно содержать список групп Polymatica Analytics, по которым определяются доступные мультисферы для выдачи прав доступа пользователю | ||
elements_access[i].dims_regex | Строка | Регулярное выражение | Размерность, которую нужно найти в доступных мультисферах, получаемых через параметр Каждый i-ый индекс должен определять одну размерность | ||||
elements_access[i].claim | Массив строк | Объект в поле идентификационного токена | – | Нет | Элементы размерности Одному i-му параметру
|
Все параметры метаданных необходимо указывать с префиксом
plm.login.oauth2.providers[i].metadata. |
Параметр | Тип значения | Назначение | Состояние по умолчанию | Обязательный | Описание |
---|---|---|---|---|---|
url | Строка | Абсолютный URI | - | Да | Адрес провайдера OAuth2/OpenID Connect |
use_oidc_discovery | – | Переключатель | Параметр отсутствует | Нет | Обновлять параметры провайдера через протокол OIDC Discovery. Если провайдер не поддерживает этот протокол, то невозможность получить параметры приведет к ошибке |
skip_validation | – | Переключатель | Параметр отсутствует | Нет | Пропускать валидацию данных провайдера, полученных по протоколу OIDC Discovery. Может быть полезно в ситуациях, когда, к примеру, issuer, получаемый по протоколу OIDC Discovery, не совпадает с адресом провайдера |
expiration_time | Целое | Время, сек. | 600 | Нет | Время, в течение которого Polymatica Analytics считает данные провайдера, полученные по протоколу OIDC Discovery, актуальными. По истечении данного периода времени происходит обновление данных провайдера |
authorization_endpoint | Строка | Абсолютный URI | – | Да, если параметр use_oidc_discovery отсутствует | Адрес провайдера для перенаправления пользователя на этапе запроса аутентификации через провайдера |
token_endpoint | Строка | Абсолютный URI | – | Да, если параметр use_oidc_discovery отсутствует | Адрес провайдера для получения сервером Polymatica Analytics идентификационного токена пользователя, токена обновления, а также ключа для доступа к API провайдера |
userinfo_endpoint | Строка | Абсолютный URI | – | Да, если параметр use_oidc_discovery отсутствует | Адрес провайдера для получения дополнительных данных о пользователе. В некоторых случаях, при запросе данных пользователя по этому адресу, провайдер сообщает больше данных |
В разделе используются следующие определения (см. таблицу ниже).
Термин | Определение |
---|---|
Realm | Область провайдера |
Client | Клиент в области провайдера, представляющий приложение |
Group | Группа пользователей в области провайдера |
User | Пользователь в области провайдера |
Scope | Набор привилегий |
Mapper | Отображение |
Claim | Поле токена |
Авторизация пользователя включением в группу пользователей Polymatica Analytics. Группа указывается в конфигурации через параметр group_for_users.
При таком способе авторизации пользователя можно включить только в одну группу Polymatica Analytics. По умолчанию пользователь исключается из других групп (параметр skip_token_groups меняет поведение по умолчанию).
В этом примере предполагается, что в провайдере существуют область, клиент и пользователь, предназначенные для Polymatica Analytics. |
1. Определяем в файле конфигурации /etc/polymatica/polymatica.conf следующие параметры.
###### OAuth2/OpenID Connect # Включение поддержки OAuth2/OpenID Connect. plm.login.oauth2.enabled # Адрес площадки, с которой происходит обращение к провайдеру. plm.login.oauth2.redirect_hostname = https://analytics.example.com # Включение проверки сертификата провайдера. plm.login.oauth2.verify_ssl ### Определение параметров первого провайдера. plm.login.oauth2.providers[0].enabled = true # Произвольно выбранное обозначение провайдера. plm.login.oauth2.providers[0].name = KeycloackIdP # Изображение keycloak.png предварительно добавлено в директорию /usr/share/polymatica/web/images. plm.login.oauth2.providers[0].icon_uri = /images/keycloak.png # Значение client_id клиента Polymatica Analytics, заданное в провайдере. plm.login.oauth2.providers[0].client_id = ClientAnalytics # Значение client_secret, сгенерированное для ClientAnalytics в провайдере. plm.login.oauth2.providers[0].client_secret = Hn7BLFHejQolszjbAwuvmsCFiOEtesLA # Включение использования протокола OIDC Discovery. plm.login.oauth2.providers[0].metadata.use_oidc_discovery # Адрес issuer провайдера. plm.login.oauth2.providers[0].metadata.url = https://keycloak.example.com/auth/realms/Docs-realm # Для Keycloack требуется передавать адрес перенаправления, иначе возвращается ошибка "invalid_redirect_uri". plm.login.oauth2.providers[0].authorization_add_redirect_parameter # Для Keycloack требуется передавать значение client_secret, иначе возвращается ошибка "invalid_request", "Missing form parameter: grant_type". plm.login.oauth2.providers[0].token_add_client_secret # Для Keycloack требуется передавать значение client_secret в теле запроса. plm.login.oauth2.providers[0].token_pass_parameters_through_body # Группа пользователей в Polymatica Analytics. Может быть указана только одна группа в параметре. Когда параметр определен несколько раз, используется последнее определение. plm.login.oauth2.providers[0].group_for_users = Группа 1 # Список запрашиваемых scopes. plm.login.oauth2.providers[0].scope = openid profile email # Отображение поля токена preferred_username на логин аутентифицируемого пользователя. plm.login.oauth2.providers[0].claims.login = preferred_username # Отображение поля токена email на email аутентифицируемого пользователя. plm.login.oauth2.providers[0].claims.email = email |
2. Сохраняем изменения в файле и перезапускаем приложение.
systemctl restart polymatica.service |
3. Обращаемся к веб-интерфейсу приложения. Видим в правом нижнем углу области входа кнопку с изображением, которое мы задали параметром plm.login.oauth2.providers[0].icon_uri (см. рисунок ниже).
![]() |
По нажатию кнопки открывается веб-интерфейс провайдера на странице аутентификации. В случае успешной аутентификации провайдер перенаправляет на адрес, указанный в параметре plm.login.oauth2.redirect_hostname.
Авторизация пользователя включением в группы пользователей Polymatica Analytics. Список групп определяется из токена провайдера.
При таком способе авторизации пользователя можно включать в одну и более групп Polymatica Analytics. По умолчанию пользователь исключается из других групп (параметр skip_token_groups меняет поведение по умолчанию).
В этом примере предполагается, что в провайдере существуют область, клиент, группа и пользователь, включенный в группу, предназначенные для Polymatica Analytics. |
Необходимо, чтобы провайдер отправлял в токене список групп, в которые требуется включать пользователя. Настроим это.
1. Добавим в группу провайдера новый атрибут, значением которого будет список групп Polymatica Analytics.
Переходим в панели провайдера на вкладку Groups, открываем группу, переходим на вкладку Attributes. Добавляем атрибут с параметрами (см. рисунок ниже):
2. Создадим в области, где находится клиент Polymatica Analytics, новый набор привилегий для добавления через него атрибута группы в токен.
Переходим в панели провайдера на вкладку Client scopes, нажимаем кнопку Create client scope. Сохраняем набор с параметрами (см. рисунок ниже):
![]() |
3. Добавим в созданный набор привилегий отображение атрибута группы на поле токена.
Переходим в наборе на вкладку Mappers, нажимаем кнопку Configure a new mapper, во всплывающем окне выбираем User Attribute. Сохраняем отображение с параметрами (см. рисунок ниже):
![]() |
4. Добавим набор привилегий в наборы привилегий клиента.
Переходим в панели провайдера на вкладку Clients, открываем клиента, переходим на вкладку Client Scopes, нажимаем кнопку Add Client Scope. Во всплывающем окне отмечаем созданный ранее набор привилегий pa_access_scope, нажимаем Add → Optional (см. рисунок ниже).
На этом шаге настройка провайдера закончена.
Когда провайдер передает в токене список групп, нам необходимо, чтобы он использовался в Polymatica Analytics для включения в них пользователей. Настроим это.
1. Определяем в файле конфигурации /etc/polymatica/polymatica.conf следующие параметры.
###### OAuth2/OpenID Connect # Включение поддержки OAuth2/OpenID Connect. plm.login.oauth2.enabled # Адрес площадки, с которой происходит обращение к провайдеру. plm.login.oauth2.redirect_hostname = https://analytics.example.com # Включение проверки сертификата провайдера. plm.login.oauth2.verify_ssl ### Определение параметров первого провайдера. plm.login.oauth2.providers[0].enabled = true # Произвольно выбранное обозначение провайдера. plm.login.oauth2.providers[0].name = KeycloackIdP # Изображение keycloak.png предварительно добавлено в директорию /usr/share/polymatica/web/images. plm.login.oauth2.providers[0].icon_uri = /images/keycloak.png # Значение client_id клиента Polymatica Analytics, заданное в провайдере. plm.login.oauth2.providers[0].client_id = ClientAnalytics # Значение client_secret, сгенерированное для ClientAnalytics в провайдере. plm.login.oauth2.providers[0].client_secret = Hn7BLFHejQolszjbAwuvmsCFiOEtesLA # Включение использования протокола OIDC Discovery. plm.login.oauth2.providers[0].metadata.use_oidc_discovery # Адрес issuer провайдера. plm.login.oauth2.providers[0].metadata.url = https://keycloak.example.com/auth/realms/Docs-realm # Для Keycloack требуется передавать адрес перенаправления, иначе возвращается ошибка "invalid_redirect_uri". plm.login.oauth2.providers[0].authorization_add_redirect_parameter # Для Keycloack требуется передавать значение client_secret, иначе возвращается ошибка "invalid_request", "Missing form parameter: grant_type". plm.login.oauth2.providers[0].token_add_client_secret # Для Keycloack требуется передавать значение client_secret в теле запроса. plm.login.oauth2.providers[0].token_pass_parameters_through_body # Список запрашиваемых scopes. plm.login.oauth2.providers[0].scope = openid profile email pa_access_scope # Получение из поля токена логина аутентифицируемого пользователя. plm.login.oauth2.providers[0].claims.login = preferred_username # Получение из поля токена email аутентифицируемого пользователя. plm.login.oauth2.providers[0].claims.email = email # Получение из поля токена групп пользователей для включения аутентифицируемого пользователя. plm.login.oauth2.providers[0].claims.groups = pa_groups_claim |
2. Сохраняем изменения в файле и перезапускаем приложение.
systemctl restart polymatica.service |
3. Аналогично, как в предыдущем примере, обращаемся к веб-интерфейсу приложения, нажимаем кнопку входа через провайдера. В случае успешной аутентификации провайдер перенаправляет на адрес, указанный в параметре plm.login.oauth2.redirect_hostname.
Авторизация пользователя предоставлением прямых прав доступа. Права доступа определяются из токена провайдера.
При таком способе авторизации пользователь НЕ включается в группы Polymatica Analytics. Также по умолчанию пользователь исключается из других групп (параметр skip_token_groups меняет поведение по умолчанию).
В этом примере предполагается, что в провайдере существуют область, клиент, группа и пользователь, включенный в группу, предназначенные для Polymatica Analytics. |
Необходимо, чтобы провайдер отправлял в токене массив групп, из которых система формирует список доступных мультисфер. Настроим это.
1. Добавим в группу провайдера новый атрибут, значением которого будет группа Polymatica Analytics.
Переходим в панели провайдера на вкладку Groups, открываем группу, переходим на вкладку Attributes. Добавляем атрибут с параметрами (см. рисунок ниже):
Так как Polymatica Analytics ожидает массив, создаем отдельный атрибут pa_roles_attribute для каждой группы.
2. Создадим в области, где находится клиент Polymatica Analytics, новый набор привилегий для добавления через него атрибута группы в токен.
Переходим в панели провайдера на вкладку Client scopes, нажимаем кнопку Create client scope. Сохраняем набор с параметрами (см. рисунок ниже):
![]() |
3. Добавим в созданный набор привилегий отображение атрибута группы на поле токена.
Переходим в наборе на вкладку Mappers, нажимаем кнопку Configure a new mapper , во всплывающем окне выбираем User Attribute. Сохраняем отображение с параметрами (см. рисунок ниже):
4. Добавим в созданный набор привилегий явно определенное поле токена.
Переходим в наборе на вкладку Mappers, нажимаем кнопку Configure a new mapper , во всплывающем окне выбираем Hardcoded claim. Сохраняем отображение с параметрами (см. рисунок ниже):
Token Claim Name: attributes;
Поле токена обязательно имеет название attributes! |
Claim value: объекты с массивами элементов размерности:
{ "pa_elements_access_claim_fo": [ "Центральный федеральный округ", "Южный федеральный округ" ], "pa_elements_access_claim_sub": [ "Астраханская область", "Белгородская область" ] } |
5. Добавим набор привилегий в наборы привилегий клиента.
Переходим в панели провайдера на вкладку Clients, открываем клиента, переходим на вкладку Client Scopes, нажимаем кнопку Add Client Scope. Во всплывающем окне отмечаем созданный ранее набор привилегий pa_access_scope, нажимаем Add → Optional (см. рисунок ниже).
На этом шаге настройка провайдера закончена.
Настроим правила определения прав доступа пользователя.
1. Определяем в файле конфигурации /etc/polymatica/polymatica.conf следующие параметры.
###### OAuth2/OpenID Connect # Включение поддержки OAuth2/OpenID Connect. plm.login.oauth2.enabled # Адрес площадки, с которой происходит обращение к провайдеру. plm.login.oauth2.redirect_hostname = https://analytics.example.com # Включение проверки сертификата провайдера. plm.login.oauth2.verify_ssl ### Определение параметров первого провайдера. plm.login.oauth2.providers[0].enabled = true # Произвольно выбранное обозначение провайдера. plm.login.oauth2.providers[0].name = KeycloackIdP # Изображение keycloak.png предварительно добавлено в директорию /usr/share/polymatica/web/images. plm.login.oauth2.providers[0].icon_uri = /images/keycloak.png # Значение client_id клиента Polymatica Analytics, заданное в провайдере. plm.login.oauth2.providers[0].client_id = ClientAnalytics # Значение client_secret, сгенерированное для ClientAnalytics в провайдере. plm.login.oauth2.providers[0].client_secret = Hn7BLFHejQolszjbAwuvmsCFiOEtesLA # Включение использования протокола OIDC Discovery. plm.login.oauth2.providers[0].metadata.use_oidc_discovery # Адрес issuer провайдера. plm.login.oauth2.providers[0].metadata.url = https://keycloak.example.com/auth/realms/Docs-realm # Для Keycloack требуется передавать адрес перенаправления, иначе возвращается ошибка "invalid_redirect_uri". plm.login.oauth2.providers[0].authorization_add_redirect_parameter # Для Keycloack требуется передавать значение client_secret, иначе возвращается ошибка "invalid_request", "Missing form parameter: grant_type". plm.login.oauth2.providers[0].token_add_client_secret # Для Keycloack требуется передавать значение client_secret в теле запроса. plm.login.oauth2.providers[0].token_pass_parameters_through_body # Список запрашиваемых scopes. plm.login.oauth2.providers[0].scope = openid profile email pa_access_scope # Получение из поля токена логина аутентифицируемого пользователя. plm.login.oauth2.providers[0].claims.login = preferred_username # Получение из поля токена email аутентифицируемого пользователя. plm.login.oauth2.providers[0].claims.email = email # Получение из поля токена групп пользователей Polymatica Analytics, из которых формируется список доступных мультисфер. plm.login.oauth2.providers[0].claims.roles = pa_roles_claim ### Далее следуют правила, по которым определяются доступные элементы в размерностях доступных мультисфер. # Правило, по которому в доступных мультисферах следует найти размерность «Федеральный округ» и сделать в ней доступными элементы из списка токена pa_elements_access_claim_fo. plm.login.oauth2.providers[0].claims.elements_access[0].claim = pa_elements_access_claim_fo plm.login.oauth2.providers[0].claims.elements_access[0].dims_regex = Федеральный округ # Правило, по которому в доступных мультисферах следует найти размерность, используя регулярное выражение «Субъект.*», и сделать в ней доступными элементы из списка токена pa_elements_access_claim_sub. plm.login.oauth2.providers[0].claims.elements_access[1].claim = pa_elements_access_claim_sub plm.login.oauth2.providers[0].claims.elements_access[1].dims_regex = Субъект.* |
2. Сохраняем изменения в файле и перезапускаем приложение.
systemctl restart polymatica.service |
3. Аналогично, как в предыдущем примере, обращаемся к веб-интерфейсу приложения, нажимаем кнопку входа через провайдера. В случае успешной аутентификации, провайдер перенаправляет на адрес, указанный в параметре plm.login.oauth2.redirect_hostname.
Polymatica Analytics позволяет настроить белый список групп. Когда применяется белый список, авторизоваться могут только пользователи, включенные в группы из белого списка.
Чтобы использовать белый список, определяем для провайдера параметры белого списка.
###### OAuth2/OpenID Connect # Включение поддержки OAuth2/OpenID Connect. plm.login.oauth2.enabled # Адрес площадки, с которой происходит обращение к провайдеру. plm.login.oauth2.redirect_hostname = https://analytics.example.com # Включение проверки сертификата провайдера. plm.login.oauth2.verify_ssl ### Определение параметров первого провайдера. plm.login.oauth2.providers[0].enabled = true # Произвольно выбранное обозначение провайдера. plm.login.oauth2.providers[0].name = KeycloackIdP # Изображение keycloak.png предварительно добавлено в директорию /usr/share/polymatica/web/images. plm.login.oauth2.providers[0].icon_uri = /images/keycloak.png # Значение client_id клиента Polymatica Analytics, заданное в провайдере. plm.login.oauth2.providers[0].client_id = ClientAnalytics # Значение client_secret, сгенерированное для ClientAnalytics в провайдере. plm.login.oauth2.providers[0].client_secret = Hn7BLFHejQolszjbAwuvmsCFiOEtesLA # Включение использования протокола OIDC Discovery. plm.login.oauth2.providers[0].metadata.use_oidc_discovery # Адрес issuer провайдера. plm.login.oauth2.providers[0].metadata.url = https://keycloak.example.com/auth/realms/Docs-realm # Для Keycloack требуется передавать адрес перенаправления, иначе возвращается ошибка "invalid_redirect_uri". plm.login.oauth2.providers[0].authorization_add_redirect_parameter # Для Keycloack требуется передавать значение client_secret, иначе возвращается ошибка "invalid_request", "Missing form parameter: grant_type". plm.login.oauth2.providers[0].token_add_client_secret # Для Keycloack требуется передавать значение client_secret в теле запроса. plm.login.oauth2.providers[0].token_pass_parameters_through_body # Список запрашиваемых scopes. plm.login.oauth2.providers[0].scope = openid profile email pa_access_scope # Получение из поля токена логина аутентифицируемого пользователя. plm.login.oauth2.providers[0].claims.login = preferred_username # Получение из поля токена email аутентифицируемого пользователя. plm.login.oauth2.providers[0].claims.email = email # Получение из поля токена групп пользователей для включения аутентифицируемого пользователя. plm.login.oauth2.providers[0].claims.groups = pa_groups_claim # Включение белого списка групп для этого провайдера. plm.login.oauth2.providers[0].use_groups_whitelist # Определение списка групп. # Обратите внимание: начиная с закомментированной строки список групп не обрабатывается системой. plm.login.oauth2.providers[0].groups_whitelist[0] = users_group_1 plm.login.oauth2.providers[0].groups_whitelist[1] = users_group_2 # plm.login.oauth2.providers[0].groups_whitelist[2] = users_group_3 plm.login.oauth2.providers[0].groups_whitelist[3] = users_group_4 plm.login.oauth2.providers[0].groups_whitelist[4] = users_group_5 |
При попытке авторизации пользователя, не включенного в группу из белого списка, интерфейс Polymatica Analytics сообщает о невозможности соединения, а в лог записывается событие «Failed to handle redirected user from OAuth2 provider: user has no any whitelisted group to log in through this OAuth2 provider».