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.