
Интеграция с Keycloak
Keycloak – это система идентификации и управления доступом, которая берет на себя всю работу с авторизацией и аутентификацией.
Для начала необходимо определиться с основными понятиями, которые будут использоваться при настройке Keycloak:
Realm (Область). Изолированное пространство. У каждого Realm свои пользователи, клиенты, роли и политики. У вас может быть один Realm для внутренних сотрудников, другой – для внешних клиентов.
User (Пользователь). Учётная запись пользователя, под которой он будет входить в систему.
Client (Клиент). Приложение (Infrascope), которое Keycloak будет использовать для аутентификации.
Group (Группа). Способ объединить пользователей для удобного управления правами.
Далее необходимо настроить Keycloak и добавить в него Infrascope в качестве приложения:
Создайте Realm. Для этого перейдите на вкладку "Manage realms" на панели администратора и нажмите кнопку "Create realm". Заполните необходимые поля и нажмите "Create".

Создайте User. Для этого перейдите на вкладку "Users" и нажмите кнопку "Add user". Заполните необходимые поля и нажмите "Create". Далее необходимо назначить новому пользователю пароль для входа. Для этого на открывшейся странице перейдите на вкладку "Credentials", нажмите на кнопку "Set password", установите пароль и повторите его. Оставьте параметр Temporary активным, чтобы новый пользователь сменил свой пароль после первой авторизации в системе.

Пользователь должен быть добавлен в систему Infrascope. Создайте Client. Для этого перейдите на вкладку "Clients" и нажмите на кнопку "Create client". Заполните необходимые поля и нажмите "Save".


Настройте атрибуты Role List. Для этого перейдите на вкладку Client scopes > role_list > Mappers > role_list, включите Single Role Attribute и нажмите "Save".

После настройки Keycloak необходимо получить метаданные для настройки Infrascope. Для этого перейдите на вкладку "Realm settings" и нажмите "SAML 2.0 Identity Provider Metadata". Будет скачан XML-файл с метаданными Keycloak.
Далее необходимо задать дополнительные конфигурации в Infrascope:
Определите необходимые параметры в Infrascope.
Перейдите в раздел Администрирование > Настройка системы.
Откройте вкладку "Интеграции".
Нажмите кнопку
рядом с пунктом SAML Configuration.Заполните следующие параметры, связанные с Keycloak:
Имя параметра | Значение | Пример значения |
SAML ID сущности | Значение entityID из скачанного XML-файла | https://infrascope-sso-test.ngrsoftlab.ru:8443/realms/myrealm |
SAML URL | entityID/protocol/saml/clients/(поле "IDP-Initiated SSO URL name" из настроек Client, см. рисунок Создание клиента) | https://infrascope-sso-test.ngrsoftlab.ru:8443/realms/myrealm/protocol/saml/clients/25.1 |
SAML Logout URL | Значение Location из скачанного XML-файла | https://infrascope-sso-test.ngrsoftlab.ru:8443/realms/myrealm/protocol/saml |
SAML Remote URL | Значение entityID из скачанного XML-файла | https://infrascope-sso-test.ngrsoftlab.ru:8443/realms/myrealm |
SAML X509 Certf. Key | Значение X509Certificate из скачанного XML-файла | -----BEGIN CERTIFICATE ----- |
Конфигурация SAML:

Скачанный XML-файл с метаданными Keycloak:

Добавьте TomcatCorsFilter в файл конфигурации tomcat.
После установки необходимой конфигурации вам нужно установить TomcatCorsFilter в конфигурации tomcat:
Откройте файл web.xml в следующем каталоге /u01/netright-tomcat/conf
Найдите часть TomcatCorsFilter и измените значение параметра cors.allowed.origins как показано ниже.
<filter-name>TomcatCorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>10.130.6.90,https://infrascope-sso-test.ngrsoftlab.ru:8443</param-value> </init-param>| Если не удалось настроить Keycloak так, чтобы он отправлял заголовок Origin, добавьте дополнительно null в <param-value>: |
<param-value>null,10.130.6.90,https://infrascope-sso-test.ngrsoftlab.ru:8443>Была ли эта страница полезной?
Спасибо за отзыв!
Спасибо, мы учтём это для улучшения документации.