Интеграция с Keycloak
Для пользователей Центрального Пульта предусмотрена возможность авторизации посредством сервера Keycloak.
Настройка сервера
Для настройки взаимодействия между сервером Центрального Пульта и внешним сервером Keycloak необходимо получить хотя бы один из параметров:
-
Realm Certificate, которым сервер Keycloak подписывает пользовательские токены,
-
файл настроек соединения для Backend-клиента.
Настройка клиента и получение параметров осуществляются в консоли администратора Keycloak. |
Realm Certificate
Для получения Realm Certificate необходимо:
-
Выбрать требуемую область (Realm) из списка (здесь - SAYMON):
-
В секции Realm settings на вкладке Tokens уточнить алгоритм подписи токенов в поле Default Signature Algorithm (здесь - RS256):
-
На вкладке Keys найти cертификат для данного алгоритма:
-
Кнопка в соответствующей строке открывает искомый сертификат:
Данные рекомендуется сохранить в файл keycloak_realm_certificate.
Backend-клиент
Клиенты - это параметры соединения с Keycloak-сервером для внешних приложений, которые авторизуют пользователей.
Главной особенностью Backend-клиента является наличие собственной аутентификации: такой клиент получает конфиденциальный доступ по секретному ключу.
Для настройки Backend-клиента необходимо:
-
Выбрать требуемую область (Realm) из списка (здесь - SAYMON):
-
В секции Clients нажать кнопку :
-
Ввести имя Backend-клиента в поле Client ID:
и нажать кнопку .
-
Слайдер Client authentication установить в положение On:
и нажать кнопку .
-
B списке Action выбрать Download adapter config:
-
Нажать кнопку , чтобы получить файл настроек соединения для Backend-клиента в формате JSON:
Конфигурация сервера Центрального Пульта
Для взаимодействия с сервером Keycloak на сервере Центрального Пульта необходимо:
-
Добавить раздел 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" }
где:
-
realm_certificate - данные Keycloak Realm Certificate;
-
realm_certificate_file - путь к файлу с Keycloak Realm Certificate;
-
config_file - путь к файлу настроек соединения, сгенерированному сервером Keycloak для Backend-клиента.
Параметры перечислены в порядке понижения приоритета при одновременном указании. Для работы с Keycloak достаточно указать один из параметров.
-
-
Перезапустить службу saymon-server:
$ sudo service saymon-server restart
Настройка web-интерфейса
Для возможности авторизации пользователей посредством Keycloak через web-интерфейс Центрального Пульта необходимо получить файл настроек соединения Frontend-клиента.
Настройка клиента и получение файла настроек соединения осуществляются в консоли администратора Keycloak. |
Frontend-клиент
Главной особенностью Frontend-клиента является отсутствие собственной аутентификации: данный клиент получает публичный доступ.
Для настройки Frontend-клиента необходимо:
-
Выбрать требуемую область (Realm) из списка (здесь - SAYMON):
-
В секции Clients нажать кнопку :
-
Ввести имя Frontend-клиента в поле Client ID:
и нажать кнопку .
-
Слайдер Client authentication установить в положение Off:
и нажать кнопку .
-
На вкладке Settings в разделе Access settings указать корректные URI-адреса, с которых будет осуществляться доступ к Keycloak-серверу, и на которые будут перенаправляться пользователи после успешной аутентификации и выхода:
и нажать кнопку .
-
B списке Action выбрать Download adapter config:
-
Нажать кнопку , чтобы получить файл настроек соединения для Frontend-клиента в формате JSON:
Конфигурация web-интерфейса Центрального Пульта
Для активации формы авторизации через Keycloak в web-интерфейсе системы необходимо:
-
Добавить на сервере Центрального Пульта раздел Authentication в конфигурационный файл клиента
/etc/saymon/saymon-client.yaml
:authentication: availableMethods: - "native" - "keycloak" methodByDefault: "keycloak" services: keycloak: configUri: keycloak_frontend.json
где:
-
availableMethods - список доступных для пользователей методов аутентификации;
-
methodByDefault - метод аутентификации, который будет предложен пользователю сразу при отображении аутентификационной формы;
-
configUri - файл настроек соединения, сгенерированный сервером Keycloak для Frontend-клиента.
Файл настроек соединения для Frontend-клиента необходимо поместить в каталог /etc/saymon
.
-
-
Обновить страницу Центрального Пульта в web-браузере.