GLPI 0.84.5 Over Active Direcory Ubuntu 14.04

  • Voici une installation de GLPI assez rapide, couplée à un annuaire Active Directory.

Pré requis

  • Des comptes utilisateurs disposants d'un attribut mail renseigné
  • Créer deux groupes sur votre AD : GLPI_Admins (Superviseurs) et GLPI_Tech (Techniciens).
  • Créer un compte avec mot de passe sur le domaine qui servira à se connecter sur les contrôleurs (ex: bind_glpi).
  • Un LAMP + les modules PHP LDAP & IMAP :

apt-get install php5-ldap php5-imap
/etc/init.d/apache2 restart

  • Une surprise lors de l'installation du paquet php5-imap, pas d'inscription du fichier .ini dans le répertoire de configuration. Si cela se produit :

echo "extension=imap.so" > /etc/php5/apache2/conf.d/10-imap.ini
service apache2 restart

Installation

  • Télécharger et décompresser les sources :

cd /usr/src/
wget https://forge.indepnet.net/attachments/download/1693/glpi-0.84.5.tar.gz
tar -xzf glpi-0.84.5.tar.gz
mv glpi /usr/share/glpi/
chown -R www-data: /usr/share/glpi/{files,config}

  • Créer et activer le VirtualHost :

vi /etc/apache2/sites-available/glpi.conf

<VirtualHost 192.168.1.10:80>
        ServerName              chronos.test.lan/
        Redirect                / https://chronos.test.lan/
</VirtualHost>

<VirtualHost 192.168.1.10:443>
        ServerName              chronos
        DocumentRoot            /usr/share/glpi
        ErrorLog                /var/log/apache2/glpi.log
        CustomLog               /var/log/apache2/glpi.log combined
        Loglevel                Debug
        SSLEngine               on
        SSLCertificateFile      /etc/apache2/ssl/chronos.crt
        SSLCertificateKeyFile   /etc/apache2/ssl/chronos.key
</VirtualHost>

a2ensite glpi.conf
service apache2 restart

  • Création de la base de données avec accès à l'utilisateur glpi_user :

mysql -u root -p
create database glpi;
grant all on glpi.* to 'glpi_user'@'localhost' identified by 'glpi_password';
flush privileges;
exit;

  • Se rendre sur la page du serveur qui héberge GLPI et valider les différentes questions :
Select your language Français
Licence J'ai lu et j'accepte…
Installation ou mise à jour de GLPI Installer
Vérification de la compatibilité de votre environnement avec l'exécution de GLPI Tout doit être vert :o)
Configuration de la connexion à la base de données
Serveur MySQL 127.0.0.1
Utilisateur MySQL glpi_user
Mot de passe MySQL glpi_password
Veuillez sélectionner une base de données : glpi
L'installation est terminée

Paramétrage

  • Se connecter avec le compte glpi (mot de passe : glpi) et commencer le paramétrage :

Sécurité

  • Modifier les mots de passe des comptes par défaut et/ou les désactiver.
  • Garder le compte GLPI sous le coude pour déboguer les éventuelles pannes de connexions aux différents référentiels externes (LDAP/AD).
  • Supprimer le fichier d'installation :

rm /usr/share/glpi/install/install.php

Authentification

  • Configuration / Authentification / Annuaire LDAP / + :
  • Ajouter un serveur (bouton +) et saisir les informations suivant le référentiel utilisé :

Annuaire(s) AD/LDAP

  • Renseigner les informations de connexion des différents contrôleurs de domaine :
Préconfiguration Active Directory
Nom Annuaire AD
Serveur par défaut Oui
Serveur dc1.test.lan
Filtre de connexion (&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
Basedn ou=Users,dc=test,dc=lan
DN du compte (pour les connexions non anonymes) cn=bind_glpi,ou=Users,dc=test,dc=lan
Mot de passe du compte (pour les connexions non anonymes) : password Champ de l'identifiant : samaccountname
  • Une fois l'ajout effectué, le test de connexion doit être concluant :

Élément ajouté avec succès : dc1.test.lan
Test réussi

  • Si tout va bien, refaire la même opération pour le deuxième contrôleur de domaine, voir plus…

Gestion des groupes & des utilisateurs

Importer des utilisateurs

Manuellement

  • Administration / Utilisateurs / Liaison annuaire LDAP / Importation de nouveaux utilisateurs
    • Cliquer sur Rechercher et sélection les utilisateurs à importer : Action et Importer

Automatiquement

  • De loin la plus simple et facilement paramétrable dans une crontab, utiliser le script suivant :

php /usr/share/glpi/scripts/ldap_mass_sync.php -server_id=0 action=0

Option Action
id Choix de l'annuaire référencé dans GLPI
action Méthode de synchronisation : 0 = Import des nouveaux Utilisateurs, 1 = Synchronisation des Utilisateurs

Importer des groupes

  • Administration / Groupes / Liaison annuaire LDAP / Importation de nouveaux groupes :
  • Les groupes présents dans l'OU Utilisateurs doivent alors s'afficher, sélectionner GLPI_Admins et GLPI_Tech, cliquer sur Action et Importer
  • A ce niveau, un utilisateur du domaine doit pouvoir se connecter. Cependant les droits par défaut sont restreints au profil Post Only. Il est alors possible de jouer avec les groupes du domaine pour donner directement les droits sur l'outil.

Régles & habilitations

  • Une fois les groupes importés dans GLPI, on peut créer des règle afin de définir les différentes habilitations (profiles) pour chaque groupe, ainsi les utilisateurs membres d'un groupe AD hériterons automatiquement de leur(s) profile(s) :
  • Administration / règles / Règles d'affectation d'habilitations à un utilisateur / + :
    • Dans un premier temps, donner les droits aux utilisateurs du groupe pour administrer GLPI :
Nom GLPI_Admins Description
Opérateur logique et Actif Oui
Commentaires
  • On crée le critère et les actions qui vont avec :
Critères Groupe importé depuis un annuaire LDAP est GLPI_Admins
Action Actif Assigner Oui
Action Entité Assigner Root entity
Action Profils Assigner Super-Admin
Action Récursif Assigner Oui
  • On réitère avec le groupe GLPI_Tech pour le profil Technician
  • A la connexion, les utilisateurs membres du groupe GLPI_Admins héritent du profil Super-Admin et GLPI_Tech du profil Technician.
  • Si un compte est spécifié dans les deux, son profil par défaut sera Technician, il faudra juste sélectionner le bon profil depuis l'interface.

SSO

VirtualHost

  • A placer entre SSLCertificateKeyFile et </VirtualHost> dans le VHost :

vi /etc/apache2/sites-available/glpi.conf

        ...
        SSLCertificateKeyFile   /etc/apache2/ssl/chronos.key
        <Directory "/usr/share/glpi">

        AuthType                Kerberos
        KrbAuthRealms           HOME.LAN
        KrbServiceName          HTTP
        Krb5KeyTab              /etc/apache2/keytab/chronos.keytab
        KrbMethodNegotiate      On
        KrbMethodK5Passwd       On
        require                 valid-user

</Directory>
</VirtualHost>

  • Modifier les options d'authentification :
    • Configuration / Authentification /Autres
Autre authentification transmise dans la requête HTTP Activée
Champs de stockage de l'identifiant dans la requête HTTP REMOTE_USER
Supprimer le domaine des identifiants de la forme identifiant@domaine Oui

Sources

Pour aller plus loin