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

Keycloak

Система управления идентификацией Keycloak от JBoss - это широко используемая и открытая система, поддерживающая интеграцию с приложениями через SAML и OpenID Connect. Она также может работать как брокер идентификации между другими провайдерами, такими как LDAP или другие провайдеры SAML, и приложениями, поддерживающими SAML или OpenID Connect.

Вот пример того, как настроить новую запись клиента в Keycloak и настроить Casdoor для его использования, чтобы разрешить вход в UI пользователям Keycloak, которым предоставлен доступ через конфигурацию Keycloak.

Настройка Keycloak

Для этого примера давайте сделаем следующие выборы и предположения по конфигурации:

  • Предположим, что вы запускаете Casdoor в режиме разработки локально. UI Casdoor доступен по адресу http://localhost:7001, а сервер доступен по адресу http://localhost:8000. Замените на соответствующий URL при необходимости.
  • Предположим, что вы запускаете Keycloak локально. UI Keycloak доступен по адресу http://localhost:8080/auth.
  • Исходя из этого, URL SP ACS для этого развертывания будет: http://localhost:8000/api/acs.
  • Наш ID сущности SP будет использовать тот же URL: http://localhost:8000/api/acs.
заметка

The /api/acs endpoint only accepts POST requests. Ensure Keycloak is configured to use HTTP POST binding for SAML responses.

Вы можете использовать область по умолчанию или создать новую область.

Добавить область Keycloak

Область Keycloak

Добавить запись клиента в Keycloak

информация

Для получения дополнительной информации о клиентах Keycloak обратитесь к документации Keycloak.

Нажмите Клиенты в меню, затем нажмите Создать, чтобы перейти на страницу Добавить клиента. Заполните поля следующим образом:

  • ID клиента: http://localhost:8000/api/acs - Это будет использоваться как ID сущности SP в последующей конфигурации Casdoor.
  • Протокол клиента: saml.
  • Конечная точка SAML клиента: http://localhost:8000/api/acs - Этот URL - это место, куда вы хотите, чтобы сервер Keycloak отправлял запросы и ответы SAML. Обычно у приложений есть один URL для обработки запросов SAML. Несколько URL можно установить на вкладке Настройки клиента.

Добавить клиента Keycloak

Нажмите Сохранить. Это действие создает клиента и перенаправляет вас на вкладку Настройки.

Следующие являются частью настроек:

  1. Имя - Casdoor. Это используется только для отображения дружественного имени пользователям Keycloak в UI Keycloak. Вы можете использовать любое имя, которое вам нравится.
  2. Включено - Выберите on.
  3. Включить утверждение об аутентификации - Выберите on.
  4. Подписывать документы - Выберите on.
  5. Подписывать утверждения - Выберите off.
  6. Шифровать утверждения - Выберите off.
  7. Требуется подпись клиента - Выберите off.
  8. Принудительный формат идентификатора - Выберите on.
  9. Формат идентификатора - Выберите username.
  10. Допустимые URI перенаправления - Добавить http://localhost:8000/api/acs.
  11. Основной URL обработки SAML - http://localhost:8000/api/acs.
  12. Тонкая настройка конфигурации конечной точки SAML
    1. URL привязки POST службы приема утверждений - http://localhost:8000/api/acs.
    2. URL привязки перенаправления службы приема утверждений - http://localhost:8000/api/acs.

Сохраните конфигурацию.

Настройка клиента Keycloak

совет

Если вы хотите подписать запрос authn, вам нужно включить опцию Требуется подпись клиента и загрузить сгенерированный вами сертификат. Приватный ключ и сертификат, используемые в Casdoor, token_jwt_key.key и token_jwt_key.pem, находятся в каталоге object. В Keycloak вам нужно нажать на вкладку Ключи, нажать кнопку Импорт, выбрать Формат архива как Сертификат PEM и загрузить сертификат.

Нажмите на вкладку Установка.

Для Keycloak <= 5.0.0 выберите Формат опции - SAML Metadata IDPSSODescriptor и скопируйте метаданные.

Для Keycloak 6.0.0 и выше выберите Формат опции - Файлы Mod Auth Mellon и нажмите Скачать. Распакуйте скачанный .zip, найдите idp-metadata.xml и скопируйте метаданные.

Скачать метаданные

Скопировать метаданные

Настройка в Casdoor

Создать нового провайдера в Casdoor.

Выберите категорию как SAML, тип как Keycloak. Скопируйте содержимое метаданных и вставьте его в поле Метаданные. Значения Конечной точки, IdP и URL эмитента будут сгенерированы автоматически после нажатия кнопки Разобрать. Наконец, нажмите кнопку Сохранить.

совет

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

Провайдер Casdoor

Отредактируйте приложение, которое вы хотите настроить в Casdoor. Выберите только что добавленного провайдера и нажмите кнопку Сохранить.

Добавить провайдера для приложения

Проверить эффект

Перейдите к только что настроенному приложению, и вы найдете иконку Keycloak на странице входа.

Нажмите на иконку, и вы будете перенаправлены на страницу входа Keycloak. После успешной аутентификации вы войдете в Casdoor.

Вход в Casdoor