Пример настройки Keycloak

Предварительные условия

  1. Keycloak установлен и запущен на одном хосте с платформой Visiology.

  2. Настроен HTTPS.

Настройка на стороне Keycloak

  1. Войдите в консоль администратора, перейдите в Clients > Clients list и нажмите кнопку Create client, чтобы создать нового клиента Keycloak:

     

  2. В General Settings выберите тип клиента OpenID Connect и укажите ID клиента:

  3. На следующем шаге задайте настройки, как показано ниже:

Клиент для платформы создан, теперь перейдем к его настройке.

  1. Включите использование клиента, переместив переключатель в правом верхнем углу в положение Enabled, и пропишите настройки для логина и логаута:

     

     

  2. На вкладке Credentials выберите способ аутентификации и сохраните куда-нибудь Client secret - это значение нужно будет использовать в настройках платформы:

Настройка на стороне платформы Visiology

В боковом меню панели администрирования платформы перейдите в раздел Авторизация > 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

При создании и последующей авторизации пользователя возможна настройка импорта данных, полученных из используемой внешней системы авторизации.

Настройка атрибутов

Для настройки соответствия атрибутов выполните следующие шаги:

  1. Перейдите на вкладку Сопоставление атрибутов и включите сопоставление атрибутов:

  2. Задайте параметры сопоставления:

    • Фамилия – атрибут, в котором хранится фамилия пользователя;

    • Имя – атрибут, в котором хранится имя пользователя;

    • Отчество – атрибут, в котором хранится отчество пользователя;

    • Email атрибут, в котором хранится адрес электронной почты пользователя.

    • Дополнительные атрибуты используются для разграничения прав доступа к данным. Подробно описание см. в секции Разграничение прав доступа к данным ниже.

  3. Для сохранения настроек нажмите Сохранить.

Если сопоставление атрибутов не включено, то при создании пользователей, Фамилия будет получена из атрибута для UserName claim на вкладке Настройка внешней авторизации.

Настройка ролей

Для настройки соответствия ролей пользователей во внешнем провайдере и ролей в Visiology выполните следующие шаги:

  1. Перейдите на вкладку  Сопоставление ролей и включите сопоставление ролей:

  2. Задайте параметр JMESPath, по которому будут получены роли во внешнем провайдере. Пользователям будут присваиваться значения ролей, полученные из этого параметра.

  3. Опция Не удалять уже установленные роли пользователей:

    • если опция включена, то в случае удаления роли пользователя во внешнем провайдере, при авторизации в Visiology, удаленная роль не будет отозвана из назначенных ранее пользователю ролей;

    • если опция отключена, то удаленные у пользователя роли во внешнем провайдере будут также удалены у пользователя в платформе.

  4. Для сохранения настроек нажмите Сохранить.

Если сопоставление ролей выключено, то при создании пользователя из внешнего провайдера, новому пользователю будет присвоена роль Все авторизованные пользователи.

Разграничение прав доступа к данным

Вы можете настроить разграничение прав доступа к данным в  Visiology на основе атрибутов пользователей, хранящихся во внешнем провайдере. Для этого необходимо сделать следующее:

  1. Задайте необходимые ограничения прав доступа в платформе.

  2. Задайте соответствие атрибута платформы (соответствующего настроенному ограничению) атрибуту внешнего провайдера.

Добавление атрибута

Чтобы задать разграничение прав доступа к данным на основе данных внешнего провайдера OpenID Connect, необходимо сделать следующее:

  1. Перейдите на вкладку  Сопоставление атрибутов и нажмите Добавить сопоставление (сопоставление атрибутов должно быть включено):

  2. Задайте наименование Атрибута платформы, который был создан в настройках ограничения прав доступа в платформе Visiology и для которого уже настроены права доступа. Для этого атрибута платформы задайте наименование атрибута LDAP, который был предварительно настроен в LDAP.  Именно по его значениям и будут сравниваться настроенные права доступа в атрибуте платформы.

  3. Для сохранения настроек нажмите Сохранить.

Удаление атрибута

Чтобы удалить соответствие для атрибутов, необходимо нажать на кнопку Удалить напротив сопоставления:

 

Фильтрация при автоматическом создании новых пользователей (OpenID Connect)

Чтобы ограничить возможность автоматического создания пользователей, задайте JMESPath-выражение, по которому будет происходить фильтрация при получении данных из внешнего провайдера. Для этого выполните следующие шаги:

  1. Перейдите на вкладку Создание новых пользователей в разделе OpenID Connect, выберите Использовать JMESPath выражение и задайте JMESPath выражение:

  2. Сохраните настройки, нажав на на кнопку Сохранить.


Смотрите также