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 2006-10-23 16:30:53

adm_park
Member
Registered: 2006-10-23
Posts: 3

Importation des données de l'AD dans GLPI?

Bonjour,



Je suis nouvel utilisateur de GLPI (et futur administrateur), et je cherche à l'installer dans mon environnement de machines mixtes :

Mon domaine est géré par AD sous W2K3 et contiens plusieurs serveurs et plusieurs dizaines d'utilisateurs.
GLPI est installé sur un serveur W2K3 et a l'air de fonctionner normalement.
(Version 0.68.2 + Mysql 5)

J’ai plusieurs questions :
- J'ai installé la couche LDAP conformément aux docs. Quel moyen ai-je de tester que la communication est fonctionnelle ? (je crains ne pas avoir bien compris le pourquoi de cette connexion LDAP au stade actuel...)

- L'autre question est plus importante : Je cherche à faire l'import de mon AD dans GLPI : noms d'utilisateurs, login, le poste de travail qui leur est affecté, etc.....
Je voudrais faire cet import soit en "one shot" et l'intégrer dans ma base Mysql, soit complètement en relation avec l'AD, et je ne sais pas comment faire (et si c'est possible).

J'ai bien vu le plugin qui fait l'inventaire des machines mais j'aimerais avant de le déployer, faire l'importation des données déjà existantes de l'AD.


Merci d'avance pour votre aide.


Cordialement

Offline

#2 2006-10-23 16:54:49

yann
Member
Registered: 2005-08-25
Posts: 164

Re: Importation des données de l'AD dans GLPI?

Bonjour,

La couche LDAP sert justement a récupéré les données de l'AD (car AD est un annuaire de type LDAP).

Si tout est configurer correctement dans authentification externes, il suffit d'aller dans administration-utilisateurs puis Depuis une source externes et mettre un identifiant existant de l'AD. Puis lorsque l'on retourne dans utilisateurs, si tout est configurer correctement, il a récupéré les données de l'AD.

Cordialement,

Yann

Offline

#3 2006-10-24 09:21:14

adm_park
Member
Registered: 2006-10-23
Posts: 3

Re: Importation des données de l'AD dans GLPI?

Merci pour l'explication ;-)

Alors effectivement après avoir fait plusieurs test, mon LDAP ne fonctionnait pas (c'est corrigé).

Bien sur d'autres questions sont apparues :

- Peut-on importer la totalité des utilisateurs de l'AD directement ou faut il rentrer leurs logins systématiquement ?

- Idem pour les ordinateurs de l’AD : est il possible de les importer même si certains sont non liés aux utilisateurs (serveurs ou machines en libres services) ?


Merci d'avance.

Offline

#4 2006-10-24 15:02:21

jm.cierniewski
Member
From: Nanterre 92
Registered: 2005-11-02
Posts: 1,655

Re: Importation des données de l'AD dans GLPI?

bonjour,
ce n'est pas comme cela que ca marche.
la fonction ldap ne sert qu'a identifier le login, et l'appartenance aux groupes,
pas d'import total du ldap.


Plateforme :
OS : Windows 2003 Sp1 / logiciel de décompactage : Winzip / Navigateurs : Internet Explorer 6sp1 / firefox 1.5
Installation : Package Ocs NG RC3  - XAMPP version 1.5.1
Serveur  : Apache 2.0.55 / Base : 5.0.18-nt / Langage : PHP 5.1.1 / PhpMyAdmin 2.7.0-pl1

Offline

#5 2006-10-24 15:14:16

tsmr
GLPI-DEV
From: Rennes
Registered: 2005-08-26
Posts: 11,632
Website

Re: Importation des données de l'AD dans GLPI?

pas encore d'import csv..


Xavier Caillaud
Blog GLPI Infotel

Offline

#6 2006-12-04 15:57:59

Martialc
Member
From: Tulle
Registered: 2006-11-28
Posts: 35

Re: Importation des données de l'AD dans GLPI?

salut wink

Je remonte un vieux post mais j'en profite pour proposer un truc et j'aimerais savoir si c'est valable.

Je ne sais pas si cela est très propre, mais dans mon cas je me suis fais un petit script php pour importer tout mon AD.

<?php

 include ("_relpos.php");
 $NEEDED_ITEMS=array("user","profile","setup","group");
 include ($phproot . "/inc/includes.php");


 $dn=$cfg_glpi["ldap_basedn"];
 $condition=$cfg_glpi["ldap_condition"];
 $rdn = $cfg_glpi["ldap_rootdn"];
 $rpass = $cfg_glpi["ldap_pass"];
 $ldapServer = $cfg_glpi["ldap_host"];
 $ldapBase = $cfg_glpi["ldap_basedn"];

 $ldapConn = ldap_connect($ldapServer);
 if (!$ldapConn)
 {
    die('Cannot Connect to LDAP server');
 }

 $ldapBind = ldap_bind ( $ldapConn,$rdn,$rpass);
 if (!$ldapBind)
 {
    die('Cannot Bind to LDAP server');
 }

 ldap_set_option($ldapConn, LDAP_OPT_PROTOCOL_VERSION, 3);
 $ldapSearch = ldap_search($ldapConn, $ldapBase, "(sn=*)");
 $ldapResults = ldap_get_entries($ldapConn, $ldapSearch);

 for ($i=0; $i<$ldapResults["count"]; $i++) {
    echo "Ajout de ".$ldapResults[$i]["sn"][0] . '<br />';
    $identificat = new Identification();
    $found_dn=$identificat->ldap_get_dn($cfg_glpi["ldap_host"],$cfg_glpi["ldap_basedn"],$ldapResults[$i]["sn"][0],$cfg_glpi["ldap_rootdn"],$cfg_glpi["ldap_pass"],$cfg_glpi["ldap_port"]);
    if ($found_dn&&!$identificat->user->getFromDBbyName($ldapResults[$i]["sn"][0])){
        $identificat->user->getFromLDAP($cfg_glpi["ldap_host"],$cfg_glpi["ldap_port"],$found_dn,$cfg_glpi["ldap_rootdn"],$cfg_glpi["ldap_pass"],$cfg_glpi['ldap_fields'],utf8_decode($ldapResults[$i]["sn"][0]));
        $identificat->user->fields["_extauth"]=1;
        $input=$identificat->user->fields;
        unset($identificat->user->fields);
        $identificat->user->add($input);
    }
 }
 
?>

et ça m'a bien importé tout le monde.

Merci de me dire si c'est bon ou si il y a un problème avec ce script.

Last edited by Martialc (2006-12-04 15:58:31)

Offline

#7 2006-12-04 18:23:22

impala
Member
Registered: 2006-06-07
Posts: 4

Re: Importation des données de l'AD dans GLPI?

Je n'arrive pas à faire fonctionner ce script. Peux tu me donner plus d'information sur la procedure à suivre ?

Offline

#8 2006-12-04 18:25:50

Martialc
Member
From: Tulle
Registered: 2006-11-28
Posts: 35

Re: Importation des données de l'AD dans GLPI?

Dans mon cas j'avais paramétré l'authentification ldap dans glpi, et j'ai créé un fichier import_user.php dans mon dossier glpi avec le contenu ci-dessus.

ensuite j'ai just eu a aller dans http://monurl/glpi/import_user.php

et voila

Last edited by Martialc (2006-12-04 18:26:25)

Offline

#9 2006-12-07 10:46:05

masterstyle
Member
Registered: 2006-11-28
Posts: 16

Re: Importation des données de l'AD dans GLPI?

salut smile

Le script che vous m'avez indiqué extrait les données (je les vois arriver en "sniffant" la connexion) mias il ne les insère pas dans les tableaux. Je ne suis pas un expert de php et je ne comprends pas bien comment sélectionner les champs à insérer et donner les instructions pour les insérer dans des tableaux déterminés. En particulier il y a trois tableaux intéressants:

glpi_users
glpi_groups
glpi_users_groups

Dans un tableau il y a les utilisateurs avec les champs relatifs
dans l'autre il y a les groupes définis
dans le dernier l'association entre utilisateurs et groupes
Je suis arrivé avec csvde ( donc pas un script php) à importer les utilisateurs, mon problème est d'importer aussi òes groupes ainsi que les associations correctes, le tout ensemble. Peut-etre y ests-vous arrivé?
Dans un deuxième temps il serait intéressant d'avoir un script d'importation général permettant aussi de vérifier si un utilisateur existe au moins parce que si on le fait tourner périodiquement, on risque de trouver des utilisaeturs en double ou une série d'erreurs.

wink Merci pur tous aide

Offline

#10 2006-12-07 12:09:50

Martialc
Member
From: Tulle
Registered: 2006-11-28
Posts: 35

Re: Importation des données de l'AD dans GLPI?

masterstyle wrote:

Je suis arrivé avec csvde ( donc pas un script php) à importer les utilisateurs, mon problème est d'importer aussi òes groupes ainsi que les associations correctes, le tout ensemble. Peut-etre y ests-vous arrivé?
Dans un deuxième temps il serait intéressant d'avoir un script d'importation général permettant aussi de vérifier si un utilisateur existe au moins parce que si on le fait tourner périodiquement, on risque de trouver des utilisaeturs en double ou une série d'erreurs.

wink Merci pur tous aide

Bonjour,

non je n'ais pas eu besoin de gérer les groupes dans mon cas.
C'est vrai qu'une fonctionnalité propre pour importer les utilisateurs de façon régulière serait  bien, malheureusement je n'ais ni la maitrise du php, ni celle de glpi ni même le temps de le faire.
Peut-être que quelqu'un de motivé et plus compétant que moi pourra le faire.

En attendant ce petit script permet just de "dépanner" ceux qui arrivent a le faire marcher big_smile

Je suis désolé, je ne peux pas vraiment améliorer ce bout de code car il faudrait se plonger plus en détaille dans les fonctions de glpi hmm.

Martial

ps: ce script ne doit marcher que avec ldap de AD windows car j'utilise "sn" comme login .... à voire peut-être avec un autre nom de champs pour un autre système.

Last edited by Martialc (2006-12-07 12:13:26)

Offline

#11 2006-12-15 10:43:35

Martialc
Member
From: Tulle
Registered: 2006-11-28
Posts: 35

Re: Importation des données de l'AD dans GLPI?

bonjour à tous

j'ai modifier mon bout de script d'importation de ldap pour qu'il marche mieux.
Avant j'utilisais le nom de famille comme login, c'est une erreur mais chez moi ça ne pausé pas de prob car c'set le nom de familel le login tongue.
En plus désormé si la personne existe déjà le script met a jour les mails, le numero de tel...

j'espère que désormé ça marchera chez vous:

<?php

 include ("_relpos.php");
 $NEEDED_ITEMS=array("user","profile","setup","group");
 include ($phproot . "/inc/includes.php");


 $dn=$cfg_glpi["ldap_basedn"];
 $condition=$cfg_glpi["ldap_condition"];
 $rdn = $cfg_glpi["ldap_rootdn"];
 $rpass = $cfg_glpi["ldap_pass"];
 $ldapServer = $cfg_glpi["ldap_host"];
 $ldapBase = $cfg_glpi["ldap_basedn"];

 $ldapConn = ldap_connect($ldapServer);
 if (!$ldapConn)
 {
    die('Cannot Connect to LDAP server');
 }

 $ldapBind = ldap_bind ( $ldapConn,$rdn,$rpass);
 if (!$ldapBind)
 {
    die('Cannot Bind to LDAP server');
 }

 ldap_set_option($ldapConn, LDAP_OPT_PROTOCOL_VERSION, 3);
 $ldapSearch = ldap_search($ldapConn, $ldapBase, "(sn=*)");
 $ldapResults = ldap_get_entries($ldapConn, $ldapSearch);

 for ($i=0; $i<$ldapResults["count"]; $i++) {
    echo "Ajout de ".$ldapResults[$i]["samaccountname"][0] . '<br />';
    $identificat = new Identification();
    $found_dn=$identificat->ldap_get_dn($cfg_glpi["ldap_host"],$cfg_glpi["ldap_basedn"],$ldapResults[$i]["samaccountname"][0],$cfg_glpi["ldap_rootdn"],$cfg_glpi["ldap_pass"],$cfg_glpi["ldap_port"]);
    if ($found_dn&&!$identificat->user->getFromDBbyName($ldapResults[$i]["samaccountname"][0])){
        $identificat->user->getFromLDAP($cfg_glpi["ldap_host"],$cfg_glpi["ldap_port"],$found_dn,$cfg_glpi["ldap_rootdn"],$cfg_glpi["ldap_pass"],$cfg_glpi['ldap_fields'],utf8_decode($ldapResults[$i]["samaccountname"][0]));
        $identificat->user->fields["_extauth"]=1;
        $input=$identificat->user->fields;
        unset($identificat->user->fields);
        $identificat->user->add($input);
    }
 }
 
?>

bon courage

martial

Offline

Board footer

Powered by FluxBB