Category: GLPI Network Cloud

Subject

GLPI Network Cloud et Azure AD

Content

Dans cet article, nous allons voir les différents cas d'utilisation possibles entre GLPI et Azure AD.

Rappelons d'abord qu'utiliser un annuaire Azure permet deux fonctionnalités avec GLPI : Synchroniser les utilisateurs et Authentifier ces derniers.

L'authentification peut se faire de deux manières :

* Authentification LDAPS via la synchronisation de l'annuaire (des utilisateurs) dans GLPI

* Authentification Oauth SSO ( la synchronisation n'est pas obligatoire )

Les différents cas d'utilisation résident dans la combinaison ou non de ces deux fonctionnalités: Synchroniser et/ou Authentifier.

 

Nous allons maintenant détailler les configurations de ces fonctionnalités.

 

Synchronisation de l'annuaire et/ou Authentification LDAP(S)

 

Azure AD requiert l'utilisation du protocole LDAPS pour être synchronisé.

Microsoft a parfaitement documenté la configuration de son environnement en vue de l'utilisation de LDAPS.

Nous vous invitons donc à suivre la documentation officielle ici afin de préparer votre environnement Azure AD.

Pensez à bien étudier la section Configurer le protocole LDAP sécurisé pour une utilisation sur l’internet public.

  • N'oubliez pas que vous pouvez déterminer l'adresse IP de votre instance GLPI Network Cloud en suivant l'article ici, si vous souhaitez établir des règles d'accès LDAPS sur votre environnement Azure AD.

Si votre environnement Azure AD est mal préparé pour LDAPS, ça ne fonctionnera pas côté GLPI !

  • Une fois votre environnement Azure AD préparé, vous devez envoyer via le formulaire de support ici, une demande d'import de certificat de votre annuaire sur votre instance GLPI Network Cloud !

 

  • Notre équipe intégrera le certificat dans le système et vous fera un retour pour valider l'intégration et vous permettre de continuer la procédure.

 

  • Pensez également à créer un "compte de service" (un utilisateur) dans votre annuaire, uniquement dédié à l'interconnexion entre GLPI et votre annuaire Azure AD.


Une fois votre environnement Azure AD préparé pour LDAPS, Retournez sur GLPI !

 

  • Vous devez créer une source d'authentification de type Annuaire LDAP. Rendez vous dans le menu Configuration -> Authentification -> Annuaires LDAP
  • En cliquant sur ace196eb-71844724-5ffda09d20a5f2.52686726 nous allons ajouter un annuaire à connecter.
  • Ici nous devons configurer notre annuaire pour une connexion LDAPS

ace196eb-71844724-5ffed45d0c34d3.18582162

Explication des champs :

  • Nom

Le nom à saisir ici sera celui affiché dans la liste de vos annuaires, il n'influence pas la configuration.

  • Serveur par défaut

Ce paramètre vous permet de définir si cet annuaire devra être utilisé en priorité ou non.

  • Actif

Ce paramètre vous permet d'activer/désactiver cet annuaire suite à sa création. Ce paramètre sera bien entendu modifiable à tout instant.

  • Serveur

Devant l'IP ou le FQDN de votre serveur LDAP, ajoutez ldaps:// , ex: ldaps://azure.mycompany.com ou ldaps://xxx.xxx.xxx

  • Port

Saisissez ici le port requis pour la connexion à votre annuaire. LDAPS requiert le port 636

  • Filtre de connexion

On peut mettre en place une condition pour la recherche. Celle-ci permet de filtrer la recherche des utilisateurs à un nombre réduit d'enregistrements.

Pour Active Directory, utiliser le filtre suivant, qui ne renvoie que les utilisateurs non désactivés (car les machines sont aussi considérées comme des utilisateurs par AD) :

(&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))

Ce filtre est un exemple standard, il sera peut être à adapter selon votre contexte !

  • BaseDN

Attention, la basedn doivent être écrits sans espaces après les virgules. De plus, la casse est importante.

Pour une utilisation standard, les paramètres à entrer sont très simples, par exemple :

Si votre Serveur = azure.mycompany.com

Alors votre BaseDN = dc=mycompany,dc=com

  • DN du compte (pour les connexions non anonymes)

Saisissez ici le DN complet du compte de service qui s'authentifiera auprès de votre annuaire

  • Mot de passe du compte (pour les connexions non anonymes)

Saisissez ici le mot de passe du compte de service qui s'authentifiera auprès de votre annuaire. Notez que lors de l'enregistrement de la configuration, ce champ apparaîtra vide, ceci est normal, le mot de passe sera bien enregistré en base de données.

  • Champ de l'identifiant
    • Pour Azure AD avec authentification SSO ! On indiquera le champ userprincipalname
    • Pour Azure AD sans authentification SSO ! On indiquera le champ samaccountname

 

  • Commentaires

Ce champ n'influence pas la configuration, ce n'est qu'un champ texte vous permettant de placer une indication, une remarques, etc.

  • Champ de synchronisation

Dans les schémas fournis par défaut nous conseillons par exemple d’utiliser l’attribut « objectGUID » (correspondant à l’identifiant unique officiel d’un objet) ;
Attention à ce champ, une fois configuré il ne pourra pas pas être modifier.


Une fois les champs saisis, Cliquez sur Ajouter pour enregistrer votre annuaire.

 

Lors de l'enregistrement, un test de connexion vers votre annuaire sera effectué par GLPI !

 

  • Une fois votre connexion LDAPS enregitrée, retournez dans la configuration de votre annuaire côté GLPI.
  • Dans l'onglet Informations avancées, passez le champ Utiliser les résultats paginés à Oui
  • Nous recommandons de passer le champ Taille de la page à 100
  • Nous recommandons de passer le champ Nombre maximum de résultats à Illimité

ace196eb-71844724-5ffeb9cfbb6ae3.45490967

Votre annuaire est connecté mais à vous maintenant de définir ce que vous souhaitez synchroniser !

  • Pour cela rendez vous dans la configuration de votre annuaire et utilisez les onglets Utilisateurs et Groupes en personnalisant les attributs LDAP que vous souhaitez synchroniser et les paramètres qui vous sont utiles.

Cette section est terminée.

 

Authentification Oauth SSO

 

  • Pour configurer une authentification Oauth SSO sur GLPI vous devez installer, si ce n'est pas déjà fait, le plugin Oauthsso via le marketplace de votre instance.

ace196eb-71844724-5ffdadc3987587.55577075

Une fois le plugin installé il est nécessaire de pré configurer certains paramètres.

 

Pré configuration du plugin Oauthsso

 

Le plugin utilise la fonctionnalité d'Authentification externe de GLPI, donc pour être fonctionnel, il a besoin d'une configuration.

  • Dans le menu Configuration> Authentification> Autres méthodes d'authentification, dans la section Autre authentification transmise dans la requête HTTP

 

Nous allons détailler ici les deux cas possibles : AVEC OU SANS synchronisation de l'annuaire.

 

Avec synchronisation préalable de l'annuaire

 

  • Le champ Champs de stockage de l'identifiant dans la requête HTTP doit passer à HTTP_AUTH_USER
  • Le champ Supprimer le domaine des identifiants de la forme identifiant@domaine doit être placer sur Non
  • Aucune autre modification n'est nécessaire
  • Enregistrer la configuration

ace196eb-71844724-5ffebd2c6d7f32.64724028

 

Dans le cas où nous avons synchronisé préalablement les utilisateurs, nous ne souhaitons pas les créer quand il se connecte car ils sont déjà connus dans GLPI.

Nous devons donc désactiver l'ajout automatique.

  • Dans le menu Configuration> Authentification> Configuration, le champ Ajout automatique des utilisateurs à partir des sources externes d'authentification doit passer à Non

ace196eb-71844724-5ffec2351dd3c9.24618924

 

Sans synchronisation de l'annuaire

 

  • Champs de stockage de l'identifiant dans la requête HTTP : doit être défini, le plus souvent HTTP_AUTH_USER
  • Le champ Supprimer le domaine des identifiants de la forme identifiant@domaine doit être placer sur Non

Les utilisateurs qui vont s'authentifier ne seront pas connus de GLPI, il est donc nécessaire de peupler certains champs pour créer leur fiche dans GLPI avec un minimum d'informations.

Les champs recommandés sont les suivants:

  • Nom de famille : givenName
  • Prénom : familyName
  • Courriel: email
  • Langue: language

ace196eb-71844724-5ffebde94b0bf0.29837209

  • Enregistrez votre configuration

Vous devez également activer le comportement d'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 Ajout automatique des utilisateurs à partir des sources externes d'authentification doit passer à Oui

ace196eb-71844724-5ffec17e5552d4.32447922

 

 

Configuration de l'authentification Oauh SSO

 

  • Maintenant que le plugin est prêt à être utilisé, rendez vous dans le menu Configuration > Applications Oauth SSO
  • En cliquant sur ace196eb-71844724-5ffda09d20a5f2.52686726 nous allons ajouter une configuration Oauth SSO.
  • Sélectionnez Azure dans Fournisseur Oauth

ace196eb-71844724-5ffecbe55a45a7.93615962

  • Restez sur cette page pour le moment, il faut maintenant se rendre sur votre environnement Azure.

 

Vous devez inscrire une application avec votre client Azure Active Directory (Azure AD). Ceci vous fournira un ID d’application pour votre application (GLPI) et lui permettra de recevoir des jetons.

  • Connectez-vous au portail Azure.

  • Choisissez votre locataire Azure AD en sélectionnant votre compte dans l’angle supérieur droit de la page. Sélectionnez ensuite la barre de navigation Changer de répertoire, puis le locataire souhaité.

    47dcdf3c-71844724-5f314465275ce0.46632187 

    • Ignorez cette étape si vous n’avez qu’un locataire Azure AD sous votre compte ou si vous avez en déjà sélectionné un.

     

  • Dans le Portail Azure, recherchez et sélectionnez Azure Active Directory.

  • Dans le menu gauche Active Directory, sélectionnez Inscriptions d’applications, puis Nouvelle inscription.

 

47dcdf3c-71844724-5f3144829bf6e4.40529747

  • Suivez les invités et créez une application:

47dcdf3c-71844724-5f31449c8beec3.24272555

    • Le nom de l’application donne une description de votre application aux utilisateurs finaux.

 

    • Sous la section Types de comptes pris en charge, sélectionnez une des deux premières options (la troisième option ne fonctionnera pas avec GLPI)
      • Comptes dans cet annuaire d'organisation uniquement et comptes personnels Microsoft.
      • Comptes dans un annuaire d'organisation (tout annuaire Azure AD - Multilocataire)

 

    • Fournissez l’URI de redirection que vous retrouverez dans la page de configuration de GLPI que nous avons laissé plus haut.

ace196eb-71844724-5ffdb497771644.85335921

  • Une fois l’inscription terminée, Azure AD attribue un identificateur client unique à votre application (l’ID d’application).

ace196eb-71844724-5ffdb19561e6e2.69571866

  • Copiez cette valeur dans le champ ID d'application (client) de GLPI

ace196eb-71844724-5ffdb441b44380.84877154

 

  • Il faut ensuite généré le "secret client" depuis le menu Certificats & secrets puis Nouveau secret client.
  • Définissez un nom et une date d'expiration.

ace196eb-71844724-5ffdb4edcf2b01.05075303

 

  • Collez la Valeur du secret dans le champ Secret client de GLPI:

 

Pensez à sauvegarder la Valeur de votre secret dans un outil tiers  (gestion de mot de passe, coffre fort virtuel, etc) ! Cette valeur ne vous sera jamais transmise de nouveau dans Azure AD !

 

ddc460c4-71844724-601913241ccd64.20984786

            ace196eb-71844724-5ffdb515eea6d5.20654108 

  • Le champ ID de l'annuaire (locataire) est à remplir avec l'ID que vous obtiendrez en suivant la documentation officielle ici . Si vous n'avez qu'un seul locataire, cet ID se trouve également dans le descriptif de l'inscription d’applications que vous avez réalisé plus haut.

ace196eb-71844724-5ffdb6d5a84ef2.27007273

  • Donnez un nom à votre connexion Oauth SSO
  • Passez Actif à Oui
  • Cliquez sur Ajouter pour enregistrez la configuration

La page d'authentification de votre instance vous proposera maintenant votre connexion Oauth SSO comme source d'authentification.

605fca3f-71844724-5f7f0792b60d08.21408025

 

 

 

 

 

Writer: TECLIB
Created on 2021-01-12 14:29
Last update on 2021-02-02 14:50
2376 views
This item is part of the FAQ