Changer mot de passe active directory
Posté : 24 juin 2010, 11:09
Bonjour,
Je suis en train de travailler sur un script php qui va réinitialisé le mot de passe active directory d'une personne donnée. Pour ce faire, dans un formulaire la personne inscrira son adresse mail qui sera envoyée à mon script via une variable POST. Tout se passe correctement, toutefois lorsque je demande le reset mdp, rien ne se passe. Voici mon code :
Le script se lance sans aucun problème mais le reset ne se fait pas. J'ai tenté avec "description" à la place de "userpassword" et là, ca fonctionne la description du compte se fait bien. Auriez vous idée de mon erreur s'il vous plait?
Je suis en train de travailler sur un script php qui va réinitialisé le mot de passe active directory d'une personne donnée. Pour ce faire, dans un formulaire la personne inscrira son adresse mail qui sera envoyée à mon script via une variable POST. Tout se passe correctement, toutefois lorsque je demande le reset mdp, rien ne se passe. Voici mon code :
Code : Tout sélectionner
<?php
//parametres de connexion
$email = $_POST["mail"]; //variable email recu par le formulaire
//vrification de l'adresse mail
$usercheck = substr($email, -9);
if (!($usercheck == "@MONDOMAINE.fr"))
{echo "L'adresse mail fournie n'est pas correcte. Elle doit être sous la forme [email protected]";}
$host = "ldap://MONSERVEURAD.MONDOMAINEfr";
$dn = "OU=MONOU, DC=MONDOMAINE,DC=fr";
$user= substr($mail, 0, -9);
//Connection AD
$adConn = ldap_connect($host, 636) or die("La connection a echoue!");
$bind = @ldap_bind($adConn, "[email protected]", "MOTDEPASSEADMIN") or die ("erreur de binding");
//recherche de la personne dans l'active directory
$filter = "(mail=$email)";
if (!($search=@ldap_search($adConn, $dn, $filter)))
die("Recherche impossible");
$info = ldap_get_entries($adConn, $search);
if ($info) {
echo "L'adresse existe bien dans l'active directory"; //juste pour moi le temps de la ralisation du script
//recuperation du DN correspondant au mail
$entry = ldap_first_entry($adConn, $search);
$dnareset = ldap_get_dn($adConn, $entry);
}
echo "<p>Reset du mot de passe : ";
echo $dnareset; //juste pour moi le temps de la ralisation du script
$userdata["userpassword"] = '1234mdp*P';
if(ldap_mod_replace ($adConn, $dnareset, $userdata))
{echo "OK - votre mot de passe a bien été changé"; } else { echo "erreur"; }
?>