Интеграция Space Cloud и Keycloak
Модуль управления облаком поддерживает единый вход (SSO) через систему Keycloak. Для настройки требуется предварительная конфигурация на стороне Keycloak.
Keycloak - это программное обеспечение с открытым исходным кодом для реализации SSO аутентификации с возможностью управления доступом. Подробнее ознакомиться с документацией Keycloak можно на официальном сайте разработчика.
Узнать подробнее о настройке SSO аутентификации можно в разделе Настройки.
Настройка Keycloak
Создание области
- Авторизоваться в интерфейсе Keycloak.
- Перейти в раздел Manage realms (1).
-
Создать новую область с помощью кнопки Create realm (2).
-
В открывшемся окне указать имя новой области в поле Realm name (3).
- Активировать область, включив параметр Enabled (4).
-
Завершить создание области с помощью кнопки Create (5).
Создание клиента
- Перейти в раздел «Clients» (8).
-
Создать клиента для созданной области (7) с помощью кнопки Create client (9).
-
На шаге «General settings» (10):
-
Выбрать в поле «Client Type» (11) - «OpenID Connect».
-
Указать идентификатор «Client ID» (12).
Значение «Client ID» потребуется указать во время настройки SSO аутентификации.
-
-
Перейти на следующий шаг с помощью кнопки Next (13).
-
На шаге «Capability config» (14) активировать опцию «Client authentication» (15).
-
Перейти на следующий шаг с помощью кнопки Next (13).
-
На шаге «Login settings» (16):
-
Указать в поле «Valid redirect URIs» (17) путь с указанием протокола переадресации пользователя после авторизации:
https://FQDN_CLOUD/auth/keycloak/callback -
Указать полное доменное имя в поле «Web origins» (18):
https://FQDN_CLOUD
-
-
Завершить создание клиента с помощью кнопки Save (19).
Создание и настройка набора конфигураций
- Перейти в раздел «Client scopes» (20).
-
Создать набор конфигураций для новой области (7) с помощью кнопки Create client scope (21).
-
В открывшемся окне настроить параметры:
- Указать имя в поле «Name» (22).
- Указать тип в поле «Type» (23) – «Default».
- Активировать параметры «Include in token scope» (24) и «Include in OpenID Provider Metadata» (25).
-
Завершить создание набора конфигураций с помощью кнопки Save (26).
-
В разделе «Client scopes» (20) выбрать созданный набор конфигураций client scope (22).
- В окне детализации перейти во вкладку «Mappers» (26).
-
Нажать кнопку Configure a new mapper (27).
-
В окне «Configure a new mapper» выбрать параметр «User Client Role» (29).
-
В форме «Add mapper» настроить параметры сопоставления:
- Указать имя сопоставления в поле «Name» (30).
-
Указать идентификатор созданного клиента в поле «Client ID» (31).
Если этот параметр не задан, то в токен будут добавлены роли всех клиентов.
-
Указать имя заявки на получение токена в поле «Token Claim Name» (32).
- Активировать параметры «Add to ID token» (33), «Add to access token» (34) и «Add to userinfo» (35).
-
Сохранить параметры с помощью кнопки Save (36).
-
Во вкладке «Mappers» (26) в меню «Add mapper» (37) выбрать пункт «By configuration» (38).
-
В окне «Configure a new mapper» выбрать тип «Group Membership» (28).
-
В форме «Add mapper» настроить параметры сопоставления:
- Указать имя сопоставления в поле «Name» (39).
- Указать имя заявки на получение токена в поле «Token Claim Name» (40).
- Активировать параметры «Full group path» (41), «Add to ID token» (42), «Add to access token» (43) и «Add to userinfo» (44).
-
Сохранить параметры с помощью кнопки Save (45).
Добавление набора конфигураций
- В разделе «Clients» (8) выбрать созданного клиента.
- Перейти во вкладку «Credentials» (46).
-
Запомнить значение поля «Client Secret» (47), так как его потребуется указать в настройках SSO аутентификации.
-
Перейти во вкладку «Client Scopes» (48).
-
Добавить созданный client scope с помощью кнопки Add client scope (49).
-
В форме «Add client scopes to client-demo» выбрать нужный client scope (22).
-
Добавить его с помощью «Add» с параметром «Default» (50).
-
Перейти во вкладку «Roles» (51).
-
Создать роли (52), которые будут назначаться пользователю после SSO аутентификации.
Внимание
Роли должны соответствовать предустановленным и созданным ролям в платформе.
-
Перейти в раздел «Realm roles» (53).
-
В созданной области (7) выбрать существующие или создать новые роли (54).
-
Для созданных ролей области в закладке «Associated roles» (55) назначить роли клиента (Client roles) (56) для сопоставления пользователям платформы.
Создание и настройка пользователя для авторизации
- Перейти в раздел «Users» (57).
-
Создать пользователя, который будет авторизоваться в платформе через Keycloak, с помощью кнопки Create new user (58).
-
Настроить параметры пользователя:
- Указать имя пользователя в поле «Username» (58).
-
Опционально включить пользователя в группы Join Groups (59).
-
Завершите создание пользователя с помощью кнопки Create (60).
-
Во вкладке «Credentials» (61) выбрать созданного пользователя (58).
-
Активировать (62) пользователя и установить для него пароль (63).
-
Перейти во вкладку «Role mapping» (64).
-
Назначить (68) пользователю роли клиента (67) напрямую (65) или через роли области (realm role) (69).
-
Перейти в раздел «Groups» (71).
-
Создать группу для пользователей, которые будут авторизоваться в Space Cloud через Keycloak, с помощью кнопки Create group (72).
-
Назначить имя группе (73) и завершите ее создание с помощью кнопки Create (74).
Добавить пользователя в группу можно при его создании или через вкладку «Groups» в свойствах уже созданного пользователя.
Далее необходимо настроить SSO аутентификацию на модуле управления облаком.