Réinitialiser les mots de passe d'un active directory par LDAP

Messages postés
14
Date d'inscription
mercredi 12 mai 2004
Statut
Membre
Dernière intervention
9 juin 2009
- - Dernière réponse : cs_ankou22
Messages postés
81
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
7 juin 2012
- 2 mars 2006 à 13:08
Bonjour,

L'administrateur réseau de mon bahu m'a demandé de faire un programme en PHP afin qu'il puisse réinitialiser tous les mots de passe de son active directory pendant les vacances scolaires.
Donc, avec PHP, j'arrive à récupérer toutes les données relatives aux Users, mais je n'arrive pas à accéder aux mots de passe.

Si quelqu'un avait un bout de code afin de me donner une piste pour chercher, je lui en serait très reconnaissant car je n'arrive pas à trouver la manière d'accéder aux mots de passe.

250386
Afficher la suite 

5 réponses

Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
Hello,

faut que tu te connectes au ldap avec les droits d'admin.
Tu dois pouvoir accéder aux mots de passe, généralement c'est userPassword.
Mais tu ne les verras jamais...
Par contre, tu peux lancer une commande LDAP qui va effectuer un reset.
Exemple pris chez Sun :
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: uid=bjensen,ou=People,dc=example,dc=com
changetype: modify
replace: userPassword
userPassword: ChAnGeMe

à toi d'utiliser les fonctions ldap de php pour lancer la commande réinitialisant un mot de passe pour un utilisateur donné (en fonction de son uid quoi).
Commenter la réponse de malalam
Messages postés
14
Date d'inscription
mercredi 12 mai 2004
Statut
Membre
Dernière intervention
9 juin 2009
0
Merci
Salut malalam,

merci de m'avoir répondu si vite.
J'ai oublier de préciser dans mon post que le serveur était sous Win 2K, et ta commande :"ldapmodify -h host -p port -D "cn=Directory Manager" -w password" ressemble plus a une ligne de commande d'un shell linux.
Je me demandais si proc_open() pouvait executer cette commande pour un serveur Windows.

En attendant je vais aller faire quelques recherches sur ldapmodify.

Merci

250386
Commenter la réponse de 250386
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
En fait, LDAP fonctionne avec des requêtes; et avec ces requêtes, tu peux effectuer des recherches, ou des modifications (il est loin le temps où j'étais champion ldap dans une grosse boîte...mes souvenirs s'estompent lol désolé). Or, les fonctions php pour LDAP te permettent d'éxecuter ces fonctions.
Dans les deux boîtes pour lesquelles j'ai été champion ldap, les deux fonctionnaient avec active directory. Les requêtes LDAP sont indépendantes des plateformes, de ce que j'en sais.
Après bon, comme je te l'ai dit, c'est un peu loin...donc je ne peux pas t'aider très précisément. Je sais juste qu'un de ces LDAP était géré sous php (l'autre sous Perl). Donc, c'est faisable...! (de faire un reset du userPassword, je veux dire, puisqu'on avait accès à ces commandes via une interface gérée en Perl ou en PHP). Malheureusement, je n'ai jamais accédé au code proprement dit.
Quant à la requête, aux lignes de commande précises que l'on utilisait parfois sur nos postes (pour aller polus vite et éviter une connexion au ldap), sous DOS, pour requêter le LDAP, je t'avoue que je ne m'en souviens pas précisément.
Commenter la réponse de malalam
Messages postés
14
Date d'inscription
mercredi 12 mai 2004
Statut
Membre
Dernière intervention
9 juin 2009
0
Merci
Bon ben je vais essayer de trouver des sources alors.

Merci de ton aide!!
Commenter la réponse de 250386
Messages postés
81
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
7 juin 2012
0
Merci
il y a une longue discution (8 pages) sur ce sujet ici:

http://forums.devshed.com/ldap-programming-76/modifying-active-directory-passwords-through-php-and-iis-74683.html

De plus, il te faut utiliser SSL.

si tu y arrive ... partage svp

ANKOU22
Commenter la réponse de cs_ankou22