OAuth SSO
Prérequis (auto-hébergé)
10.0.x
8.1
8.2
11.0.x
8.2
8.4
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'authentification
Dans la section Autres authentifications transmises dans la requête HTTP
Le champ Champs de stockage pour l'identifiant dans la requête HTTP doit être défini, généralement HTTP_AUTH_USER.
Le champ Supprimer le domaine des identifiants de type identifiant@domaine peut être défini sur Oui ou Non.
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 > Configuration
Le champ Ajouter automatiquement les utilisateurs depuis les sources d'authentification externes doit ê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 ID
se trouve ici (1).Le
Client ID
se 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 Apple
Cliquez sur
Configure
(2) pour sélectionner l'App ID
créé 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
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'applications
Puis 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 ([email protected] par exemple). Si vous souhaitez que seul le nom d'utilisateur soit visible (sans le @mondomaine.com, voir le paragraphe XXXXXXXXXX).
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
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
Sélectionnez le type d'accès qui sera accordé à l'application (utilisateurs internes ou externes)
Cliquez ensuite sur Créer.
Entrez (au minimum) un nom pour l'application, une adresse e-mail pour le support de l'application et l'adresse e-mail du développeur (ces informations sont obligatoires).
Cliquez sur Enregistrer et continuer.
Dans la section Champ d'application
Cliquez sur Ajouter ou supprimer des champs d'application
Ajoutez auth/userinfo.email auth/userinfo.profile et openid
Cliquez sur Mettre à jour
Puis Enregistrer et continuer
Paramètres ID
Depuis le menu Identifiants
Cliquez sur Créer des identifiants
Puis ID client OAuth.
Sélectionnez le type d'application Application Web
Entrez un nom d'application
Dans la section URIs de redirection autorisés
Entrez l'URL de rappel de GLPI
Cliquez sur Créer
Une page apparaît avec les valeurs de l'identifiant. Conservez ces informations car elles vous seront demandées dans GLPI.
Configuration GLPI
Depuis Configuration > Applications Oauth SSO
Cliquez sur Ajouter
Sélectionnez Google dans le champ Fournisseur Oauth
Sélectionnez l'icône qui sera visible sur la page d'accueil
Entrez l'ID client (numéro 1 sur la capture d'écran précédente)
Entrez le Secret client (numéroté 2 sur la capture d'écran précédente)
Entrez le champ ID utilisateur
Cliquez sur Ajouter
Depuis la page d'accueil, la nouvelle option de connexion Oauth SSO sera visible :

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
(setup > Oauth SSO applications > setup)

Ressources
FAQ
Si vous avez des questions concernant l'utilisation du plugin, n'hésitez pas à consulter notre FAQ
Mis à jour
Ce contenu vous a-t-il été utile ?