You are not logged in.
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
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
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
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
pas encore d'import csv..
Xavier Caillaud
Blog GLPI Infotel
Offline
salut
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
Je n'arrive pas à faire fonctionner ce script. Peux tu me donner plus d'information sur la procedure à suivre ?
Offline
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
salut
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.
Merci pur tous aide
Offline
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.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
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 .
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
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 .
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