Keycloak
Le système Keycloak de JBoss Keycloak est un système de gestion d'identité open-source et largement utilisé qui prend en charge l'intégration avec des applications via SAML et OpenID Connect. Il peut également fonctionner comme un courtier d'identité entre d'autres fournisseurs tels que LDAP ou d'autres fournisseurs SAML et des applications qui prennent en charge SAML ou OpenID Connect.
Voici un exemple de la façon de configurer une nouvelle entrée de client dans Keycloak et de configurer Casdoor pour l'utiliser afin de permettre la connexion à l'interface utilisateur par les utilisateurs de Keycloak qui sont autorisés à accéder via la configuration de Keycloak.
Configurer Keycloak
Pour cet exemple, faisons les choix de configuration suivants et suppositions :
- Supposons que vous exécutez Casdoor en mode dev localement. L'interface utilisateur de Casdoor est disponible à
http://localhost:7001
et le serveur est disponible àhttp://localhost:8000
. Remplacez par l'URL appropriée si nécessaire. - Supposons que vous exécutez Keycloak localement. L'interface utilisateur de Keycloak est disponible à
http://localhost:8080/auth
. - Sur cette base, l'URL ACS SP pour ce déploiement sera :
http://localhost:8000/api/acs
. - Notre ID d'entité SP utilisera la même URL :
http://localhost:8000/api/acs
.
Vous pouvez utiliser le domaine par défaut ou créer un nouveau domaine.
Ajouter une entrée de client dans Keycloak
Pour plus de détails sur les clients Keycloak, reportez-vous à la documentation 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 :
- Nom -
Casdoor
. Ceci est uniquement utilisé pour afficher un nom convivial aux utilisateurs de Keycloak dans l'interface utilisateur de Keycloak. Vous pouvez utiliser n'importe quel nom que vous préférez. - 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.
Si vous souhaitez signer la demande d'authentification, vous devez activer l'option Signature du client requise et télécharger le certificat généré par vous-même. La clé privée et le certificat utilisés dans Casdoor, token_jwt_key.key
et token_jwt_key.pem
, se trouvent dans le répertoire object. Dans Keycloak, vous devez cliquer sur l'onglet Clés, cliquer sur le bouton Importer, sélectionner Format d'archive comme Certificat PEM, et télécharger le certificat.
Cliquez sur l'onglet Installation.
Pour Keycloak <= 5.0.0, sélectionnez l'option de format - Descripteur IDPSSODescriptor des métadonnées SAML et copiez les métadonnées.
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.
Si vous activez l'option Signature du client requise dans Keycloak et téléchargez le certificat, veuillez activer l'option Signer la demande dans 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.
Valider l'effet
Allez à l'application que vous venez de configurer et vous trouverez une icône Keycloak sur la page de connexion.
Cliquez sur l'icône et vous serez redirigé vers la page de connexion Keycloak. Après une authentification réussie, vous serez connecté à Casdoor.