Перейти к содержанию

Интеграция Space Cloud и Keycloak

Модуль управления облаком поддерживает единый вход (SSO) через систему Keycloak. Для настройки требуется предварительная конфигурация на стороне Keycloak.

Keycloak - это программное обеспечение с открытым исходным кодом для реализации SSO аутентификации с возможностью управления доступом. Подробнее ознакомиться с документацией Keycloak можно на официальном сайте разработчика.

Узнать подробнее о настройке SSO аутентификации можно в разделе Настройки.


Настройка Keycloak

Создание области

  1. Авторизоваться в интерфейсе Keycloak.
  2. Перейти в раздел Manage realms (1).
  3. Создать новую область с помощью кнопки Create realm (2).

    Создание области

    img

  4. В открывшемся окне указать имя новой области в поле Realm name (3).

  5. Активировать область, включив параметр Enabled (4).
  6. Завершить создание области с помощью кнопки Create (5).

    Настройка области

    img


Создание клиента

  1. Перейти в раздел «Clients» (8).
  2. Создать клиента для созданной области (7) с помощью кнопки Create client (9).

    Создание клиента

    img

  3. На шаге «General settings» (10):

    • Выбрать в поле «Client Type» (11) - «OpenID Connect».

    • Указать идентификатор «Client ID» (12).

      Значение «Client ID» потребуется указать во время настройки SSO аутентификации.

  4. Перейти на следующий шаг с помощью кнопки Next (13).

    General settings

    img

  5. На шаге «Capability config» (14) активировать опцию «Client authentication» (15).

  6. Перейти на следующий шаг с помощью кнопки Next (13).

    Capability config

    img

  7. На шаге «Login settings» (16):

    • Указать в поле «Valid redirect URIs» (17) путь с указанием протокола переадресации пользователя после авторизации:

      https://FQDN_CLOUD/auth/keycloak/callback 

    • Указать полное доменное имя в поле «Web origins» (18):

      https://FQDN_CLOUD 

  8. Завершить создание клиента с помощью кнопки Save (19).

    Login settings

    img


Создание и настройка набора конфигураций

  1. Перейти в раздел «Client scopes» (20).
  2. Создать набор конфигураций для новой области (7) с помощью кнопки Create client scope (21).

    Создание набора конфигураций

    img

  3. В открывшемся окне настроить параметры:

    • Указать имя в поле «Name» (22).
    • Указать тип в поле «Type» (23) – «Default».
    • Активировать параметры «Include in token scope» (24) и «Include in OpenID Provider Metadata» (25).
  4. Завершить создание набора конфигураций с помощью кнопки Save (26).

    Настройка параметров

    img

  5. В разделе «Client scopes» (20) выбрать созданный набор конфигураций client scope (22).

  6. В окне детализации перейти во вкладку «Mappers» (26).
  7. Нажать кнопку Configure a new mapper (27).

    Создать конфигурацию

    img

  8. В окне «Configure a new mapper» выбрать параметр «User Client Role» (29).

    Configure a new mapper

    img

  9. В форме «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).
  10. Сохранить параметры с помощью кнопки Save (36).

    Add mapper

    img

  11. Во вкладке «Mappers» (26) в меню «Add mapper» (37) выбрать пункт «By configuration» (38).

    Добавление конфигурации

    img

  12. В окне «Configure a new mapper» выбрать тип «Group Membership» (28).

  13. В форме «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).
  14. Сохранить параметры с помощью кнопки Save (45).

    Добавление конфигурации

    img


Добавление набора конфигураций

  1. В разделе «Clients» (8) выбрать созданного клиента.
  2. Перейти во вкладку «Credentials» (46).
  3. Запомнить значение поля «Client Secret» (47), так как его потребуется указать в настройках SSO аутентификации.

    Client Secret

    img

  4. Перейти во вкладку «Client Scopes» (48).

  5. Добавить созданный client scope с помощью кнопки Add client scope (49).

    Добавление client scope

    img

  6. В форме «Add client scopes to client-demo» выбрать нужный client scope (22).

  7. Добавить его с помощью «Add» с параметром «Default» (50).

    Add client scopes to client-demo

    img

  8. Перейти во вкладку «Roles» (51).

  9. Создать роли (52), которые будут назначаться пользователю после SSO аутентификации.

    Внимание

    Роли должны соответствовать предустановленным и созданным ролям в платформе.

    Создание ролей

    img


    img


    img

  10. Перейти в раздел «Realm roles» (53).

  11. В созданной области (7) выбрать существующие или создать новые роли (54).

    Добавление ролей

    img

  12. Для созданных ролей области в закладке «Associated roles» (55) назначить роли клиента (Client roles) (56) для сопоставления пользователям платформы.

    Назначение роли

    img


    img


Создание и настройка пользователя для авторизации

  1. Перейти в раздел «Users» (57).
  2. Создать пользователя, который будет авторизоваться в платформе через Keycloak, с помощью кнопки Create new user (58).

    Добавление пользователя

    img

  3. Настроить параметры пользователя:

    • Указать имя пользователя в поле «Username» (58).
    • Опционально включить пользователя в группы Join Groups (59).

      Join Groups

      img

  4. Завершите создание пользователя с помощью кнопки Create (60).

    Настройка параметров

    img

  5. Во вкладке «Credentials» (61) выбрать созданного пользователя (58).

  6. Активировать (62) пользователя и установить для него пароль (63).

    Настройка пользователя

    img


    img

  7. Перейти во вкладку «Role mapping» (64).

    Вкладка «Role mapping»

    img

  8. Назначить (68) пользователю роли клиента (67) напрямую (65) или через роли области (realm role) (69).

    Назначение пользователю роли клиента напрямую

    img

    Назначение пользователю роли клиента через роли области

    img

  9. Перейти в раздел «Groups» (71).

  10. Создать группу для пользователей, которые будут авторизоваться в Space Cloud через Keycloak, с помощью кнопки Create group (72).

    Создание группы

    img

  11. Назначить имя группе (73) и завершите ее создание с помощью кнопки Create (74).

    Настройка группы

    img

Добавить пользователя в группу можно при его создании или через вкладку «Groups» в свойствах уже созданного пользователя.


Далее необходимо настроить SSO аутентификацию на модуле управления облаком.