You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2019-06-19 11:59:13

nicolas.pauporte
Member
Registered: 2014-03-20
Posts: 49

Session_token vide

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

1560938255-2019-06-19-11h56-36.png

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

#2 2019-06-19 16:27:01

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,287

Re: Session_token vide

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

#3 2019-06-19 16:28:15

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,287

Re: Session_token vide

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

#4 2019-06-26 09:13:55

nicolas.pauporte
Member
Registered: 2014-03-20
Posts: 49

Re: Session_token vide

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

#5 2019-06-26 12:51:58

nicolas.pauporte
Member
Registered: 2014-03-20
Posts: 49

Re: Session_token vide

Bon ca avance smile
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

Board footer

Powered by FluxBB