Keycloak SAML
Keycloak is an open-source IdP that supports SAML and OpenID Connect and can broker LDAP or other SAML IdPs. This guide configures a Keycloak SAML client and Casdoor so Keycloak users can sign in to Casdoor.
Налаштувати Keycloak
Example assumptions:
- Casdoor: UI at
http://localhost:7001, API athttp://localhost:8000. Adjust for your deployment. - Keycloak: UI at
http://localhost:8080/auth. - SP ACS URL and Entity ID:
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.
Use the default realm or create a new one.


Додати запис клієнта в Keycloak
Натисніть Клієнти в меню, а потім натисніть Створити, щоб перейти на сторінку Додати клієнта. Заповніть поля наступним чином:
- Ідентифікатор клієнта:
http://localhost:8000/api/acs- Це буде SP Entity ID, який використовується в налаштуваннях Casdoor пізніше. - Протокол клієнта:
saml. - SAML Endpoint клієнта:
http://localhost:8000/api/acs- Це URL, куди ви хочете, щоб сервер Keycloak надсилав запити та відповіді SAML. Зазвичай, додатки мають один URL для обробки запитів SAML. Кілька URL можна встановити на вкладці Налаштування клієнта.

Натисніть Зберегти. Ця дія створює клієнта і переводить вас на вкладку Налаштування.
Наступні є частиною налаштувань:
- Name — e.g.
Casdoor; any friendly name for the Keycloak UI. - Активовано - Виберіть
on. - Включити Authn Statement - Виберіть
on. - Підписати документи - Виберіть
on. - Підписати твердження - Виберіть
off. - Шифрувати твердження - Виберіть
off. - Необхідний підпис клієнта - Виберіть
off. - Примусовий формат Name ID - Виберіть
on. - Формат Name ID - Виберіть
username. - Дійсні URI перенаправлення - Додати
http://localhost:8000/api/acs. - Основний URL обробки SAML -
http://localhost:8000/api/acs. - Детальна конфігурація SAML кінцевої точки
- URL обслуговування споживача тверджень POST Binding -
http://localhost:8000/api/acs. - URL обслуговування споживача тверджень Redirect Binding -
http://localhost:8000/api/acs.
- URL обслуговування споживача тверджень POST Binding -
Зберегти конфігурацію.

To sign the authn request: enable Client Signature Required and upload your certificate. Casdoor’s private key and certificate (token_jwt_key.key, token_jwt_key.pem) are in the object directory. In Keycloak open Keys → Import → Archive Format → Certificate PEM and upload the certificate.
Натисніть вкладку Встановлення.
For Keycloak <= 5.0.0, select Format Option - SAML Metadata IDPSSODescriptor and copy the metadata.
Для Keycloak 6.0.0+, виберіть опцію формату - Файли Mod Auth Mellon та натисніть Завантажити. Розпакуйте завантажений .zip, знайдіть idp-metadata.xml та скопіюйте метадані.


Налаштувати в Casdoor
Створити нового провайдера в Casdoor.
Виберіть категорію як SAML, тип як Keycloak. Скопіюйте вміст метаданих та вставте його у поле Метадані. Значення Кінцева точка, IdP та URL видачі будуть згенеровані автоматично після натискання кнопки Розібрати. Нарешті, натисніть кнопку Зберегти.
If Client Signature Required is enabled in Keycloak and you uploaded a certificate, enable Sign request in Casdoor.

Редагувати додаток, який ви хочете налаштувати в Casdoor. Виберіть провайдера, якого ви щойно додали, та натисніть кнопку Зберегти.

Test
Open the application’s login page; a Keycloak option appears. Click it to sign in via Keycloak; after success you are logged into Casdoor.
