You are not logged in.
Bonjour,
Dans le cadre de la mise en place d'un Web SSO devant GLPI, j'ai installé la solution Vulture. GLPI est déployé en prod avec la version 0.72.3 sur un Xampp/Win32.
Voilà le problème:
J'aimerais pouvoir m'authentifier sur GLPI en postant automatiquement mes infos de login/pass sur la page login.php. Visiblement ce n'est pas possible car GLPI a besoin du cookie de session $_SESSION["glpitest"] qui n'est créé que sur la page index.php.
Du coup l'authentification échoue avec le message d'erreur :
"Vous devez autoriser les cookies pour accéder à cette application"
peut être une piste de solution :
- Si le cookie de test n'existe pas, le créer au début de la page login.php ?
$_SESSION["glpitest"]='testcookie';
Je ne sais pas si ça marche, je n'ai pas testé...
L'historique de ce sujet a déjà été posté sur le forum Vulture :
http://groups.google.fr/group/vulture/b … 03a83e42eb
merci pour vos réponses,
Christophe
Offline
Je ne connais pas Vulture, mais à mon boulot nous avons une authentification par carte à puce.
Ce que nous avons fait :
sur le serveur GLPI, nous avons fait un lien virtuel du fichier index.php pointant sur notre page Maison.php
dans cette page,
- si il y a récupération du jeton, procédure d'authentification standard et envoi des infos à la page login.php de GLPI,
- sinon, affichage de la mire de connexion glpi. Et pour cela, nous avons bien défini $_SESSION["glpitest"]='testcookie';
Et ça marche très bien.
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
merci pour ce retour d'expérience. Effectivement en ajoutant la variable $_SESSION["glpitest"]='testcookie'; au début de la page de login.php, cela marche correctement avec Vulture.
Je vais proposer ce patch pour GLPI.
Offline
Perso, je ne changerai pas la page d'origine login.php (en cas de nouvelle version, il faut penser à refaire la modif).
C'est pour ça que nous avons un fichier à part.
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Je suis d'accord que ce n'est pas une bonne pratique que de modifier le fichier login.php, mais vu que je ne peux pas utiliser de lien symbolique (GLPI est hébergé sous Windows Server), je le fais comme ça en espérant que GLPI intègre mon patch dans une prochaine 'release' que j'intégrerais alors.
Offline
> je le fais comme ça en espérant que GLPI intègre mon patch dans une prochaine 'release'
Il n'y a aucune chance.
Login.php vérifie que la session contient le cookie de test afin d'assurer le bon fonctionnement des sessions et donc de GLPI.
Si tu le positionnes au début de login.php, ce test n'a plus aucune valeur.
C'est donc forcément en amont (dans TA page) qu'il faut positionner cette variable.
+
Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/
Offline
Ok, disons alors que le patch serait plutôt de rendre configurable la création du cookie de test dans login.php
Ainsi on aurait un mode ou le cookie de test n'est pas créé.
Dans mon cas, le test de la création d'un cookie est déjà réalisé en amont par une autre page dans Vulture.
L'idée de ce patch serait donc d'apporter un peu plus de souplesse dans les tests que fait GLPI sur la configuration.
non?
Offline
Désolé... mais je ne vois définitivement pas l'intérêt de ce patch.
Fonctionnement GLPI normal :
- appel de la page index.php
- création du cookie
- affichage du formulaire
... remplissage par l'utilisateur et envoie...
- appel de la page login.php
- vérification du cookie
- authentification
Donc si ton SSO fait correctement son travail, il doit aussi créer le cookie. Et ça marche sans modifier login.php. C'est ce qu'on utilise chez nous sans aucun soucis.
Maintenant, clairement il y a 2 contraintes
- la page doit être sur le même serveur que GLPI (pour avoir accès aux sessions)
- le chemin des sessions doit être le même que GLPI (qui n'est pas celui par défaut)
+
Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/
Offline
Je ne connais pas Vulture, mais à mon boulot nous avons une authentification par carte à puce.
Ce que nous avons fait :
sur le serveur GLPI, nous avons fait un lien virtuel du fichier index.php pointant sur notre page Maison.php
dans cette page,
- si il y a récupération du jeton, procédure d'authentification standard et envoi des infos à la page login.php de GLPI,
- sinon, affichage de la mire de connexion glpi. Et pour cela, nous avons bien défini $_SESSION["glpitest"]='testcookie';Et ça marche très bien.
Bonjour,
Je ne suis pas un pro de l'écriture php... et j'aimerai bien mettre en oeuvre cette méthode qui effectivement est plus propre que de modifier le source original.
Serait-il possible d'avoir le code... ?
Cordialement.
Offline