OAuth SSO

Prérequis (auto-hébergé)

Version GLPI
PHP Minimum
Recommandé

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.

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.

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)).

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

images/oauhtsso-3.png
  • 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

images/oauhtsso-4.png

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.

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.

images/apple_identifier.png
  • Sélectionnez App IDs

images/apple_apps_id.png
  • Puis continuez

  • Sélectionnez type => App

images/apple_app_type.png
  • Puis continuez

  • Sélectionnez la capacité Sign in with Apple

images/apple_sign_in.png
  • Le Team ID se trouve ici (1).

  • Le Client ID se trouve ici (2).

images/apple_edit_conf.png

Fichier de clé et ID de clé

images/apple_key.png
  • Entrez un nom et une description (1).

images/apple_sign_in_key.png
  • Sélectionnez Sign in with Apple

  • Cliquez sur Configure (2) pour sélectionner l'App ID créé précédemment

images/apple_conf_key.png

Après avoir enregistré votre application, vous pourrez récupérer :

  • Le Key File (1)

  • Le Key ID (2)

images/apple_download_key.png

Vous avez maintenant toutes les informations nécessaires pour configurer votre fournisseur dans le plugin OauthSSO.

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é.

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

images/oauth-Entra-1.png
  • 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.

images/oauth-Entra-2.png
  • Entrez web dans l'URI de redirection et collez l'URL de retour de votre instance GLPI :

images/oauth-Entra-3.png
images/oauth-Entra-4.png

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 :

images/oauth-Entra-5.png

Claims

  • Dans l'onglet Configuration des jetons

  • Cliquez sur Ajouter une revendication facultative

  • Ajoutez les 4 claims ci-dessous :

images/oauth-Entra-7.png

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)

images/oauth-Entra-12.png
images/oauth-Entra-13.png

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 :

images/oauth-Entra-6.png
  • Spécifiez un nom d'application visible par les utilisateurs finaux.

images/oauth-Entra-4bis.png

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

Explication du champ ID

  • 3 valeurs sont disponibles dans cet encart :

images/oauth-Entra-8.png
  1. 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).

  2. 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

images/oauth-Entra-9.png
  1. 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

    images/oauth-sso-google-2.png
  • Revenez sur votre organisation,

  • Sélectionnez votre projet

    images/oauth-sso-google-3.png

Configuration de l'accès Oauth

  • Depuis le menu, cliquez sur APIs & Services

  • Puis Écran de consentement OAuth

    images/oauth-sso-google-4.png
  • Sélectionnez le type d'accès qui sera accordé à l'application (utilisateurs internes ou externes)

  • Cliquez ensuite sur Créer.

    images/oauth-sso-google-5.png
  • 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

    images/oauth-sso-google-6.png
  • 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.

    images/oauth-sso-google-7.png
  • 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

Où trouver mon URL de rappel ?

  • 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.

    images/oauth-sso-google-9.png

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

    images/oauth-sso-google-10.png
  • Cliquez sur Ajouter

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

images/oauth-sso-google-11.png

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

images/okta-2.png
  • Gardez cette fenêtre active et conservez l'URL de rappel :

images/okta-3.png
  • Dans votre interface OKTA, rendez-vous sur Applications

  • Créer une intégration d'application

images/okta-4.png
  • Sélectionnez l'option OIDC -- OpenID Connect dans le 1er encart et Application Web dans le second

  • Cliquez sur Suivant

images/okta-5.png
  • Entrez un nom d'application et cochez la case Identifiants client

images/okta-6.png
  • Entrez l'URL de retour, récupérée ci-dessus, dans les URIs de redirection de connexion.

images/okta-7.png

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

images/okta-8.png

Configuration GLPI

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

images/okta-9.png
  1. Donnez un nom à votre fournisseur, celui-ci apparaîtra sur la page de connexion.

  2. Indiquez celui-ci comme actif

  3. Entrez OKTA comme fournisseur Oauth

  4. Entrez l'ID de l'application trouvé dans l'application précédemment créée dans OKTA

images/okta-10.png
  1. Spécifiez le champ ID à mapper avec OKTA

  2. Spécifiez le secret client disponible dans OKTA dans l'application précédemment créée

images/okta-11.png
  1. 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 :

images/okta-12.png

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

images/okta-13.png
images/okta-14.png

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

images/keycloak-2.png

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)

images/keycloak-3.png
  • 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.

images/keycloak-4.png
  • Restez dans votre fiche utilisateur et cliquez sur Credentials

  • Puis Set pasword

images/keycloak-5.png
  • 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

images/keycloak-6.png

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

images/keycloak-7.png
  • 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.

images/keycloak-8.png

Configuration GLPI

  • Rendez-vous dans GLPI

  • Dans Setup > Oauth SSO applications cliquez sur add (en haut de votre écran)

images/keycloak-10.png
  • Commencez par récupérer l'URL de retour et collez-la dans le champ valid redirect URIs de Keycloak

images/keycloak-11.png
  • De retour dans la configuration du plugin Oauth SSO de GLPI, remplissez les champs requis :

images/keycloak-12.png
  1. Donnez un nom à votre provider, il apparaîtra sur la page de connexion des utilisateurs

  2. Activez ce plugin afin qu'il soit visible et utilisable sur la page de connexion

  3. Choisissez Keycloak comme provider Oauth

  4. Entrez le nom du client défini précédemment

  5. Récupérez le client secret depuis Keycloak (client, client_name, credentials)

images/keycloak-13.png
  • Cliquez sur Add

Dans le plugin, pour voir le message d'approbation :

images/keycloak-14.png

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.

images/keycloak-15.png
images/keycloak-16.png
images/keycloak-17.png

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 :

images/oauhtsso-7.png

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)

images/oauth-Entra-11.png

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 ?