Перейти к основному содержимому

Создать SAML-федерацию для Keycloak

Последнее изменение:
  1. Если у вас нет сертификата, выпущенного у Keycloak, выпустите его.
  2. Создайте федерацию на стороне Selectel.
  3. Настройте SAML-приложение.
  4. Если при создании федерации на стороне Selectel вы отметили чекбокс Подписывать запросы аутентификации, настройте проверку цифровой подписи.
  5. Если при создании федерации на стороне Selectel вы включили автосоздание пользователей, настройте сопоставление групп пользователей.

1. Выпустить сертификат

Выпустите сертификат на стороне Keycloak, подробнее в инструкции Сертификаты.

Вы можете создать федерацию без сертификата и добавить его позже, но без сертификата федерация работать не будет.

2. Создать федерацию на стороне Selectel

  1. В панели управления в верхнем меню нажмите IAM.

  2. Перейдите в раздел Федерации.

  3. Нажмите Добавить федерацию и выберите SAML.

  4. В блоке Настройки федерации:

    4.1. Введите имя федерации.

    4.2. Опционально: введите описание федерации.

    4.3. Измените время жизни сессии или оставьте значение по умолчанию (24 часа). Сессия определяет время, в течение которого пользователь будет авторизован без необходимости повторной аутентификации. Вы можете указать значение от 1 до 720 часов.

    Время жизни сессии также можно установить на стороне провайдера Keycloak в параметре SSO Session Max или Assertion Lifespan. Если время жизни сессии установлено и в настройках федерации, и в Keycloak, будет применяться наименьшее значение.
  5. В блоке Настройки IDP:

    5.1. В поле IdP Issuer введите идентификатор поставщика удостоверений — https://<idp_url>/realms/master.

    Укажите <idp_url> — ваш URL у поставщика удостоверений.

    5.2. Укажите ссылку на страницу входа поставщика удостоверений, куда пользователи будут перенаправляться для аутентификации через SSO — https://<idp_url>/realms/master/protocol/saml.

    Укажите <idp_url> — ваш URL у поставщика удостоверений.

    5.3. Чтобы пользователи создавались автоматически при первом входе в панель управления по SSO, отметьте чекбокс Автосоздание пользователей.

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

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

    5.4. Опционально: чтобы запросы аутентификации подписывались, отметьте чекбокс Подписывать запросы аутентификации.

    5.5. Опционально: чтобы пользователям нужно было проходить аутентификацию через SSO при каждом входе, отметьте чекбокс Принудительная аутентификация в IdP. Если не отметить чекбокс, пользователям не нужно будет проходить аутентификацию, пока активны cookies.

  6. Нажмите Продолжить. Вы будете перенаправлены на страницу добавления сертификата.

  7. Введите имя сертификата.

  8. Вставьте сертификат, который вы выпустили на этапе 1. Он должен начинаться с -----BEGIN CERTIFICATE----- и заканчиваться -----END CERTIFICATE-----.

  9. Нажмите Добавить сертификатЗавершить добавление федерации.

3. Настроить SAML-приложение

  1. В панели управления Keycloak войдите в аккаунт администратора (Administration Console).

  2. Перейдите в раздел Clients.

  3. Нажмите Create client.

  4. На этапе General Settings:

    4.1. В поле Client type выберите SAML.

    4.2. В поле Client ID введите URL, на который будут перенаправляться пользователи после аутентификации — https://api.selectel.ru/v1/federations/saml/<federation_id>.

    Укажите <federation_id> — ID федерации на стороне Selectel, можно посмотреть в панели управления: в верхнем меню нажмите IAM → Федерации → строка федерации → поле ID.

    4.3. В поле Name введите имя SAML-приложения.

    4.4. Нажмите Next.

  5. На этапе Login Settings:

    5.1. В поле Root URL вставьте https://api.selectel.ru/v1/federations/saml/<federation_id>.

    Укажите <federation_id> — ID федерации на стороне Selectel, можно посмотреть в панели управления: в верхнем меню нажмите IAM → Федерации → строка федерации → поле ID.

    5.2. В поле Home URL вставьте https://my.selectel.ru/federated-login.

    5.3. В поле Valid Redirect URIs вставьте https://api.selectel.ru/v1/auth/federations/<federation_id>/saml/acs.

    Укажите <federation_id> — ID федерации на стороне Selectel, можно посмотреть в панели управления: в верхнем меню нажмите IAM → Федерации → строка федерации → поле ID.

    5.4. Нажмите Save.

  6. На этапе SAML capabilities:

    6.1. В поле Name ID Format выберите формат идентификатора пользователя — username или email.

    6.2. Включите тумблеры Force POST binding и Include AuthnStatement.

  7. На этапе Signature and Encryption:

    7.1. Включите тумблер Sign assertions.

    7.2. Если вы не планируете настраивать проверку цифровой подписи, убедитесь, что в блоке Signing keys config выключен тумблер Client signature required.

    7.3. В поле Signature algorithm выберите RSA_SHA256.

    7.4. В поле SAML Signature Key Name выберите NONE.

  8. На этапе Logout settings:

    8.1. Включите тумблер Front channel logout.

    8.2. Нажмите Save.

4. Настроить проверку цифровой подписи

Настраивать проверку цифровой подписи нужно, если при создании федерации на стороне Selectel на этапе 2 вы отметили чекбокс Подписывать запросы аутентификации на шаге 5.2.

  1. Скачайте сертификат Selectel для подписи запросов.

  2. В панели управления Keycloak перейдите в раздел Clients.

  3. Откройте страницу SAML-приложения → вкладка Keys.

  4. На этапе Signature and Encryption:

    4.1. В блоке Signing keys config включите тумблеры Encrypt Assertions и Client signature required.

    4.2. В блоке Encryption keys config включите тумблер Client Signature Required.

    4.3. В поле Select method выберите Import.

    4.4. В поле Archive Format выберите Certificate PEM. Если пункт Certificate PEM отсутствует, закройте окно, нажмите RegenerateYesImport key. Пункт появится в списке.

    4.5. Нажмите Browse и выберите сертификат, который вы скачали на странице федерации в Selectel.

    4.6. Нажмите Confirm.

5. Настроить сопоставление групп пользователей

Настраивать сопоставление групп необходимо, если при создании федерации на стороне Selectel на этапе 2 вы включили автосоздание пользователей. Используйте подраздел Настроить сопоставление групп инструкции Сопоставление групп пользователей.