Skip to main content

Vérifier les accès et les droits entre Medulla et GLPI

S'applique à : Medulla / GLPI
Version de Medulla : Toutes
Version de GLPI : 10 / 11
Environnement : On-Premise
Catégorie : Diagnostic / Intégration GLPI

Contexte

Medulla communique avec GLPI au travers de deux mécanismes distincts :

  • un accès direct à la base de données MySQL/MariaDB de GLPI pour consulter les informations nécessaires au fonctionnement de Medulla ;
  • l'API GLPI pour certaines opérations et interactions avec GLPI.

En cas de problème de remontée d'inventaire, de synchronisation ou d'accès à GLPI depuis Medulla, un script de diagnostic permet de contrôler automatiquement la configuration et les droits utilisés par Medulla.

Le script utilise directement la configuration GLPI enregistrée sur le serveur Medulla.
Il n'est donc pas nécessaire de renseigner manuellement les identifiants de connexion à la base de données ou les jetons API.


1. Télécharger le script de diagnostic

Connectez-vous en SSH au serveur Medulla avec un compte disposant des droits nécessaires, puis téléchargez le script :

wget https://dl.medulla-tech.io/nc/check_itsm_access.sh

Rendez ensuite le script exécutable :

chmod +x check_itsm_access.sh

2. Exécuter le contrôle

Lancez le script depuis le serveur Medulla :

./check_itsm_access.sh

Le script va automatiquement récupérer les paramètres de connexion GLPI configurés dans Medulla et effectuer une série de contrôles.


3. Contrôles effectués

Accès à la base de données GLPI

Le script commence par vérifier que Medulla peut se connecter à la base de données GLPI avec les paramètres actuellement configurés.

Il effectue notamment une requête SQL simple afin de valider :

  • l'accessibilité du serveur MySQL/MariaDB ;
  • le port configuré ;
  • le nom de la base de données ;
  • l'utilisateur utilisé par Medulla ;
  • le mot de passe ;
  • les droits permettant d'interroger la base.

Lorsque la connexion fonctionne, le résultat suivant est affiché :

[✓] Database connection successful

En cas d'échec :

[✗] Failed to connect to database

En cas d'échec de cette première étape :
vérifiez en priorité les identifiants MySQL/MariaDB, le port utilisé, les autorisations réseau et les droits accordés à l'utilisateur Medulla sur la base GLPI.


Présence des tables GLPI nécessaires

Le script vérifie ensuite que les principales tables GLPI utilisées par l'intégration sont accessibles.

Le contrôle porte notamment sur les tables relatives :

  • aux ordinateurs ;
  • aux utilisateurs ;
  • aux profils ;
  • aux entités ;
  • aux groupes ;
  • aux logiciels ;
  • aux interfaces réseau ;
  • aux imprimantes ;
  • aux moniteurs et périphériques ;
  • aux tickets, changements, problèmes et projets ;
  • aux localisations ;
  • à GLPI Inventory.

Si toutes les tables attendues sont accessibles :

[✓] All required tables found

Dans le cas contraire, le script affiche la liste des tables manquantes ou non accessibles :

[✗] Missing tables: ...

Contrôle des vues SQL Medulla

Medulla utilise également plusieurs vues SQL spécifiques pour exploiter certaines informations GLPI.

Le script vérifie la présence et l'accessibilité des vues suivantes :

glpi_computers_pulse
glpi_view_computers_items_printer
glpi_view_computers_items_peripheral
glpi_view_peripherals_manufacturers

Si toutes les vues sont accessibles :

[✓] All 4 required views found

Dans le cas contraire :

[✗] Missing views: ...

Attention en mode lecture seule :
la présence des vues ne suffit pas. L'utilisateur MySQL/MariaDB utilisé par Medulla doit également disposer des droits SELECT et SHOW VIEW nécessaires.

Reportez-vous à la documentation sur la configuration des accès GLPI pour connaître les droits à appliquer.


4. Contrôle de l'API GLPI

Une fois les contrôles SQL terminés, le script teste automatiquement l'accès à l'API GLPI configurée dans Medulla.

Accessibilité du serveur API

Le premier test vérifie que l'URL de l'API GLPI est accessible depuis le serveur Medulla.

Si le serveur est joignable :

[✓] API server reachable at ...

En cas d'échec :

[✗] Cannot reach API server at ...

En cas d'échec :
vérifiez l'URL configurée, la résolution DNS, les flux réseau, les règles de firewall ainsi que la disponibilité du serveur GLPI.


Authentification avec les identifiants GLPI

Le script teste ensuite l'ouverture d'une session API GLPI avec le nom d'utilisateur et le mot de passe configurés dans Medulla, associés à l'App-Token.

Lorsque l'authentification fonctionne :

[✓] Credential authentication successful

Dans le cas contraire, le script indique le code HTTP retourné par GLPI et fournit une commande curl permettant d'effectuer un diagnostic complémentaire.


Authentification par jeton

Le script effectue enfin un second test d'authentification avec :

  • le user_token GLPI ;
  • l'app_token du client API utilisé par Medulla.

Lorsque les jetons sont valides :

[✓] Token authentication successful

Dans le cas contraire :

[✗] Token auth failed with HTTP status ...

Une commande curl de diagnostic est également proposée par le script.


5. Interpréter le résultat

Si l'ensemble des contrôles est valide, le script termine par un message similaire à :

==========================================
All checks passed!
==========================================

La communication entre Medulla et GLPI est alors fonctionnelle pour les éléments testés par le script.

Si une ou plusieurs vérifications échouent :

==========================================
Some checks failed!
==========================================

Les lignes précédées de [✗] permettent d'identifier le ou les contrôles en erreur.

Erreur Élément à vérifier
Failed to connect to database Accès réseau, port SQL, utilisateur, mot de passe et droits MySQL/MariaDB
Missing tables Version / structure GLPI et droits de lecture sur les tables concernées
Missing views Création des vues Medulla et droits SELECT / SHOW VIEW
Cannot reach API server URL GLPI, DNS, routage, firewall et disponibilité du serveur
Credential auth failed Utilisateur GLPI, mot de passe et app_token
Token auth failed user_token, app_token et configuration de l'API GLPI

6. Prérequis du script

Le script utilise les outils suivants sur le serveur Medulla :

  • crudini
  • mysql
  • curl

Il vérifie automatiquement leur présence avant de commencer les tests.

Il utilise notamment la configuration Medulla présente dans :

/etc/mmc/plugins/glpi.ini.local

ainsi que la configuration d'administration nécessaire à la récupération des jetons configurés dans Medulla.


7. En cas de problème

Si le script signale une erreur, corrigez le point indiqué puis relancez simplement :

./check_itsm_access.sh

Si le problème persiste, transmettez au support Medulla la sortie complète du script afin de faciliter le diagnostic.

Sécurité :
Avant de transmettre des résultats ou des commandes de diagnostic, vérifiez qu'aucun mot de passe, jeton API ou autre secret d'authentification n'est présent dans les informations communiquées.


Documentation complémentaire

Pour la configuration initiale des droits MySQL/MariaDB, des vues SQL et de l'API GLPI, reportez-vous à la FAQ consacrée à la connexion d'un GLPI externe :

https://docs.medulla-tech.io/books/medulla-faq/page/glpi-connecter-un-glpi-externe

Script de diagnostic :

https://dl.medulla-tech.io/nc/check_itsm_access.sh