You are not logged in.
Mais tu as un serveur web Linux ?
Non, c'est un Windows 2003 comme mentionné dans le post:)!
GLPI 9.5.5 - PHP 7.4 / ProcessMaker 3.3.0-community - PHP 7.1 / Windows 2016 / IIS / MySQL 5.7
Worldwide: >17k Computers, >17k Users (16 languages, >11 timezones), >610k tickets, >6700 entities, >7600 Groups, >20700 process cases
Raynet is ARaymond (https://www.araymond.com) IT service management
Offline
Tu as donc juste mis en place le système d'authentification automatique ?
Je pensais que tu avais testé l'installation de Winbind.
Production -> Server OS: RedHat Enterprise Linux v5.5 - GLPI: v0.72.4
Développement -> Server OS: Windows XP - GLPI: v0.83.2
Offline
Oui, en fait j'ai fait un test avec ce que tu propose, car le SSO avec les modules Apache marche, mais de temsp en temps nous avons des pb. Donc j'ai mis en place ta sollution qui semble être plus rapide que le sspi d'Apache.
Je te tiens au courant qd nous serons en production avec ta solution.
Merci,
Tomolimo
GLPI 9.5.5 - PHP 7.4 / ProcessMaker 3.3.0-community - PHP 7.1 / Windows 2016 / IIS / MySQL 5.7
Worldwide: >17k Computers, >17k Users (16 languages, >11 timezones), >610k tickets, >6700 entities, >7600 Groups, >20700 process cases
Raynet is ARaymond (https://www.araymond.com) IT service management
Offline
OK je comprend mieux
Sous Windows je n'ai jamais eu de problème avec le mod SSPI, mais avec Linux (RHEL) je n'ai jamais réussi à utiliser les modules d'Apache pour l'authentification, donc j'ai essayé de trouver une solution facile à mettre en place sur toutes les plateformes...
Production -> Server OS: RedHat Enterprise Linux v5.5 - GLPI: v0.72.4
Développement -> Server OS: Windows XP - GLPI: v0.83.2
Offline
Bonjour,
Je viens de passer mon glpi en version 0.83.31 (depuis une 0.80.X) et en appliquant ce SSO, j'ai ce message à chaque action :
The action you have requested is not allowed. Reload previous page before doing action again.
Aprés des recherches j'ai trouvé ce poste qui mentionne ce "bug" :
http://www.glpi-project.org/forum/viewt … p?id=29480
Edit :
En appliquant cette solution (fortement déconseiller pat moyo)
"Le problème est réglé en mettant à 0 la variable GLPI_USE_CSRF_CHECK dans config/define.php"
Cela marche bien.
Last edited by kilgad (2012-07-25 15:37:41)
Offline
ce SSO ? c'est à dire vous avez fait quoi ?
MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI : Support Contribute References Freshmeat
Offline
Bonjour,
Suite à la sortie du plugin Fusion 0.83+1.0, je viens de mettre à jour, et je confirme le problème de kilgad.
Sans SSO automatique, pas de problème apparent.
Avec ce SSO, le message "The action you have requested is not allowed" apparait dès que j'essaie de modifier une valeur (conf du plugin Fusion pour le moment, edit: y compris conf interne de glpi, changement de signature des mails par ex.).
Peut-être un problème sur le login utilisateur qui n'est pas passé correctement ? (glpi pense que c'est pas le bon id et rejette la demande)
Étrange, ça fonctionnait impeccable en 0.80.
Edit2.
En mode debug avec la même base mise à jour :
- la version 0.80 affiche "glpiauthtype => 3"
- la version 0.83.4 affiche "glpiauthtype => 4"
Normal ?
Last edited by EmpereurZorg (2012-08-06 14:19:09)
Version GLPI : 10.0.6 + Plug'in Glpi + Agent Fusion 2.4
Plateforme : Win Server 2019 , Apache 2.4, PHP 8.1
Offline
même chose chez moi
en mettant GLPI_USE_CSRF_CHECK a 0 ca roule
Ocs-ng 2.2
Glpi 9.1.1
Offline
Le problème semble bien lié à GLPI, car j'ai reçu ce message d'erreur juste en activant le "champ de stockage de l'identifiant dans la requête HTTP", alors que je n'avais encore rien modifié sur les fichiers.
Par contre, le problème ne semble toujours pas résolu dans la version 0.83.4.
Pour moi aussi cela fonctionne bien en mettant la variable GLPI_USE_CSRF_CHECK à 0 dans le fichier config\define.php.
Production -> Server OS: RedHat Enterprise Linux v5.5 - GLPI: v0.72.4
Développement -> Server OS: Windows XP - GLPI: v0.83.2
Offline
Le problème semble bien lié à GLPI, car j'ai reçu ce message d'erreur juste en activant le "champ de stockage de l'identifiant dans la requête HTTP", alors que je n'avais encore rien modifié sur les fichiers.
J'ai bien peur que ça ne soit pas un bug mais une fonction de sécurité "hautement recommandée" ajoutée à Glpi. A voir si malgré tout il est possible de rendre cette méthode d'authentification "compatible"...
La doc du CSRF (que j'ai pas encore pris le temps de lire ) : http://en.wikipedia.org/wiki/Cross-site_request_forgery
Last edited by EmpereurZorg (2012-08-20 16:05:42)
Version GLPI : 10.0.6 + Plug'in Glpi + Agent Fusion 2.4
Plateforme : Win Server 2019 , Apache 2.4, PHP 8.1
Offline
Se qui veut dire que la fonction intégrée à GLPI permettant de récupérer l'identifiant n'est lui même pas compatible avec cette sécurité ..??
Production -> Server OS: RedHat Enterprise Linux v5.5 - GLPI: v0.72.4
Développement -> Server OS: Windows XP - GLPI: v0.83.2
Offline
Je viens de recevoir un mail de edzilla m'indiquant un problème de sécurité avec cette implémentation de NTLM au sein de GLPI.
En effet l'authentification n'est pas complète et ne peut pas vérifier le mot de passe (forcément il n'est pas tapé), se qui occasionne un problème de sécurité si l'on utilise un navigateur "mal configuré" qui n'enverrait pas les identifiants à GLPI.
A ce moment là, le navigateur affiche une fenêtre de connexion, qu'il suffit uniquement de remplir avec un login correct, et la connexion devient correcte, avec cet utilisateur, même avec un mot de passe incorrect ou vide.
Se qui fait qu'actuellement ce code "identifie" l'utilisateur mais ne "l'authentifie" donc pas réellement.
Si vous avez une idée pour ajouter un contrôle supplémentaire je suis preneur...
Merci en tous cas à edzilla pour l'info !
Production -> Server OS: RedHat Enterprise Linux v5.5 - GLPI: v0.72.4
Développement -> Server OS: Windows XP - GLPI: v0.83.2
Offline
Bonjour,
Je voudrais vous remercier pour cette solution simple et efficace.
Votre solution fonctionne très bien avec IE8 et IE9 avec et sans SSL mais je n'arrive pas à la faire fonctionner avec google chrome avec et sans SSL. Par contre google chrome me demande à chaque fois un utilisateur et un mot de passe donc je ne suis pas bloqué.
J'ai suivie votre tuto à la lettre mais je ne dispose d'aucune ligne comme vous dans mon ssl.conf donc je n'ai rien passer en commentaire.
Voici ma configuration :
- Debian squeeze 6.0.1
- Apache 2.2.16
- Glpi 0.83.6
Merci de vos réponse
Offline
Bonjour,
Toujours pas de nouvelle concernant la connexion avec le simple login de l'utilisateur?
Merci de vos réponse.
Offline
Bonjour
Chez nous, nous utilisons un bout de javascript qui lit le username du user connecté sous windows et ensuite il l'envoie à la page d'index.php de GLPI (ajout d'un param), et de ce fait, nous n'utilisons plus l'authentification SSPI (ou NTLM) pour notre SSO.
D'où un gain de temps de réponse du serveur et une config Apache moins compliquée à maintenir, et aussi pour les plugins (avec accès en remote) : plus d'authentification NTLM (plugin : web services, Fusion, ...).
Cordialement,
Tomolimo
GLPI 9.5.5 - PHP 7.4 / ProcessMaker 3.3.0-community - PHP 7.1 / Windows 2016 / IIS / MySQL 5.7
Worldwide: >17k Computers, >17k Users (16 languages, >11 timezones), >610k tickets, >6700 entities, >7600 Groups, >20700 process cases
Raynet is ARaymond (https://www.araymond.com) IT service management
Offline
Votre solution fonctionne très bien avec IE8 et IE9 avec et sans SSL mais je n'arrive pas à la faire fonctionner avec google chrome avec et sans SSL. Par contre google chrome me demande à chaque fois un utilisateur et un mot de passe donc je ne suis pas bloqué.
Bonjour,
normalement, sur Windows, Google Chrome utilise les paramètres d'IE au niveau des sites de confiances.
Quel version de Chrome utilises-tu ?
Toujours pas de nouvelle concernant la connexion avec le simple login de l'utilisateur?
Je n'ai pas encore eu le temps de travailler sur une autre solution pour le moment.
Chez nous, nous utilisons un bout de javascript qui lit le username du user connecté sous windows et ensuite il l'envoie à la page d'index.php de GLPI (ajout d'un param), et de ce fait, nous n'utilisons plus l'authentification SSPI (ou NTLM) pour notre SSO.
D'où un gain de temps de réponse du serveur et une config Apache moins compliquée à maintenir, et aussi pour les plugins (avec accès en remote) : plus d'authentification NTLM (plugin : web services, Fusion, ...).
Aurais-tu un bout de code à proposer, car ça me semble une bonne solution ?
Merci d'avance
Production -> Server OS: RedHat Enterprise Linux v5.5 - GLPI: v0.72.4
Développement -> Server OS: Windows XP - GLPI: v0.83.2
Offline
Bonjour,
Pour le code: j'ai :
renomé le fichier "index.php" en "index-glpi.php"
créé un nouveau fichier "index.php" (voir ci-dessous)
fait une modif dans 'index-glpi.php' (voir ci-dessous)
Pour la méthode :
1) dans le nouvel index.php, je génère du code Js qui va récupérer le nom du user windows, via un
wshell.ExpandEnvironmentStrings('%USERNAME%')
puis ce user name est cripté (pour donner l'illusion d'une sécurité:) !), et ensuite il est posté sur la page index-glpi.php avec un hidden input.
2) dans la nouvelle page index-glpi.php, je décripte ce user name et je l'injecte dans
$_SERVER["REMOTE_USER"]
ce qui a pour effet de gruger le mécanisme de GLPI (il ne refait pas l'authentification sur l'AD).
3) il faut obligatoirement avoir autoriser dans GLPI l'autentification externe avec "REMOTE_USER".
4) il faut obligatoirement avoir autoriser dans les paramètres de IE l'option 'autoriser execution de script et ActiveX non marqué comme securisés', sinon le Js de index.php ne pourra pas récupérer le user windows.
5) j'utilise deux libraries une PHP et une JS: une pour le browser côté PHP (http://chrisschuld.com/projects/browser … -from-php/), et une pour le criptage côté JS (http://www.movable-type.co.uk/scripts/aes.html).
Nouvel "index.php":
<?php
include( "inc/browser.class.php");
// Start the page
echo "<html>";
echo "<head>
<title>GLPI - Redirection</title>
<script src='crypt/aes.js'>/* AES JavaScript implementation */</script>
<script src='crypt/aes-ctr.js'>/* AES Counter Mode implementation */</script>
<script src='crypt/base64.js'>/* Base64 encoding */</script>
<script src='crypt/utf8.js'>/* UTF-8 encoding */</script>
</head>
<body> ";
//print_r( $_GET ) ;
// $ debug used to echo values via msgbox
$raydebug = isset($_GET["raydebug"]) ? $_GET["raydebug"] : 0 ;
if($raydebug > 0) echo "debug: ".$raydebug."<br>";
$browser = new Browser();
//print_r($browser);
//echo "<br>".$browser->getBrowser();
if( $browser->getBrowser() == Browser::BROWSER_FIREFOX ) { // is the browser agent FireFox?
echo "<script language='javascript'>
function GetUserName(){
try {
return Components.classes[\"@mozilla.org/process/environment;1\"].getService(Components.interfaces.nsIEnvironment).get('USERNAME');
}
catch(err) {
//alert(err);
return '' ;
}
}
</script> ";
}
else { // then by default use of IE technics to get username from windows
echo "<script language='javascript'>
function GetUserName(){
try {
var wshell = new ActiveXObject('WScript.Shell');
return wshell.ExpandEnvironmentStrings('%USERNAME%') ;
}
catch(err) {" ;
if( $raydebug > 0 ) echo "alert('Error in GetUserName: ' + err);" ;
echo "return '';
}
} </script> ";
}
echo "<script language='javascript'>";
if( $raydebug > 0 ) echo "alert('UserName: ' + GetUserName());" ;
echo "</script>" ;
if ( $raydebug > 0 ) echo "<br>HTTP_REFERER='".$_GET["HTTP_REFERER"]."'<br>" ;
if( !isset($_GET["redirect"]) && isset($_GET["HTTP_REFERER"])){
// create redirection from this variable
// HTTP_REFERER=/glpi/front/ticket.form.php?id=201008051
$Params = explode("?",$_GET["HTTP_REFERER"]);
$Params[0]=explode("/",$Params[0]);
$Params[0][3]=explode(".",$Params[0][3]);
$Params[1]=explode("=",$Params[1]);
if ( $raydebug > 0 ) print_r($Params);
$_GET["redirect"]=$Params[0][3][0]."_".$Params[1][1];
}
echo "<form name='frm' id='frm' method='post' action='index-glpi.php?redirect=".(isset($_GET["redirect"])?$_GET["redirect"]:"_")."".(isset($_GET["noAUTO"])?"&noAUTO=".$_GET["noAUTO"]:"")."' >";
//echo " onsubmit='frm.araymond_user.value = Aes.Ctr.encrypt(GetUserName(), \"GLPI\", 256);'>";
echo "<p><input type='hidden' name='araymond_user' id='araymond_user' ></p> " ;
// echo "<p><input type='submit' value='Encrypt it:'></p>";
echo "</form>";
echo "<script language='javascript'>
frm.araymond_user.value = Aes.Ctr.encrypt(GetUserName(), \"GLPI\", 256); ";
if ( $raydebug == 0 ) echo " frm.submit();";
echo " </script>" ;
echo "</body></html>";
?>
nouvel "index-glpi.php":
define('GLPI_ROOT', '.');
include (GLPI_ROOT . "/config/based_config.php");
if (!file_exists(GLPI_CONFIG_DIR . "/config_db.php")) {
include (GLPI_ROOT . "/inc/common.function.php");
glpi_header("install/install.php");
die();
} else {
$TRY_OLD_CONFIG_FIRST = true;
include (GLPI_ROOT . "/inc/includes.php");
$_SESSION["glpicookietest"] = 'testcookie';
// For compatibility reason
if (isset($_GET["noCAS"])) {
$_GET["noAUTO"] = $_GET["noCAS"];
}
if ( isset($_GET["araymond_user"])){
$_SERVER["REMOTE_USER"] = $_GET["araymond_user"];
}
elseif ( isset($_POST["araymond_user"]) ) {
// then we must decrypt it
include 'crypt/aes.class.php'; // AES PHP implementation
include 'crypt/aesctr.class.php'; // AES Counter Mode implementation
$_SERVER["REMOTE_USER"] = AesCtr::decrypt($_POST['araymond_user'], 'GLPI', 256) ; //$_POST["araymond_user"];
}
if ( isset($_SERVER["REMOTE_USER"])
&& !empty($_SERVER["REMOTE_USER"])
&& !isset($_GET["noAUTO"]) ) {
$_POST['login_name'] = $_SERVER["REMOTE_USER"];
include "login.php" ;
exit();
}
Auth::checkAlternateAuthSystems(true, isset($_GET["redirect"])?$_GET["redirect"]:"");
...
Voili voila : bon courage,
cordialement,
Tomolimo
Last edited by tomolimo (2013-02-11 16:13:00)
GLPI 9.5.5 - PHP 7.4 / ProcessMaker 3.3.0-community - PHP 7.1 / Windows 2016 / IIS / MySQL 5.7
Worldwide: >17k Computers, >17k Users (16 languages, >11 timezones), >610k tickets, >6700 entities, >7600 Groups, >20700 process cases
Raynet is ARaymond (https://www.araymond.com) IT service management
Offline
Merci pour vos réponse.
j'ai reussis a faire fonctionner mon google chrome. Il faut que j'ajoute dans l'url dans mes sites pour l'intranet.
En ajoutant l'url à la partie intranet local, je n'ai plus le problème du simple log par l'utilisateur. J'ai crée une stratégie de groupe qui rajoute automatiquement sur tous mes PC mon url dans le site intranet.
J'ai également testé la solution tomolimo mais je n'arrive pas à la faire fonctionné. J'ai bien modifié mes deux fichier index et index-glpi.php et j'ai autorisé le lancement de script non marqué comme sécurisé.
Serait tu d'ou sa peut venir?
Merci à vous.
Offline
Il faut essayer le mode debug : voir index.php, variable "raydebug"
Cordialement,
Tomolimo
GLPI 9.5.5 - PHP 7.4 / ProcessMaker 3.3.0-community - PHP 7.1 / Windows 2016 / IIS / MySQL 5.7
Worldwide: >17k Computers, >17k Users (16 languages, >11 timezones), >610k tickets, >6700 entities, >7600 Groups, >20700 process cases
Raynet is ARaymond (https://www.araymond.com) IT service management
Offline
Merci tomolimo pour ce code.
Je vais essayer de le mettre en place rapidement.
Par contre d'après se que je lis dans le source, cette solution ne fonctionne qu'avec IE et Firefox n'est ce pas ?
Production -> Server OS: RedHat Enterprise Linux v5.5 - GLPI: v0.72.4
Développement -> Server OS: Windows XP - GLPI: v0.83.2
Offline
Bonjour à tous,
Et à Edzilla en particulier qui est en fait un collègue
Je me permets de réinsister, comme l'a expliqué Edzilla, sur le fait que ce principe d'identification n'authentifie personne.... !
Pour en avoir le coeur net, c'est super simple à tester:
Vous êtes dans GLPI et vous avez été "identifié" automatiquement
Vous cliquez sur "Déconnexion" ==> vous revenez donc au logon
Vous retapez votre username et un mot de passe bidon (voire pas de mot de passe)
Et si vous voulez vous connecter à la place d'un collègue vous tapez SON username
Edzilla a par contre implémenté avec succès, et c'est presque enfantin à faire, l'authentification Kerberos...
Edzilla, tu l'expliqueras à l'occasion ?
Glpi 0.83.4 + OCS Inventory - Debian 3.2.32 Hyper-V virtual hosts
Offline
Bonjour,
tests faits comme mentioné dans ton post PhilFeul, et tests concluants : si tu ne mets pas un mot de passe correct, alors tu n'es pas autorisé et obtiens le message d'erreur sur mot de passe incorrect...
Donc ce type de modification ne pemet pas de se connecter au nom de quelqu'un d'autre. Car en fait quand le formulaire de login est utilisé, alors GLPi fait un véritable accès LDAP...donc impossible de se connecter à la place de quelqu'un d'autre...
Cordialement,
Tomolimo
GLPI 9.5.5 - PHP 7.4 / ProcessMaker 3.3.0-community - PHP 7.1 / Windows 2016 / IIS / MySQL 5.7
Worldwide: >17k Computers, >17k Users (16 languages, >11 timezones), >610k tickets, >6700 entities, >7600 Groups, >20700 process cases
Raynet is ARaymond (https://www.araymond.com) IT service management
Offline
Attention,
ce code ne fonctionne qu'avec IE, car avec FF, je n'ais pas trouvé le moyen d'autoriser l'accès aux variables systèmes...
Si tu trouves, alors tu seras le bienvenu (de même avec Chrome).
Merci,
Cordialement,
Tomolimo
GLPI 9.5.5 - PHP 7.4 / ProcessMaker 3.3.0-community - PHP 7.1 / Windows 2016 / IIS / MySQL 5.7
Worldwide: >17k Computers, >17k Users (16 languages, >11 timezones), >610k tickets, >6700 entities, >7600 Groups, >20700 process cases
Raynet is ARaymond (https://www.araymond.com) IT service management
Offline
Bonjour,
tests faits comme mentioné dans ton post PhilFeul, et tests concluants : si tu ne mets pas un mot de passe correct, alors tu n'es pas autorisé et obtiens le message d'erreur sur mot de passe incorrect...
Donc ce type de modification ne pemet pas de se connecter au nom de quelqu'un d'autre. Car en fait quand le formulaire de login est utilisé, alors GLPi fait un véritable accès LDAP...donc impossible de se connecter à la place de quelqu'un d'autre...
Cordialement,
Tomolimo
Autant pour moi, j'ai raconté n'importe quoi; si le LDAP reste actif c'est OK.
Par contre le scénario initialement rapporté par Edzilla (la config du browser fait qu'il n'envoie pas les infos ntlm, donc on se trouve non pas sur l'écran de login Glpi mais sur un popup du browser) reste à ma connaissance toujours d'application... Ce qui fait que ça reste quand même fort dangereux...
Glpi 0.83.4 + OCS Inventory - Debian 3.2.32 Hyper-V virtual hosts
Offline
J'ai créé un nouveau sujet avec la marche à suivre pour faire du SSO avec kerberos ( http://www.glpi-project.org/forum/viewt … p?id=31619 )
C'est à priori bien plus sécurisé que cette méthode (et ça ne nécessite pas de modifier glpi)
Offline