Re: Authentification Automatique

merci
ok pour la partie linux.

GLPI 0.72, OCS-NG 1.02.1 : Fedora 10  / Apache 2.2.11 / PHP 5.2.9 / Mysql 5.0.77
Navigateurs : Internet Explorer 8 / firefox 2
test : GLPI 0.72RC3

Re: Authentification Automatique

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)

GLPI 0.68.3-2 en production et GLPI 0.7 RC1 en test / OCSNg v1.01
Server : Linux Debian 4.0 pour GLPI / Windows Server 2003 pour l'AD
Plateforme Web : Apache 2.2.6 / PHP 5 / MySQL 5 / PERL
Clients : Windows XP, 2000 et IE 6 & 7.

Re: Authentification Automatique

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.

GLPI 0.68.3-2 en production et GLPI 0.7 RC1 en test / OCSNg v1.01
Server : Linux Debian 4.0 pour GLPI / Windows Server 2003 pour l'AD
Plateforme Web : Apache 2.2.6 / PHP 5 / MySQL 5 / PERL
Clients : Windows XP, 2000 et IE 6 & 7.

129

Re: Authentification Automatique

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.

Re: Authentification Automatique

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).

Re: Authentification Automatique

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.

132

Re: Authentification Automatique

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)

Re: Authentification Automatique

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 wink

PS : j'y connais rien en langage vbscript tongue

Last edited by meuced (2007-10-29 17:58:05)

134

Re: Authentification Automatique

J'avais fait un premier jet du script en javascript mais IE demandait à chaque fois l'autorisation pour exécuter le contrôle activeX.

135

Re: Authentification Automatique

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 ^^

Re: Authentification Automatique

rah je me doutais bien qu'il y aurait un truc du genre wink
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é wink

137

Re: Authentification Automatique

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 smile

Re: Authentification Automatique

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

Re: Authentification Automatique

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é

Re: Authentification Automatique

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

GLPI 0.68.3
windows XP
XAMMP 1.55

Re: Authentification Automatique

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

Re: Authentification Automatique

tu sait m'envoyer t'es 2 fichiers sur franklammers@free.fr

merci de ton aide

GLPI 0.68.3
windows XP
XAMMP 1.55

Re: Authentification Automatique

j'ai du rater un épisode, quand je me log ca m'indique
Identifiant ou mot de passe videProtocol error
Protocol error
Protocol error

GLPI 0.68.3
windows XP
XAMMP 1.55

Re: Authentification Automatique

je suis sous vista en IE7 avec le client, ca peux en etre la cause ?

GLPI 0.68.3
windows XP
XAMMP 1.55

Re: Authentification Automatique

jevirot wrote:

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

W2K3
Xampp
OCS ver4100
GLPI 0.72.3

Re: Authentification Automatique

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.

OCS Inventory NG: v1.02.1 / GLPI: v0.72.3
Server OS: Microsoft Windows Server 2003 Standard Edition
Server Hardware: bi-processeur Intel(R) Pentium(R) XEON 2.8GHz / 4096 MB RAM / RAID 5
Inventoried computers: 270

Re: Authentification Automatique

Met@lnono wrote:

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 ;-)

W2K3
Xampp
OCS ver4100
GLPI 0.72.3

148

Re: Authentification Automatique

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 ......

Plateforme :  GLPI : 0.70.1
OS : Windows 2003 Sp2 / Logiciel de décompactage : Winrar / Navigateurs : IE 7.0 / Firefox 2.0.0.11
Installation : Package Ocs NG 1.0.1  - XAMPP version 1.5.5
Serveur  : Apache 2.2.0 / MySql : 5.0.27  Langage : PHP 5.2.0 / PhpMyAdmin 2.9.1.1

Re: Authentification Automatique

J'ai réussi a connecter les utilisateurs automatiquement mais pas encore avec le verif LDAP.

OCS Inventory NG: v1.02.1 / GLPI: v0.72.3
Server OS: Microsoft Windows Server 2003 Standard Edition
Server Hardware: bi-processeur Intel(R) Pentium(R) XEON 2.8GHz / 4096 MB RAM / RAID 5
Inventoried computers: 270

150

Re: Authentification Automatique

je vous donne la solution , pour la version 0.7 de GLPI , installé sur un serveur Linux avec Apache smile

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 Headers

et 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 smile