OAuth SSO
Prérequis (auto-hébergé)
10.0.x
8.1
8.2
11.0.x
8.2
8.4
Une souscription GLPI Network BASIC (ou supérieure) est requise. Ce plugin est également disponible pour toutes les instances GLPI Network Cloud.
Pour Google et OKTA : seules les URL publiques ET sécurisées (https) sont acceptées. Si votre URL GLPI n'est pas accessible depuis Internet, cette procédure ne s'applique pas.
Pour Entra, Keycload : les URL privées (non disponibles sur Internet) sont acceptées, mais doivent être sécurisées (https).
Installer le plugin
Aller sur le marketplace. Télécharger Oauth SSO et l'activer

Authentification externe
Le plugin utilise la fonctionnalité Authentification externe de GLPI et pour être fonctionnel, il a besoin d'une configuration initiale.
Aller dans
Configuration>Authentification>Autres méthodes d'authentificationDans la section
Autres authentifications transmises dans la requête HTTPLe champ
Champs de stockage pour l'identifiant dans la requête HTTPdoit être défini, généralement HTTP_AUTH_USER.Le champ S
upprimer le domaine des identifiants de type identifiant@domainepeut être défini sur Oui ou Non.
Dans le cas d'une authentification via SSO, l'option Supprimer le domaine des identifiants de type identifiant@domaine peut être définie sur Oui, ce qui permettra de fusionner 2 enregistrements utilisateurs s'ils sont déjà présents dans la base de données (interne ou LDAP(S)).
Attention car cette option est sujette à l'usurpation d'identité. Si votre application est ouverte à des utilisateurs autres que les vôtres, il est possible qu'un utilisateur puisse être fusionné avec un autre. Par exemple, jean.dupont@mondomaine.fr a un homonyme mais une adresse email différente jean.dupont@unautredomaine.fr. En supprimant le domaine, les 2 enregistrements seront fusionnés et les Jean Dupont auront le même compte.
Les utilisateurs qui vont s'authentifier ne seront pas connus de GLPI, il est donc nécessaire de renseigner certains champs pour créer leur fiche avec un minimum d'informations.
Les champs qui peuvent être récupérés par SSO sont les suivants :
Nom : givenName
Prénom : familyName
Email : email
Email2 : email2
Numéro de téléphone : phone
Mobile : mobile
Titre : title
Langue : language

Sauvegarder votre configuration
Vous devez également activer l'ajout automatique des utilisateurs dans GLPI pour les créer dans GLPI au moment de l'authentification
Dans le menu
Configuration>Authentification>ConfigurationLe champ
Ajouter automatiquement les utilisateurs depuis les sources d'authentification externesdoit être changé en Oui

Option de récupération des informations du profil utilisateur
Vous pouvez choisir si vous souhaitez récupérer les informations du profil utilisateur. Dans Configuration > Applications Oauth SSO, sélectionnez oui ou non selon vos besoins.
Si OAuth SSO est votre unique source d'authentification ET de provisionnement, nous vous recommandons de définir l'option Récupérer les informations du profil utilisateur sur Oui afin que les informations utilisateur puissent être récupérées. Veuillez noter que les claims doivent également être correctement configurés côté fournisseur.
Si vous utilisez une source de provisionnement externe telle que SCIM, nous vous recommandons de définir l'option Récupérer les informations du profil utilisateur sur Non afin que les informations utilisateur ne soient pas écrasées et remplacées par celles du plugin OAuth SSO.
Apple
Créer un nouvel identifiant
Rendez-vous sur cette page pour configurer le fournisseur Apple
Créez un nouvel "Identifiant" dans l'onglet
Identifiers.

Sélectionnez
App IDs

Puis continuez
Sélectionnez
type=>App

Puis continuez
Sélectionnez la capacité
Sign in with Apple

Le
Team IDse trouve ici (1).Le
Client IDse trouve ici (2).

Fichier de clé et ID de clé
Rendez-vous ici pour créer le fichier de clé

Entrez un nom et une description (1).

Sélectionnez
Sign in with AppleCliquez sur
Configure(2) pour sélectionner l'App IDcréé précédemment

Après avoir enregistré votre application, vous pourrez récupérer :
Le
Key File(1)Le
Key ID(2)

Vous avez maintenant toutes les informations nécessaires pour configurer votre fournisseur dans le plugin OauthSSO.
Veuillez noter : Le traitement de l'identifiant et de la clé Apple peut prendre un certain temps côté Apple ; potentiellement jusqu'à 48 heures.
Avertissement concernant la récupération des informations utilisateur
Pour l'instant, seuls l'email, l'identifiant sujet (sub), le prénom et le nom peuvent être récupérés auprès du fournisseur d'identité.

Concernant la récupération du prénom / nom. Veuillez noter que ces informations ne sont disponibles lors de la première connexion de l'utilisateur, à condition que l'utilisateur accepte le partage de ses informations. Pour les connexions ultérieures, seul l'identifiant utilisateur sera récupéré.
Entra
Enregistrer votre application dans Entra
Tout d'abord, enregistrez votre application auprès de votre client Entra Active Directory (Entra AD). Cela vous fournira un ID d'application pour votre application et lui permettra de recevoir des jetons.
Connectez-vous au portail Entra
Choisissez votre locataire Entra AD en sélectionnant votre compte en haut à droite de la page. Sélectionnez ensuite la barre de navigation Changer de répertoire, puis le locataire souhaité
Ignorez cette étape si vous n'avez qu'un seul locataire Entra AD sous votre compte ou si vous en avez déjà sélectionné un

Dans le portail Entra, recherchez et sélectionnez Entra Active Directory
Dans le menu Active Directory de gauche
sélectionnez
Inscriptions d'applicationsPuis
Nouvelle inscription.

Entrez web dans l'URI de redirection et collez l'URL de retour de votre instance GLPI :


Secret et certificat
Dans l'onglet certificats et secrets, créez un nouveau secret qui devra être transféré à votre application Oauth SSO côté GLPI :

Lorsque vous cliquerez sur ajouter, le secret ne sera disponible qu'une seule fois. Dès que vous quitterez cette page, le secret sera masqué et nous ne pourrons plus y accéder. Pensez à le conserver en lieu sûr car nous en aurons besoin plus tard.

Claims
Si vous utilisez SSO V2, une étape supplémentaire est requise. Les claims du côté Entra doivent être saisis manuellement et être de préférence de type ID.
Dans l'onglet Configuration des jetons
Cliquez sur Ajouter une revendication facultative
Ajoutez les 4 claims ci-dessous :

Autorisations API
GLPI doit pouvoir lire les informations utilisateur afin de les utiliser pour la connexion
Dans Permissions de l'API
Cliquez sur l'API déjà présente (Microsoft Graph pour notre exemple)


Sélectionnez :
email
offline_access
profile
user.read
Pensez ensuite à sauvegarder vos modifications.
Configuration GLPI
Entra AD fournit une description avec les informations essentielles dont vous avez besoin :

Spécifiez un nom d'application visible par les utilisateurs finaux.

Copiez les valeurs des champs ci-dessus :
ID de l'application
L'ID du détenteur
La valeur du secret copié à l'étape précédente
Veuillez vérifier que la valeur du secret est correctement renseignée. Si l'ID du secret est copié, votre application tombera en erreur.
Explication du champ ID
3 valeurs sont disponibles dans cet encart :

User Principal Name (UPN) : cette option affichera le nom d'utilisateur complet de l'utilisateur qui se connecte (nom.prenom@mondomaine.com par exemple). Si vous souhaitez que seul le nom d'utilisateur soit visible (sans le @mondomaine.com, voir Authentification externe).
Entra user ID (OID) : cette option prend l'ID d'objet de l'Entra AD. Cet ID sera utilisé pour la connexion de l'utilisateur

Adresse e-mail : cette option spécifie l'adresse e-mail de l'utilisateur. Ce champ sera utilisé pour la connexion. S'il est vide, l'UPN sera utilisé.
Si vous avez besoin de retrouver votre application dans le portail Entra, sélectionnez Abonnements d'applications, puis Afficher toutes les applications.
Google
Google n'admet que des URLs publiques ET sécurisées (https). Si l'URL de votre GLPI n'est pas disponible depuis Internet, cette procédure ne sera pas applicable.
Création d'un projet
Depuis votre console Google (un accès administrateur est requis)
Rendez-vous sur votre organisation puis nouveau projet
Entrez le nom de votre projet
Cliquez sur Créer

Revenez sur votre organisation
Sélectionnez votre projet

Configuration de l'accès Oauth
Depuis le menu, cliquez sur APIs & Services
Puis Écran de consentement OAuth

Information de l'application
Depuis l'aperçu, cliquez sur
CommencezIndiquez le nom de l'application ainsi que l'utilisateur du support (les utilisateurs pourront vous contacter sur des questions concernant leur consentement)

Audience
Sélectionnez le type d'accès qui sera accordé à l'application (utilisateurs internes ou externes)
Cliquez ensuite sur
Suivant.

Information de contact
Indiquez le nom du contact (ce contact sera informé des modifications effectuées sur l'application)

Politique de données utilisateur des services Google API.
Acceptez la Politique de données utilisateur des services Google API et cliquez sur
ContinuezetCréer

Création d'un client
Type d'application
Il faut maintenant créer un client d'application qui fera le lien entre Google et votre instance GLPI grâce à un ID d'application et un secret client.
Dans l'onglet Clients, cliquez sur
Créer un clientSélectionnez Application Web dans le type d'application
Entrez un nom pour votre application

URIs de redirection autorisés
L'URL de retour devra être indiquée dans cette partie. Cette URL est indiquée dans GLPI dans la section Configuration > OAUth SSO
Obtenir l'URL de callback sur GLPI
Depuis
Configuration>OAuth SSO>+ AjouterNommez votre application
Indiquez le Fournisseur OAuth
Cliquez sur
+ Ajouter

Sur l'écran suivant, récupérer l'URL de callback

Copiez/collez cette URL dans votre application Google

Cliquez sur
Créerpour valider votre application
Information d'application
A la prochaine étape, le secret client vous sera affiché. Dès que vous quitterez cet écran, il ne sera plus disponible. Pensez à le sauvegarder en lieu sûr
L'application est maintenant créée. Sur l'écran s'affiche l'ID d'application et le secret client qui seront à indiquez dans GLPI


Sauvegarder votre saisie
Informations optionnelles
Si vous activez la possibilité de remonter les informations du profil depuis OAuth SSO, des informations supplémentaires seront nécessaires pour qu'elles soient visibles par GLPI.
Depuis l'onglet Accès aux données, cliquez sur
Ajouter ou supprimer des niveaux d'accèsAjouter les niveaux suivants :
auth/userinfo.email
auth/userinfo.profile
openid

Depuis la page d'accueil, la nouvelle option de connexion Oauth SSO sera visible :

La première fois qu'un utilisateur se connectera, il lui sera demandé d'accepter les autorisations d'accès à son profil
OKTA
Création d'une application
Rendez-vous d'abord sur GLPI et téléchargez le plugin Oauthsso
Naviguez vers Configuration > Applications Oauth SSO
Cliquez sur Ajouter

Gardez cette fenêtre active et conservez l'URL de rappel :

Dans votre interface OKTA, rendez-vous sur Applications
Créer une intégration d'application

Sélectionnez l'option OIDC -- OpenID Connect dans le 1er encart et Application Web dans le second
Cliquez sur Suivant

Entrez un nom d'application et cochez la case Identifiants client

Entrez l'URL de retour, récupérée ci-dessus, dans les URIs de redirection de connexion.

Affectations
Dans la dernière boîte, sélectionnez l'option qui vous convient le mieux (ici nous autorisons tous les utilisateurs présents dans OKTA)
Cliquez enfin sur Enregistrer

Configuration GLPI
Dans GLPI, retournez à la fenêtre de configuration du plugin Oauth SSO et renseignez les informations de votre tenant OKTA :

Donnez un nom à votre fournisseur, celui-ci apparaîtra sur la page de connexion.
Indiquez celui-ci comme actif
Entrez OKTA comme fournisseur Oauth
Entrez l'ID de l'application trouvé dans l'application précédemment créée dans OKTA

Spécifiez le champ ID à mapper avec OKTA
Spécifiez le secret client disponible dans OKTA dans l'application précédemment créée

Entrez le nom de votre instance OKTA (https://XXXXXXXXX.okta.com), disponible dans l'e-mail de confirmation de création de compte.
Cliquez sur Add
Dans le plugin, vous verrez le message d'approbation :

Maintenant que la configuration est terminée, vous pouvez la tester avec un utilisateur.


Keycloak
Créer un REALM
Après avoir installé keycloak, rendez-vous dans la console d'administration :
http://XXXXXXXXXX:8080/admin ou https://XXXXXXXXXX:8080/admin
Créez votre realm en cliquant sur master en haut à gauche de votre écran
Puis create Realm
Donnez-lui un nom qui vous convient
Cliquez sur Create

Créer un utilisateur
Rendez-vous ensuite dans l'onglet Users
Puis Create new user (nous utiliserons un utilisateur local, mais vous pouvez synchroniser votre LDAP si besoin)

Créez votre utilisateur selon vos besoins, en n'oubliant pas de cocher la case Email verified
Cliquez sur Create une fois vos informations saisies.

Restez dans votre fiche utilisateur et cliquez sur Credentials
Puis Set pasword

Configurez le mot de passe utilisateur, en prenant soin d'indiquer que le mot de passe n'est pas temporaire
Cliquez sur save puis Save password

Vous pouvez vérifier que votre configuration est correcte en vous connectant sur la console de compte utilisateur :
http://XXXXXXXXXXX/realms/GLPI/account/#/ ou https://XXXXXXXXXXX/realms/GLPI/account/#/
(Pensez à adapter le nom du realm si vous ne l'avez pas nommé GLPI).
Vous pourrez alors vous connecter sur la fiche de l'utilisateur créé précédemment ou sur un de vos utilisateurs LDAP.
Créer un client
Nous pouvons maintenant enregistrer notre application GLPI auprès de Keycloak
Rendez-vous dans Clients
Create client

Donnez un client ID à votre application, que vous devrez reporter dans la configuration Oauth SSO de GLPI
Cliquez sur next et assurez-vous sur la page suivante que les options standard flow et client authentication sont actives
Cliquez sur Save
Laissez cette page ouverte, nous y reviendrons plus tard.

Configuration GLPI
Rendez-vous dans GLPI
Dans Setup > Oauth SSO applications cliquez sur add (en haut de votre écran)

Commencez par récupérer l'URL de retour et collez-la dans le champ valid redirect URIs de Keycloak

De retour dans la configuration du plugin Oauth SSO de GLPI, remplissez les champs requis :

Donnez un nom à votre provider, il apparaîtra sur la page de connexion des utilisateurs
Activez ce plugin afin qu'il soit visible et utilisable sur la page de connexion
Choisissez Keycloak comme provider Oauth
Entrez le nom du client défini précédemment
Récupérez le client secret depuis Keycloak (client, client_name, credentials)

Entrez l'URL de découverte : http://mondomaine/realms/monrealms/.well-known/openid-configuration.
Cliquez sur Add
Dans le plugin, pour voir le message d'approbation :

Maintenant que la configuration est terminée, vous pouvez tester la connexion avec l'utilisateur que vous avez créé précédemment, ou avec votre utilisateur LDAP.



Règles d'attribution des autorisations
N'oubliez pas que l'authentification Oauth SSO permet uniquement l'authentification, dans le sens où aucune gestion d'utilisateur n'est effectuée suite à l'authentification.
Dans la plupart des cas, il sera donc nécessaire de mettre en place des règles d'attribution des autorisations à vos utilisateurs (pour leur donner un profil par exemple).
Pour ce faire, rendez-vous dans Administration > Règles > Règles d'attribution des autorisations à un utilisateur.
Il n'y a pas de règles « obligatoires », à vous de créer la ou les règles qui vous semblent les plus adaptées à vos besoins selon les critères dont vous disposez.
Par exemple, une règle très simple
Une règle très simple -> Je souhaite que mes utilisateurs ayant une authentification SSO obtiennent le profil Self-Service.
Je définis donc mes critères et mon action :

Forcer l'authentification SSO
Grâce à la configuration de l'application Oauth SSO, vous pouvez masquer le champ de connexion à la base de données interne pour forcer la connexion avec votre application SSO
(Configuration > Oauth SSO applications > Configuration)

Ressources
FAQ
Si vous avez des questions concernant l'utilisation du plugin, n'hésitez pas à consulter notre FAQ
Mis à jour