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

Нажмите Сохранить. Это действие создает клиента и перенаправляет вас на вкладку Настройки.
Следующие являются частью настроек:
- Имя -
Casdoor. Это используется только для отображения дружественного имени пользователям Keycloak в UI Keycloak. Вы можете использовать любое имя, которое вам нравится. - Включено - Выберите
on. - Включить утверждение об аутентификации - Выберите
on. - Подписывать документы - Выберите
on. - Подписывать утверждения - Выберите
off. - Шифровать утверждения - Выберите
off. - Требуется подпись клиента - Выберите
off. - Принудительный формат идентификатора - Выберите
on. - Формат идентификатора - Выберите
username. - Допустимые URI перенаправления - Добавить
http://localhost:8000/api/acs. - Основной URL обработки SAML -
http://localhost:8000/api/acs. - Тонкая настройка конфигурации конечной точки SAML
- URL привязки POST службы приема утверждений -
http://localhost:8000/api/acs. - URL привязки перенаправления службы приема утверждений -
http://localhost:8000/api/acs.
- URL привязки POST службы приема утверждений -
Сохраните конфигурацию.

Если вы хотите подписать запрос 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. Выберите только что добавленного провайдера и нажмите кнопку Сохранить.

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