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.
Configurer 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.


Ajouter une entrée de client dans Keycloak
Cliquez sur Clients dans le menu puis cliquez sur Créer pour aller à la page Ajouter un client. Remplissez les champs comme suit :
- ID du client :
http://localhost:8000/api/acs- Ceci sera l'ID d'entité SP utilisé dans la configuration de Casdoor plus tard. - Protocole du client :
saml. - Point de terminaison SAML du client :
http://localhost:8000/api/acs- Cette URL est l'endroit où vous souhaitez que le serveur Keycloak envoie les demandes et réponses SAML. Généralement, les applications ont une URL pour traiter les demandes SAML. Plusieurs URL peuvent être définies dans l'onglet Paramètres du client.

Cliquez sur Enregistrer. Cette action crée le client et vous amène à l'onglet Paramètres.
Les éléments suivants font partie des paramètres :
- Name — e.g.
Casdoor; any friendly name for the Keycloak UI. - Activé - Sélectionnez
on. - Inclure la déclaration Authn - Sélectionnez
on. - Signer les documents - Sélectionnez
on. - Signer les assertions - Sélectionnez
off. - Chiffrer les assertions - Sélectionnez
off. - Signature du client requise - Sélectionnez
off. - Forcer le format de l'ID de nom - Sélectionnez
on. - Format de l'ID de nom - Sélectionnez
username. - URI de redirection valides - Ajouter
http://localhost:8000/api/acs. - URL de traitement SAML principal -
http://localhost:8000/api/acs. - Configuration fine des points de terminaison SAML
- URL de liaison POST du service de consommation d'assertion -
http://localhost:8000/api/acs. - URL de liaison de redirection du service de consommation d'assertion -
http://localhost:8000/api/acs.
- URL de liaison POST du service de consommation d'assertion -
Enregistrer la configuration.

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.
Cliquez sur l'onglet Installation.
For Keycloak <= 5.0.0, select Format Option - SAML Metadata IDPSSODescriptor and copy the metadata.
Pour Keycloak 6.0.0+, sélectionnez l'option de format - Fichiers Mod Auth Mellon et cliquez sur Télécharger. Décompressez le fichier .zip téléchargé, localisez idp-metadata.xml et copiez les métadonnées.


Configurer dans Casdoor
Créer un nouveau fournisseur dans Casdoor.
Sélectionnez la catégorie comme SAML, le type comme Keycloak. Copiez le contenu des métadonnées et collez-le dans le champ Métadonnées. Les valeurs de Point de terminaison, IdP, et URL de l'émetteur seront générées automatiquement après avoir cliqué sur le bouton Analyser. Enfin, cliquez sur le bouton Enregistrer.
If Client Signature Required is enabled in Keycloak and you uploaded a certificate, enable Sign request in Casdoor.

Modifier l'application que vous souhaitez configurer dans Casdoor. Sélectionnez le fournisseur que vous venez d'ajouter et cliquez sur le bouton Enregistrer.

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.
