Пример настройки keycloak
Вводные данные:
Keycloak поднят на одном хосте с платформой.
Насторен HTTPS.
Настройка на стороне keycloak
Заходим в консоль администратора и создаём нового клиента keycloak:
Главные настройки - выбираем тип клиента - OpenID Connect и ID клиента.
3.
Клиент для платформы создан, переходим к его настройке.
4. Включаем использование клиента. Прописываем настройки для логина и логаута.
5. Во вкладке Credentials выбираем способ аутентификации и сохраняем Client secret - это значение нужно будет прописать в настройках платформы.
Настройка на стороне платформы
На портале администрирования платформы в левом боковом меню переходим в раздел Авторизация - OpenID Connect.
UserName claim – можно установить любое наименование из токена, например, preferred_username.
Repsonse type - проверка аутентификации через Implicit Flow (id_token)
Authentication scheme – схема аутентификации.
Authority – путь до сервиса авторизации (для Keycloak: {протокол}://{домен Провайдера>}/auth/realms/{наименование_Realm}).
Client id – идентификатор клиента из Провайдера.
Client secret – скопировать из настроек клиента у Провайдера (например, в Keycloak - вкладка credentials).
Callback path – путь для обработки обратного вызова аутентификации (заполните, если отличается от "/signin-oidc").
Scope – список запрашиваемых разрешений (например, «openid profile role»).
Resource – идентификатор ресурса (не обязательно).
Claims source – источник клеймов
После применения настроек не забудьте сменить тип авторизации в левом боковом меню.
Настройка соответствия OpenID Connect
При создании и последующей авторизации пользователя возможна настройка импорта данных, полученных из используемой внешней системы авторизации.
Настройка атрибутов
Для настройки соответствия атрибутов:
Перейдите на вкладку “Сопоставление атрибутов“.
Включите сопоставление атрибутов, нажав кнопку "Включить сопоставление атрибутов".
Задайте параметры сопоставления:
Фамилия – атрибут, в котором хранится фамилия пользователя;
Имя – атрибут, в котором хранится имя пользователя;
Отчество – атрибут, в котором хранится отчество пользователя;
Email – атрибут, в котором хранится email пользователя.
Дополнительные атрибуты – используются для разграничения прав доступа к данным. Подробно описание см. в Разграничение прав доступа к данным
Для сохранения настроек нажмите “Сохранить“.
Если сопоставление атрибутов не включено, то при создании пользователей, Фамилия будет получена из атрибута для "UserName claim" на вкладке Настройка внешней авторизации.
Настройка ролей
Для настройки соответствия ролей пользователей во внешнем провайдере и ролям в Visiology:
Перейдите на вкладку “Сопоставление ролей“.
Выберите "Включить сопоставление ролей".
Задайте параметр "JMESPath", по которому будут получены роли во внешнем Провайдере. Пользователям будут присваиваться значения ролей, полученные из этого параметра.
Не удалять уже установленные роли пользователей:
если опция включена, то в случае удаления роли пользователя во внешнем Провайдере, при авторизации в Visiology, удаленная роль не будет отозвана из назначенных ранее Пользователю ролей;
если опция отключена, то удаленные у пользователя роли во внешнем Провайдере будут также удалены у пользователя в Платформе.
Для сохранения настроек нажмите “Сохранить“.
Если Сопоставление ролей выключено, то при создании пользователя из внешнего Провайдера, новому пользователю будет присвоена роль "Все авторизованные пользователи".
Разграничение прав доступа к данным
Вы можете настроить разграничение на доступ к данным в Visiology на основе атрибутов Пользователей, хранящихся во внешнем провайдере. Для этого необходимо:
Задать необходимые ограничения прав доступа в Платформе.
Задать соответствие атрибута платформы (соответствующего настроенному ограничению) атрибуту внешнего провайдера.
Добавить атрибут
Чтобы задать разграничение прав доступа к данным на основе данных внешнего провайдера OpenID Connect:
Перейдите на вкладку “Сопоставление атрибутов“.
Нажмите “Добавить сопоставление“ (должно быть выбрано "Включить сопоставление атрибутов").
Задайте наименование "Атрибута платформы", который был создан в Настройках ограничения прав доступа в Платформе и для которого уже настроены права доступа. Для этого "Атрибута платформа" задайте наименование "Атрибута LDAP", который был предварительно настроен в LDAP. Именно по его значениям и будут сравниваться настроенные права доступа в "Атрибут платформы".
Для сохранения настроек нажмите “Сохранить“.
Удалить атрибут
Чтобы удалить соответствие для атрибутов:
Выберите сопоставления для удаления и нажмите на кнопку "Удалить".
Фильтрация при автоматическом создании новых пользователей (OpenID Connect)
Чтобы ограничить возможность автоматического создания Пользователей, задайте JMESPath выражение, по которому будет происходить фильтрация при получении данных из внешнего Провайдера. Для этого:
Перейдите в раздел "OpenID Connect", "Создание новых пользователей".
Выберите "Использовать JMESPath выражение".
Задайте "JMESPath выражение".
Сохраните настройки нажатием на “Сохранить“.