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_tokenGLPI ; - l'
app_tokendu 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 :
crudinimysqlcurl
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 :