PHP et active directory, erreur

Résolu/Fermé
Archeus01 Messages postés 1567 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 - 14 janv. 2009 à 14:22
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 15 janv. 2009 à 11:06
Bonjour,
j'aimerais modifier un utilisateur active directory à l'aide de PHP. Pour l'instant, j'essaye simplement d'en ajouter un et j'ai déjà des erreurs!

$ds = ldap_connect("ldap://"."asterix."."gaulois.lan") or die("Erreur de connexion à AD!");
if ($ds) {
// Connexion avec une identité qui permet les modifications (enfin je pense)
if (ldap_bind($ds, "administrateur", "")) {echo RL."identification ok".RL; }
else { echo RL."Problème d'identification ";}

// prepare les données
$info["cn"]='Jean Dupont';
$info["sn"]='Jean';
$info["mail"]='jeand@serveur.mail.com';
$info["objectclass"]='personne';

// Ajoute les données au dossier
$r=ldap_add($ds, "cn=Jean Dupont, o=Ma Compagnie, c=FR", $info);

ldap_close($ds);
} else {
echo RL.'Impossible de se connecter au serveur LDAP';
}

et j'ai

identification ok
PHP Warning: ldap_add(): Add: No such attribute in D:\www\intranet\frederic_svn
\classe\ScriptsEXT.php on line 1443

Warning: ldap_add(): Add: No such attribute in D:\www\intranet\frederic_svn\clas
se\ScriptsEXT.php on line 1443

La ligne 1443 est évidemment $r=ldap_add($ds, "cn=Jean Dupont, o=Ma Compagnie, c=FR", $info);.

Je me suis fortement inspiré de http://www.manuelphp.com/php/function.ldap-add.php ...
Personne ne saurait comment résoudre mon erreur?
A voir également:

3 réponses

Archeus01 Messages postés 1567 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 447
15 janv. 2009 à 10:25
Bon, j'ai fini par résoudre mon problème \o/ après 8h de boulot dessus.

$ds = ldap_connect("ldap://"."asterix."."gaulois.lan") or die("Erreur de connexion à AD!");
if ($ds) {
// Connexion avec une identité qui permet les modifications
if (ldap_bind($ds, "administrateur", "mdp")) {echo RL."identification ok".RL; }
else { echo RL."Problème d'identification ";}

// On va chercher l'identifiant DN exact de la personne à modifier.

//On indique ce qu'il faut pour recherhcer
//La présence des intiales est uniquement la comme test.
$dn = "OU=Utilisateurs,DC=gaulois,DC=lan";
$person="fred";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("dn","initials");
//On lance la recherche
$sr=ldap_search($ds, $dn, $filter, $justthese);

//On cherche dans le résultat le dn
$info = ldap_get_entries($ds, $sr);
//var_dump($info);
$dn = $info[0]['dn'];
if (is_null(($info[0]['initials'][0])) == false) {$initiale = $info[0]['initials'][0];echo "défini";}
else { $initiale ="";echo "pas défini"; }

//Echo qui permet de tester, RL est un retour à la ligne
echo RL."dn : $dn";
echo RL."initial : $initiale".RL;

//On initialise ce qu'il faut modifier
$mod['initials'][0]="pm";
$mod['thumbnailPhoto']=$contents;
ldap_modify ( $ds,$dn, $mod ); //on modifie
ldap_close($ds); //On oublie pas de fermer

} else {
echo RL.'Impossible de se connecter au serveur LDAP';
}
2
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
14 janv. 2009 à 14:26
Salut,

Je crois qu'Active Directory est un ldap un peu spécial.
Regarde un petit exemple:
https://phpsources.net/
0
Archeus01 Messages postés 1567 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 447
14 janv. 2009 à 14:36
Je vois pas trop le rapport en fait. Lui lit, j'ai aussi une fonction pour lire et pas de souci... Mais c'est pour modifier que je galère ^^'.
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527 > Archeus01 Messages postés 1567 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022
14 janv. 2009 à 16:55
Argh, ben désolé je peux pas t'aider :s
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
15 janv. 2009 à 11:06
Ouch...Merci, ça en aidera sûrement d'autres ;-)
0