You are not logged in.
Pages: 1
Bonjour à tous,
Je suis en train d'essayer de faire une interface avec Zabbix en passant par l'API de GLPI et de Zabbix mais nous avons un problème avec le script php que nous avons trouvé sur un autre topic portant sur le même sujet :
https://forum.glpi-project.org/viewtopic.php?id=157700
Voici notre code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- ladenree -2017- -->
<head>
<title>TEST API</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="Generator" content="Dev-PHP 2.6.1" />
<meta name="Keywords" content="GLPI,API," />
<meta name="Description" content="Tests API
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
</head>
<body>
<h1>test API</h1>
<?php
$api_url="http://glpi.mtr5.hut.chem.corp.local/apirest.php/";
$user_token="8X0e4yWg4Y0WzLjQnAfYkNQe0bm1dHeUolfNKI5T";
$app_token="kWRXfp3Ptfh6AxJIb9H1D2i6rj8UmmB4VhWECeBe";
echo "session token<br/>";
$ch = curl_init();
$url=$api_url . "/initSession?Content-Type=%20application/json&app_token=".$app_token ."&user_token=".$user_token;
echo $url;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close ($ch);
$obj = json_decode($json,true);
$sess_token = $obj['session_token'];
echo "session token :".$sess_token."<br/>";
$headers =array(
'Content-Type: application/json',
'app-token: ' .$app_token,
'session-token: '.$sess_token
);
print_r($headers);
Mais nous avons un problème c'est que le session token reste vide.
Par contre si on va directement sur l'url générer par le $url on resort bien :
http://glpi.mtr5.hut.chem.corp.local/ap … eUolfNKI5T
Je retourne le truc dans tous les sens mais je ne comprends pas le problème, pourriez-vous nous aider s'il vous plait ?
Cordialement Nicolas
Offline
avec votre code le "echo $url" doit vous renvoyer 2 / à la suite dans l'url…
supprimez le / à la fin de de $api_url="http://glpi.mtr5.hut.chem.corp.local/apirest.php/";
Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9
Offline
pour le debug ajoutez un print_r($json) après $json = curl_exec($ch);
Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9
Offline
Bonjour LaDenrée,
Désolé pour la réponse tardive.
Nous avons avancé un peu sur le problème, nous avons découvert que notre code fonctionne très bien sur un wamp en local sur un poste, avec GLPI d'installer dessus par contre notre GLPI de production tourne sur un IIS avec mariadb.
Donc on en a conclu que le problème vient du IIS mais je ne vois vraiment ce qui peux bloquer.
J'ai bien fait les modifications que vous nous avez apporté mais cela fait le même problème.
Est-ce que vous auriez une idée d'où peux venir notre problème s'il vous plait ?
Cordialement Nicolas
Offline
Bon ca avance
Le problème est dû à l'authentification SSO de GLPI.
Dans IIS il faut désactiver l'authentification anonyme et activer l'authentification Windows.
Sauf que finalement si je réactive l'authentification anonyme l'API fonctionne correctement.
Donc nouvelle question, comment faire pour que l'authentification automatique et l'API cohabite ?
Est-ce quelqu'un a une petite idée s'il vous plait ?
Cordialement Nicolas.
Offline
Pages: 1