Présentation
Dans ce tutoriel, je vais vous expliquer comment configurer l’authentification dans GLPI avec Keycloak en utilisant OpenID.
Pour utiliser l’authentification unique avec Keycloak, nous allons avoir besoin d’installer un plugin supplémentaire non officiel, le plugin est disponible sur Github.
Plugin officiel
Téléchargement et installation du plugin
Le plus compliqué pour ce tutoriel a été de trouver le « bon plugin », après quelques recherche je suis tombé sur ce plugin : edgardmessias/glpi-singlesignon.
Le problème est que le plugin n’est plus maintenu depuis 2022 et depuis la version 10.0.10 de GLPI plusieurs problèmes sont remontés.
Je suis donc aller voir dans les différents Fork du projet et je suis tombé sur celui ci : RaulPastorClemente/glpi-singlesignon qui a l’air à jour et qui fonctionne au moment de ce tutoriel.
Avertissement
Commencer par télécharger la dernière version du plugin ici : https://github.com/RaulPastorClemente/glpi-singlesignon/releases
Décompresser l’archive et envoyer son contenu dans le répertoire plugins de GLPI.
Renommer le dossier en singlesignon.
Maintenant dans GLPI dans le menu, cliquer sur Configuration 1 puis sur Plugins 2.
Sur la page des plugins, si vous êtes sur les plugins Marketplace, cliquer sur Plugins 1 en haut.
Le plugin Single Sign-On est présent, cliquer sur le dossier pour l’installer 1.
Le plugin est installé, il faut maintenant l’activer, cliquer sur le sélecteur rouge 1.
Le plugin est activé.
Configuration du SSO entre Keycloak et GLPI
On va maintenant passer à la configuration de Keycloak et de GLPI. Dans cette partie on va jongler entre les deux interfaces.
Pour cette démonstration, j’ai créé un royaume dédié à GLPI qui se nommer glpi10.
Ajout du client GLPI dans Keycloak
Dans Keycloak aller à la liste des Clients 1 et sur la page « Clients », cliquer sur Create client 2.
Configurer le Client ID 1 et nommer le client 2, cliquer ensuite sur Next 3.
Passer à On Client authentification 1 et cliquer sur Next 2.
Dans les champs Root URL 1 et Home URL 2 entrer l’URL de GLPI avec / à la fin, cliquer sur le bouton Save 3.
Le client est ajouté dans le royaume Keycloak.
Configuration du SSO dans GLPI avec Keycloak
Depuis le menu GLPI aller sur Configuration 1 et cliquer sur Single Sign-on 2.
Cliquer sur le bouton Ajouter 1.
On va maintenant passer à la configuration :
- 1 Nommer le fournisseur Sigle Sign-on, ce nom sera afficher sur le bouton de connexion.
- 2 SSO Type, choisir Généric
- 3 Activer le fournisseur
- 4 Indiquer le Client ID configurer dans Keycloak
- 5 Entrer le Client Secret qui est disponible dans Keycloak sur l’onglet Credentials
- 6 Scope indiquer : email profile openid
- 7 Authorize URL : https://<keycloak-url>/realms/<realm-name>/protocol/openid-connect/auth
- 8 Access Token URL : https://<keycloak-url>/realms/<realm-name>/protocol/openid-connect/token
- 9 Resource Owner Details URL : https://<keycloak-url>/realms/<realm-name>/protocol/openid-connect/userinfo
- 10 Modifier la couleur pour rendre le texte visible sur le bouton.
Cliquer ensuite sur Ajouter 11.
Le fournisseur SSO est ajouté.
On peut retourner sur le détail du fournisseur en cliquant dessus depuis la liste ou sur la notification lors de l’ajout.
Test de l’authentification à GLPI avec Keycloak
Création d’un utilisateur de test
Avant de pouvoir se connecter sur GLPI avec Keycloak, nous allons créer un utilisateur de test.
Il est possible de provisionner automatiquement Keycloak avec une liaison LDAP/Active Directory
Aller sur la page Users 1 et cliquer sur Add user 2.
Entrer les informations de l’utilisateur 1 et cliquer sur Create 2.
L’utilisateur est créé, il faut maintenant lui définir un mot de passe, cliquer sur l’onglet Credentials 1.
Cliquer sur le bouton Set password 1.
Configurer le mot de passe.
L’utilisateur de test est prêt.
Connexion à GLPI depuis Keycloak
Depuis la page de connexion à GLPI, cliquer sur le bouton fournisseur SSO 1.
Sur le formulaire d’authentification de Keycloak, entrer les informations de l’utilisateur créé précédemment 1 et cliquer sur Sign In 2.
Après la connexion on arrive sur la page libre service de GLPI avec notre utilisateur Keycloak.
Si vous avez plusieurs sources d’utilisateur base locale / Active Directory, il est possible pour les utilisateurs qui sont aussi présent par Keycloak de lié leur compte en allant sur l’onglet Sign Sign-On et en cliquant sur le bouton Login with Keycloak.
L’utilisateur Keycloak dans GLPI
Dans la liste des utilisateurs, on peut voir que l’utilisateur issu de Keycloak a été provisionné dans la base locale.
Détail de l’utilisateur, on peut voir que les informations de l’utilisateur disponible dans Keycloak ont été ajoutées à GLPI.
Vous savez maintenant comment mettre en place le SSO avec Keycloak et GLPI 10.
Si vous souhaitez utiliser ADFS, la configuration est similaire sauf qu’il faudra configurer l’url de callback dans ADFS qui est disponible après la création de fournisseur.