Passer au contenu principal

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 at http://localhost:8000. Adjust for your deployment.
  • Keycloak: UI at http://localhost:8080/auth.
  • SP ACS URL and Entity ID: http://localhost:8000/api/acs.
note

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 un domaine Keycloak

Domaine Keycloak

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.

Ajouter un client Keycloak

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 :

  1. Name — e.g. Casdoor; any friendly name for the Keycloak UI.
  2. Activé - Sélectionnez on.
  3. Inclure la déclaration Authn - Sélectionnez on.
  4. Signer les documents - Sélectionnez on.
  5. Signer les assertions - Sélectionnez off.
  6. Chiffrer les assertions - Sélectionnez off.
  7. Signature du client requise - Sélectionnez off.
  8. Forcer le format de l'ID de nom - Sélectionnez on.
  9. Format de l'ID de nom - Sélectionnez username.
  10. URI de redirection valides - Ajouter http://localhost:8000/api/acs.
  11. URL de traitement SAML principal - http://localhost:8000/api/acs.
  12. Configuration fine des points de terminaison SAML
    1. URL de liaison POST du service de consommation d'assertion - http://localhost:8000/api/acs.
    2. URL de liaison de redirection du service de consommation d'assertion - http://localhost:8000/api/acs.

Enregistrer la configuration.

Configurer le client Keycloak

conseil

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 KeysImportArchive FormatCertificate 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.

Télécharger les métadonnées

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

conseil

If Client Signature Required is enabled in Keycloak and you uploaded a certificate, enable Sign request in Casdoor.

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

Ajouter un fournisseur pour l&#39;application

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.

Connexion Casdoor