Интеграция с Keycloak

Интеграция с Keycloak

Интеграция с Keycloak ​

SmartDCIM поддерживает авторизацию посредством сервера Keycloak.

NOTE

Поддерживается интеграция только с Keycloak версии 21.1.1.

Настройка сервера ​

Для настройки взаимодействия между сервером системы SmartDCIM и внешним сервером Keycloak необходимо получить хотя бы один из параметров:

  • Realm Certificate, которым сервер Keycloak подписывает пользовательские токены,
  • файл настроек соединения для Backend-клиента.

NOTE

Настройка клиента и получение параметров осуществляются в консоли администратора Keycloak.

Realm Certificate ​

Для получения Realm Certificate необходимо:

  1. Выбрать требуемую область (Realm) из списка (здесь - SAYMON):

Выбор области в Keycloak 2. В секции Realm settings на вкладке Tokens уточнить алгоритм подписи токенов в поле Default Signature Algorithm (здесь - RS256):

Выбор алгоритма подписи токенов 3. На вкладке Keys найти cертификат для данного алгоритма:

Вкладка Keys 4. Кнопка в соответствующей строке открывает искомый сертификат:

Сертификат ключа на вкладке Keys

Данные рекомендуется сохранить в файл keycloak_realm_certificate.

Backend-клиент ​

Клиенты – это параметры соединения с Keycloak-сервером для внешних приложений, которые авторизуют пользователей.

Главной особенностью Backend-клиента является наличие собственной аутентификации: такой клиент получает конфиденциальный доступ по секретному ключу.

Для настройки Backend-клиента необходимо:

  1. Выбрать требуемую область (Realm) из списка (здесь - SAYMON):

Выбор области в Keycloak 2. В секции Clients нажать кнопку :

Секция Clients 3. Ввести имя Backend-клиента в поле Client ID:

Создание клиента, вкладка General Settings

и нажать кнопку . 4. Слайдер Client authentication установить в положение On:

Создание клиента, вкладка Capability config

и нажать кнопку . 5. B списке Action выбрать Download adapter config:

Кнопка Download adapter config 6. Нажать кнопку , чтобы получить файл настроек соединения для Backend-клиента в формате JSON:

Файл настроек соединения для Backend-клиента

Конфигурация сервера SmartDCIM ​

Для взаимодействия с сервером Keycloak на сервере "SmartDCIM" необходимо:

  1. Добавить раздел Keycloak в конфигурационный файл сервера /etc/saymon/saymon-server.conf:

"keycloak": { "realm_certificate": "<данные keycloak_realm_certificate>", "realm_certificate_file": "/etc/saymon/keycloak_realm_certificate", "config_file": "/etc/saymon/keycloak_backend.json" }

где:

Параметры перечислены в порядке понижения приоритета при одновременном указании. Для работы с Keycloak достаточно указать один из параметров. 2. Перезапустить службу saymon-server:

$ sudo service saymon-server restart

Настройка web-интерфейса ​

Для возможности авторизации пользователей посредством Keycloak через web-интерфейс системы SmartDCIM необходимо получить файл настроек соединения Frontend-клиента.

NOTE

Настройка клиента и получение файла настроек соединения осуществляются в консоли администратора Keycloak.

Frontend-клиент ​

Главной особенностью Frontend-клиента является отсутствие собственной аутентификации: данный клиент получает публичный доступ.

Для настройки Frontend-клиента необходимо:

  1. Выбрать требуемую область (Realm) из списка (здесь - SAYMON):

Выбор области в Keycloak 2. В секции Clients нажать кнопку :

Секция Clients 3. Ввести имя Frontend-клиента в поле Client ID:

Создание клиента, вкладка General Settings

и нажать кнопку . 4. Слайдер Client authentication установить в положение Off:

Создание клиента, вкладка Capability config

и нажать кнопку . 5. На вкладке Settings в разделе Access settings указать корректные URI-адреса, с которых будет осуществляться доступ к Keycloak-серверу, и на которые будут перенаправляться пользователи после успешной аутентификации и выхода:

Раздел Access Settings

и нажать кнопку . 6. B списке Action выбрать Download adapter config:

Кнопка Download adapter config 7. Нажать кнопку , чтобы получить файл настроек соединения для Frontend-клиента в формате JSON:

Файл настроек соединения для Frontend-клиента

Конфигурация web-интерфейса системы SmartDCIM ​

Для активации формы авторизации через Keycloak в web-интерфейсе системы необходимо:

  1. Добавить на сервере системы SmartDCIM раздел Authentication в конфигурационный файл клиента /etc/saymon/saymon-client.yaml:

authentication: availableMethods: - native - keycloak methodByDefault: keycloak services: keycloak: configUri: saymon.local/keycloak_frontend.json legacySupport: false

где:

  • availableMethods – список доступных для пользователей методов аутентификации;
  • methodByDefault – метод аутентификации, который будет предложен пользователю сразу при отображении аутентификационной формы;
  • configUri – файл настроек соединения, сгенерированный сервером Keycloak для Frontend-клиента.

Файл настроек соединения для Frontend-клиента необходимо поместить в каталог /etc/saymon. 2. Обновить страницу системы SmartDCIM в web-браузере.