GLPI 10 : authentification avec Keycloak – SSO OpenID

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

Il existe bien un plugin officiel pour l’authentification OpenID, malheureusement celui-ci est disponible en payant un abonnement au service GLPI

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.

J’ai installĂ© ce plugin sur une plateforme de test, si vous souhaitez le mettre en production, une relecture du code de celui-ci s’impose

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.

Romain Drouche
Romain Drouche
Architecte SystĂšme | MCSE: Core Infrastructure
Expert en infrastructures IT avec plus de 15 ans d’expĂ©rience sur le terrain. Actuellement Chef de projet SystĂšmes et RĂ©seaux et RĂ©fĂ©rent SSI (SĂ©curitĂ© des SystĂšmes d’Information), je mets mon expertise au service de la fiabilitĂ© et de la sĂ©curitĂ© des environnements technologiques.

Laisser un commentaire