GLPI et les comptes ldap renommés

GLPI est capable d'importer ses comptes utilisateurs depuis un annuaire LDAP (openldap, Active Directory, etc...). Malheureusement si les comptes utilisateurs sont renommés il ne les reconnait plus et créé alors des doublons. L'accès est toujours possible pour les utilisateurs, mais ils ne retrouvent pas leurs données.

C'est ce qui nous est arrivé, car dans le cadre d'un grand ménage et d'une mise aux normes, nous avons changé les logins A.D des utilisateurs. Après de longues recherches sur le web, demandes sur IRC, coups d’œils aux rapports de bug, j'en suis arrivé à la conclusion qu'on ne pouvait pas y faire grand chose. La solution est de modifier les comptes utilisateurs à la main. Or si les utilisateurs sont synchronisés sur un annuaire ldap, le login est impossible à modifier ! Il faut donc ruser.

Il n'est pas forcément nécessaire de migrer tous les comptes utilisateur, uniquement ceux qui ont travaillé sur des tickets. Pour les autres on peut accepter la création de doublon et supprimer l'ancien compte car il n'y a pas de perte de données.

Solution 1 : Interface graphique

Le cheminement à suivre est le suivant :

  • Aller dans Administration > Utilisateurs
  • Cliquer sur le compte utilisateur à migrer
  • Dans l'onglet Synchronisation modifier la méthode d'authentification sur Authentification sur la base GLPI
  • Valider.
  • Changer l'identifiant de l'utilisateur pour le mettre en conformité avec l'annuaire ldap.
  • Remettre la méthode d'authentification sur Authentification sur un annuaire LDAP et sélectionner votre connecteur.

L'utilisateur doit maintenant être capable d'accéder à GLPI avec son nouvel identifiant et retrouver ses tickets.

Solution 2 : SQL

Note : Il est recommandé de procéder à un export (sauvegarde) de la base de données avant de continuer.

Attaquer directement la base de données peut être plus rapide car on peut modifier directement le login. Pour vous faciliter les choses vous pouvez utiliser phpmyadmin si votre serveur le permet. Dans l'exemple suivant la base de données de GLPI s'appelle dbglpi ainsi que l'utilisateur associé. Imaginons que pour l'utilisateur "Xavier Chotard", qui porte l'id 6*, je veux indiquer le login "chotardx".

mysql -u dbglpi -h localhost dbglpi -p

update glpi_users set name = 'chotardx' where id = '6';

*Pour visualiser les id utilisateurs :

  • Soit passer la souris sur la liste des utilisateurs dans GLPI (l'id apparait dans l'url)
  • Visualiser la table glpi_users sur phpmyadmin
  • Utiliser la commande select name, id from glpi_users order by id;

Conclusion

Les comptes utilisateurs de GLPI ont été remis en conformité avec l'annuaire LDAP, le login est donc à nouveau possible et les tickets préservés.

Vus : 2960
Publié par Maniatux : 95