Re: Authentification Automatique
merci
ok pour la partie linux.
Navigateurs : Internet Explorer 8 / firefox 2
test : GLPI 0.72RC3
You are not logged in. Please login or register.
merci
ok pour la partie linux.
J'ai bien configurer la liaison LDAP elle fonctionne très bien. Mes utilisateurs se log sans problème via l'AD.
J'ai finis le taf pour aujourd'hui je reprendrais demain. N'hésitez pas à mettre tout ce qui vous passe par la tête.
Merci d'avance et bonne soirée.
Last edited by AdminSCJB (2007-10-04 16:01:25)
J'ai enfin réussi à mettre en place l'authentification GLPI sur un serveur Debian 4.0 via un annuaire sur Active Directory. Il me fallait juste activer le service "Affichage des Messages". Merci de votre aide.
J'ai bien suivi vos posts et vos wiki sur l'authentification automatique mais je suis tombé sur un os. Tout d'abord voici ma configuration:
- Serveur Glpi et OCS sur debian Apache 2
- Contrôleur de domaine Windows SBS 2003 AD authentification externe fonctionne à merveille.
- Mes utilisateurs travaillent sur des Serveur Terminaux
Mon gros problème vient du faite que la commande nmblookup -A me retourne l'ensemble des utilisateurs ayant ouvert une session sur mon TS et ceci dans l'ordre d'ouverture. En résumé, j'ai dans la variable $login le username du dernier utilisateur qui vient d'ouvrir une session sur le TS et non pas le username de l'utilisateur qui tente de se connecter à GLPI.
Auriez-vous une solution à me proposer ?
Encore bravo pour ce logiciel absolument génial.
une autre solution serait de récupérer le login par un bout de code javascript, mais j'ai jamais réussi à le faire (en même temps j'y connais pas grand chose en javascript).
Ainsi la récup du nom de session windows se fait côté client directement (javascript), et pas depuis le serveur apache (php).
je remonte un autre problème concernant l'auth automatique dans le cas d'un serveur apache sous linux et client windows sur un domaine AD.
Si un login AD est utilisé sur deux micros en même temps (çàd deux sessions windows ouvertes avec le même login), seul un des deux remontera bien le nom de session windows.
A priori parce que côté netbios il s'agit d'un objet de type unique, ie qui ne peut être assigné qu'à une seule adresse IP. Du coup seul la première session ouverte remontera bien le nom de la session ouverte, sur l'autre les seuls champs <03> seront le nom windows du micro et le nom du domaine.
du coup, la possibilité de récupérer le nom de login de la session ouverte par du javascript pourrait être une solution, mais que je n'ai jamais réussi à faire fonctionner.
De mon coté j'ai trouvé une solution:
- J'ai fait un script vbs qui lance internet explorer sur la page de login glpi et qui passe en paramètre la valeur d'environement USERNAME
Dim varIe
Dim varUsername
Set WshShell = WScript.CreateObject("WScript.Shell")
varUsername = WshShell.ExpandEnvironmentStrings("%USERNAME%")
Set varIe=CreateObject("InternetExplorer.Application" )
varIe.visible = 1
varIe.navigate "http://srv-inv-01/glpi/index.php?username=" & varUsername- J'ai modifié les fichiers index.php et login.php pour récupérer la valeur passée en paramètre dans l'url et pour la comparer avec le retour de la commande nmblookup -a
Last edited by yack (2007-10-29 17:44:25)
Ce script fonctionne impeccable quand on le lance directement. Par contre dans mon cas, les utilisateurs accèdent à GPLI via un lien sur une page portail. Hors un lien pointant vers le fichier vbs contenant ce code ne me va pas, il veut le télécharger, puis l'exécuter.
Quelqu'un a une astuce pour m'aider ?
Merci ![]()
PS : j'y connais rien en langage vbscript ![]()
Last edited by meuced (2007-10-29 17:58:05)
J'avais fait un premier jet du script en javascript mais IE demandait à chaque fois l'autorisation pour exécuter le contrôle activeX.
grosse faille trouvée avec lutilisation de nmblookup.
Un utilisateur ayant acces a la ligne de commande, peut taper net name "utilisateur",
et donc rajouter cet alias sur sa machine.
au niveau de "utilisateur", il peut taper nimporte quel login d'une personne avec droit admin, et se connecter avec, car nmblookup recupere le dernier alias.
faites le test, cest pas joli ^^
rah je me doutais bien qu'il y aurait un truc du genre ![]()
mais bon, glpi ne contient pas des données critiques, c'est pas bien grave. Avec des sauvegardes correctes, au pire un gars mal-intentionné fera soit des tickets à la place d'un autre soit bousiller l'inventaire et la config au pire, mais avec les sauvegardes... Et puis faut voir également quel public on a, dans mon cas c'est pa sle genre à bidouiller.
Bref pour mon cas j'estime que le gain est supérieur aux problèmes éventuelles dé sécurité ![]()
idem pour mon entreprise, ca ne pose aucun probleme,
sachant que seul le service informatique ne va sur le site, les utilisateurs etant nos clients, nous nous chargeons de creer les tickets.
mais ce probleme etait a soulever, afin d'anticiper un possible detournement ![]()
Bonjour,
Mon serveur glpi est sous linux - etch - lorsque je fais : nmblookup -A IP j'obtiens :
Looking up status of X.X.X.X
W0016350BA768 <00> - M <ACTIVE>
LENA <00> - <GROUP> M <ACTIVE>
W0016350BA768 <20> - M <ACTIVE>
LENA <1e> - <GROUP> M <ACTIVE>
MAC Address = 00-16-35-0B-A7-68
J'ai aucune remonté sur la balise MONLOGIN-
Quelqu'un pourrait m'indiquer ce que je dois installer (samba-common déjà installé) sur le serveur
Merci d'avance
Bonsoir,
Je remerci beaucoup tous ceux qui ont bossé sur cette fonctionnalité car ça fonctionne à merveille chez nous. Je l'ai mise en place ce matin en suivant le wiki et tout marche du 1er coup.
- glpi 0.68.3-2 installé sur un serveur Windows 2003
- xampp 2.1
--
Tché
bonjour,
j'essaiye en vain de faire autho automatique, mais je n'y arrive pas (je suis pas expert en php)
il me semble avoir suivi les instruction doné sur le forum mais quand je lance glpi, il me demande quand même un identifiant et en plus que je lui met, il me dit que je n'ai pas les droit pour accéder a cette application
je suis sour win XP SP2
et xampp 1.6.4
et glpi .7 rc2
ldap sous samba
merci de votre aide
Bonjour.
j'ai fait la modif sur mon 0.68-3.2, cela fonctionne tres bien.
j'ai essayé de modifié mon glpi 0.7 dans ce sens et la je seche, ça ne fonctionne pas.
je pense que le probleme vient de ce code dans la page login.php.
// try HTTP authentication
if ($http_auth){
$found_dn=false;
$auth_succeded=0;
$found_dn=$identificat->ldap_get_dn_active_directory($cfg_glpi["ldap_host"],$cfg_glpi["ldap_basedn"],$_POST['login_name'],$cfg_glpi["ldap_rootdn"],$cfg_glpi["ldap_pass"],$cfg_glpi["ldap_port"]);
if ($found_dn!=false){
$auth_succeded = true;
$identificat->extauth=1;
$user_present = $identificat->user->getFromDBbyName($_POST['login_name']);
$identificat->user->getFromLDAP_active_directory($cfg_glpi["ldap_host"],$cfg_glpi["ldap_port"],$found_dn,$cfg_glpi["ldap_rootdn"],$cfg_glpi["ldap_pass"],$cfg_glpi['ldap_fields'],$_POST['login_name'],$cfg_glpi["ldap_condition"]); }
}
la page login.php de la 0.68 et celle de la 0.7 n'étant pas la même je ne sais pas ou caser le code?
quelqu'un as t'il réussi sur la 0.7
tu sait m'envoyer t'es 2 fichiers sur franklammers@free.fr
merci de ton aide
j'ai du rater un épisode, quand je me log ca m'indique
Identifiant ou mot de passe videProtocol error
Protocol error
Protocol error
je suis sous vista en IE7 avec le client, ca peux en etre la cause ?
Bonjour.
j'ai fait la modif sur mon 0.68-3.2, cela fonctionne tres bien.
j'ai essayé de modifié mon glpi 0.7 dans ce sens et la je seche, ça ne fonctionne pas.
je pense que le probleme vient de ce code dans la page login.php.// try HTTP authentication
if ($http_auth){
$found_dn=false;
$auth_succeded=0;
$found_dn=$identificat->ldap_get_dn_active_directory($cfg_glpi["ldap_host"],$cfg_glpi["ldap_basedn"],$_POST['login_name'],$cfg_glpi["ldap_rootdn"],$cfg_glpi["ldap_pass"],$cfg_glpi["ldap_port"]);
if ($found_dn!=false){
$auth_succeded = true;
$identificat->extauth=1;
$user_present = $identificat->user->getFromDBbyName($_POST['login_name']);
$identificat->user->getFromLDAP_active_directory($cfg_glpi["ldap_host"],$cfg_glpi["ldap_port"],$found_dn,$cfg_glpi["ldap_rootdn"],$cfg_glpi["ldap_pass"],$cfg_glpi['ldap_fields'],$_POST['login_name'],$cfg_glpi["ldap_condition"]); }
}la page login.php de la 0.68 et celle de la 0.7 n'étant pas la même je ne sais pas ou caser le code?
quelqu'un as t'il réussi sur la 0.7
Je me pose la même question, même problème. Il me semblait avoir trouver le bon endroit pour l'insérer mais j'ai un message "mot de passe vide" lors du login.
jf
Le code ne convient plus avec la version 0.7.
Il faut recoder un nouveau système.
J'essaye actuellement de le mettre en place.
Le code ne convient plus avec la version 0.7.
Il faut recoder un nouveau système.
J'essaye actuellement de le mettre en place.
Idem.... que le meilleur gagne ;-)
Lol j'ai fait également le basculemenbt en 0.7 par contre je n'ai pas encore eu le temps de me pencher sur la modif. Je vais essayer aussi, on se tient au courant ......
J'ai réussi a connecter les utilisateurs automatiquement mais pas encore avec le verif LDAP.
je vous donne la solution , pour la version 0.7 de GLPI , installé sur un serveur Linux avec Apache ![]()
il y a 2 fichiers a modifier : Index.php , et login.php.
Fichier Index.php :
Ligne 53 :
ajoutez ceci :
53: glpi_header("login.php");
* }
* $a = "0";
* $login ="";
* $ip = $_SERVER['REMOTE_ADDR'];
* $commande = "nmblookup -A ".$ip;
* exec ($commande ,$tableau);
* foreach ($tableau as $colone)
* {
* if (strpos($colone,"<1e>"))
* {
* $domain = strtok($colone," \t");
* }
* if (strpos($colone,"<03>"))
* {
* if ($a=="1"){
* $login = strtok($colone," \t");}
* $a="1";
* }
* }
* if ( $domain == "votre domaine" && $login != '' ){
* if (isset($_GET["redirect"])){
* header("Location: login.php?login_name=".$login."&redirect=".$_GET['redirect']);
* }
* else
* header("Location: login.php?login_name=".$login);
* }
*
*
*
54: // Send UTF8 Headerset page login.php :
70: $_POST['login_password'] = unclean_cross_side_scripting_deep($_POST['login_password']);
* $http_auth = false;
* }
* else if (!isset($_POST['login_password'])){
* $_POST['login_password']=unclean_cross_side_scripting_deep($_POST['login_password']);
* $http_auth = false;
* $a = "0";
* $login ="";
* $ip = $_SERVER['REMOTE_ADDR'];
* $commande = "nmblookup -A ".$ip;
* exec ($commande ,$tableau);
* foreach ($tableau as $colone)
* {
* if (strpos($colone,"<03>"))
* {
* if ($a=="1"){
* $login = strtok($colone," \t");
* }
* $a="1";
* }
* }
*
*
* if ( $login != '' ){
* $_POST['login_name'] = $login;
* $http_auth = true;
* }
* }
*
*
*
72 : if (!isset ($_POST["noCAS"]) && !empty ($CFG_GLPI["cas_host"])) {puis toujours dans le fichier login.php : ligne 137 :
remplacez cette ligne :
if ((empty($_POST['login_name'])||empty($_POST['login_password']))
{par celle ci :
if ((empty($_POST['login_name'])||empty($_POST['login_password'])) &&!$http_auth) {voila j'espere que ca roule pour vous ![]()
Powered by PunBB, supported by Informer Technologies, Inc.
Currently installed 2 official extensions. Copyright © 2003–2009 PunBB.