IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Serveur Discussion :

[Active Directory] Script PHP - Problème de réinitialisation de mot de passe [WS 2008 R2]


Sujet :

Windows Serveur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2006
    Messages : 20
    Par défaut [Active Directory] Script PHP - Problème de réinitialisation de mot de passe
    Bonjour à tous,

    J'essaie de créer un script en PHP afin de réinitialiser les mots de passe de l'active directory.
    J'ai une liste d'utilisateurs et leur mot de passe.

    Pour l'instant je fais des tests sur un seul.
    Je lance le script suivant qui se finit sans erreur et avec les messages
    "Connexion LDAP réussie..."
    puis
    "OK - votre mot de passe a bien été changé"
    mais quand je teste le nouveau mot de passe je ne réussis pas à me connecter.

    <?php

    //Connection AD
    $host = "AdresseIP_LDAP";
    $dn_std="ou=standard,dc=nom_domaine,dc=local";
    $dn = "ou=utilisateurs,".$dn_std;

    $LdapLog="LDAP_Login";
    $LdapPswd="LDAP_Pswd";

    $code="Identifiant_User";
    $MdP_User="MdP_User";

    // LDAP variables
    $ldaphost = "ldap://AdresseIP_LDAP/"; // le serveur LDAP
    $ldapport = 389; // le port du serveur LDAP

    // Connexion LDAP
    $ldapconn = ldap_connect($ldaphost, $ldapport)
    or die("Impossible de se connecter au serveur LDAP $ldaphost");

    if ($ldapconn) {
    // Connexion au serveur LDAP
    $ldapbind = ldap_bind($ldapconn, $LdapLog, $LdapPswd);

    // Vérification de l'authentification
    if ($ldapbind) {
    echo "Connexion LDAP réussie...";
    } else {
    echo "Connexion LDAP échouée...";
    }

    }

    //recherche de la personne dans l'active directory
    $filter="(cn=".$code.")";

    if (!($search=@ldap_search($ldapconn, $dn, $filter))) die("Recherche impossible");
    $entry = ldap_first_entry($ldapconn, $search);
    $dnareset = ldap_get_dn($ldapconn, $entry);

    echo "<p>Reset du mot de passe : ";

    $userdata["userpassword"] = $MdP_User;
    if(ldap_mod_replace ($ldapconn, $dnareset, $userdata))
    {echo "OK - votre mot de passe a bien &eacute;t&eacute; chang&eacute;"; } else { echo "erreur"; }


    ?>

    Est-ce que quelqu'un serait d'où vient le problème ?

    Merci de votre aide

  2. #2
    Membre chevronné Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Par défaut
    utilise var_dump pour dump le contenu de tes variables à chaque étape et diagnostiquer ton erreur, personne ne pourra t'aider les requêtes étant lié à la structure propre de ton AD.

    http://php.net/manual/fr/function.var-dump.php

    EDIT :
    Essaye de remplacer ca
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(ldap_mod_replace ($ldapconn, $dnareset, $userdata)) 
    {echo "OK - votre mot de passe a bien &eacute;t&eacute; chang&eacute;"; } else { echo "erreur"; }

    par

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $LdapModReplace = ldap_mod_replace ($ldapconn, $dnareset, $userdata);
    var_dump($LdapModReplace);
    //if($LdapModReplace){echo "OK - votre mot de passe a bien &eacute;t&eacute; chang&eacute;"; } else { echo "erreur"; }

    REgarde ce que te retourne var_dump($LdapModReplace);

  3. #3
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2006
    Messages : 20
    Par défaut
    Bonjour,

    Merci Lekno pour ton aide.
    J'ai testé avec le var_dump() sur toutes mes variables mais je n'ai pas d'erreur.

    J'ai mis en fichier joint l'affichage suite au lancement de mon script (Affichage_script.png).
    Images attachées Images attachées  

  4. #4
    Membre chevronné Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Par défaut
    Je ne saurai t'aider plus sans le code et l'ad sous la main, néanmoins utilise ce code hébergé sur github et qui visiblement fait le job :

    https://gist.github.com/mattrude/657334

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL-Server] Connexion à SQL SERVER 2008 avec compte active directory (PHP >5.6)
    Par Piou2fois dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 04/02/2016, 15h42
  2. Connexion Active directory PHP MySQL
    Par maxwell374 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 16/09/2010, 09h46
  3. Réinitialiser le mot de passe d'un utilisateur
    Par manu94 dans le forum Sécurité
    Réponses: 3
    Dernier message: 19/07/2008, 13h26
  4. Réponses: 17
    Dernier message: 29/04/2008, 21h53
  5. [MySQL] problème envoi mail pour mot de passe
    Par bonsam dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/11/2006, 20h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo