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

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.

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

Добавить область 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