Keycloak : configurer AD FS comme fournisseur d’identité

Présentation

Dans ce tutoriel, je vais vous expliquer comment configurer Microsoft AD FS comme fournisseur d’identité dans Keycloak.

Les logiciels (Keycloak et AD FS) sont deux logiciels d’authentification qui permettent de mettre en portail d’authentification et d’avoir du SSO.

Afin d’illustrer ce tutoriel, je vais partir d’un cas concret qui m’a poussé à mettre en place cette solution.

Dans l’entreprise où je travail, nous utilisons Guacamole comme logiciel de « bastion », celui-ci est utilisé aussi bien pour les prestataires externe que pour une utilisation interne pour accéder aux serveurs. Pour faciliter la gestion des comptes et la centralisation pour les prestataire externe, Guacamole a été couplé à Keycloak car nous ne souhaitions pas avoir des comptes dans l’annuaire Active Directory pour les prestataires. Pour les accès interne, Guacamole a été couplé à l’AD FS en SAML. Dans cette situation quand nous arrivons sur la page d’accueil de Guacamole, il faut choisir le fournisseur d’identité et en plus de cela, il y a le formulaire de Guacamole, ce qui fait beaucoup de solution pour s’authentifié. Le but de l’opération et d’avoir un seul fournisseur d’identité sur Guacamole qui est Keycloak et d’être directement redirigé automatiquement vers le formulaire de celui-ci. L’autre contrainte, c’est de ne pas lier l’Active Directory à Guacamole, donc la solution est d’ajouté AD FS comme fournisseur d’identité à Keycloak.

Dans ce tutoriel, la liaison avec AD FS sera effectué en utilisant SAML.

Ajouter AD FS comme fournisseur d’identité dans Keycloak

Pour commencer, on va ajouter dans Keycloak AD FS comme fournisseur d’identité.

Depuis le menu cliquer sur Identity Provider 1 puis cliquer sur SAML v2.0 2.

On arrive sur le formulaire d’ajout d’un fournisseur SAML, nommer le fournisseur dans le champ Alias 1, puis dans SAML entity descriptor, entrer l’url de découverte des services ADFS 2 sous la forme https://adfs-uri/FederationMetadata/2007-06/FederationMetadata.xml.

Si l’URL est bonne, un check vert s’affiche au niveau du champ SAML entity descriptor. Cliquer sur Show metadata 1 pour vérifier les informations retourner depuis AD FS.

Vérifier les informations de la configuration SAML et cliquer sur le bouton Add 1 en bas de page.

Le fournisseur d’identité SAML est ajouté dans Keycloak.

Recherche le champ NameID policy format et sélectionner Unspecified 1 et cliquer sur le bouton Save 2.

Pour le moment, nous en avons fini avec la configuration de Keycloak, nous allons passer à l’ajout de la partie de confiance dans AD FS. Afin de faciliter cette opération, coller le lien disponible dans la console Keycloak : SAML 2.0 Service Provider Metadata.

Ajouter dans AD FS, Keycloak comme partie de confiance

Depuis la console AD FS, aller sur le dossier Approbations de partie de confiance 1 et cliquer sur Ajouter une approbation de partie de confiance 2 dans le panneau Actions.

Au lancement de l’assistant, cliquer sur Démarrer 1 en vérifiant que Prise en charge des revendications soit sélectionnée.

Par défaut, AD FS propose la configuration du client par l’importation des données en fournissant une URL, coller l’URL copiée dans Keycloak, dans le champ Adresse des metadonnées de fédération (nom d’hôte ou URL) 1 puis cliquer sur Suivant 2.

Nommer 1 la partie de confiance et cliquer sur le bouton Suivant 2.

Configurer la stratégie de contrôle d’accès 1 et cliquer sur Suivant 2.

Un résumé de la configuration s’affiche, cliquer sur le bouton Suivant 1.

Laisser cocher Configurer une stratégie d’émission de revendications pour cette application 1 et cliquer sur Fermer 2.

La partie de confiance est ajoutée.

Configuration des revendications dans AD FS

Pour accéder à la fenêtre de configuration des revendications qui s’est ouverte, réduire la console AD FS.

Cette partie est « importante » car elle va permettre d’envoyer les informations sur l’utilisateur à Keycloak afin que le compte soit provisionné.

Cliquer sur le bouton Ajouter une règle 1.

Sélectionner Envoyer les attributs LDAP en tant que revendications 1 puis cliquer sur le bouton Suivant 2.

Nommer 1 la règle de revendication puis sélectionner Active Directory 2 comme magasin d’attributs.

Configurer les revendications comme sur la capture ci-dessous 1 et cliquer sur Terminer 2.

Valider l’ajout de la règle en cliquant sur Appliquer 1 et OK 2 pour fermer le fenêtre.

La configuration au niveau de AD FS est terminée.

Configurer le mappage des revendications AD FS avec les attributs de profil dans Keycloak

Notre configuration est opérationnelle est peu être utilisée, lors de la première connexion avec le fournisseur SAML, Keycloak va créer (provisionner) l’utilisateur, si on ne fait pas de mappage, l’utilisateur devra lors de la première connexion indiquer ses informations de profil (email, prénom et nom).

Pour éviter cette manipulation, on va configure un mappage entre les informations retourner de AD FS et le profil dans Keycloak.

Dans Keycloak, retourner le fournisseur SAML que l’on a créé et aller sur l’onglet Mappers 1 et cliquer sur Add mapper 2.

Voici la configuration pour le mappage de l’email :

Faire la même chose pour le prénom et le nom :

Les attributs pour le mappage du profil sont configurés.

Tester le connexion avec AD FS comme fournisseur

Depuis client configuré dans Keycloak, chercher à vous identifier.

Sur le formulaire d’authentification, cliquer le bouton 1 qui correspond au fournisseur AD FS.

On est bien redirigé vers le formulaire d’authentification AD FS, identifier vous dessus.

Si tout est correctement configuré, à partir de cette étape, vous êtes redirigé vers l’application, si le formulaire pour compléter le profil s’affiche, c’est que le mappage d’attributs n’a pas pu se faire. Dans ce cas là, il faut saisir les informations manuellement et/ou chercher pourquoi le mappage a échoué.

Vérifier l’utilisateur dans Keycloak

Dans la liste des utilisateurs dans Keycloak, on peut voir que le compte a été créé.

En allant voir le détail de l’utilisateur, les informations de profil (email, nom et prénom) ont bien été mappés, dans l’onglet Identity provider link, on peut également voir le lien avec le fournisseur d’identification AD FS.


Vous savez comment configurer AD FS comme fournisseur d’identité dans Keycloak avec cette solution, il est possible d’avoir des comptes externes pour des applications avec le SSO sans avoir besoin de les créer dans l’annuaire Active Directory.




Laisser un commentaire