LDAP Zugriff auf Active Directory

01/02/2008 - 13:38 von NiX | Report spam
Hallo zusammen.

Ich greiffe mit PHP auf das Active Directory zu (LDAP).
Ich kann problemlos Benutzer erstellen und auch deren Namen, Beschreibung,
etc. wieder àndern.

Was aber nicht geht ist das Login.
Erst wenn ich manuell im AD (nur) das Passwort zurücksetze, funktioniert es.
Wenn ich das Passwort auf das Gleiche setze, bleibt das Attribut userPassword
auf dem gleichen Wert ({MD5}.), UserAccountControl bleibt auch gleich.
Somit wird der Wert eigentlich richtig ins AD geschrieben.

Wenn ich den Wert userPassword (habe es auch mit userpassword probiert) per
LDAP àndere und wieder auslese, habe ich einen neuen, anderen MD5 Wert für
userPassword. Jedoch kann ich mich mit dem neuen Passwort nicht einloggen,
mit dem alten (welches vorher über das AD zurückgesetzt wurde) schon.


Kann mir jemand helfen?
Von wo liest AD das Passwort wirklich aus, wie kann ich es àndern?

Der Code aktuell lautet so, müsste bei anderen Programmiersprachen àhnlich
sein:

if (ldap_mod_replace ($ds, "CN=" . $CN . ",OU=VPN,DC=watchdog,DC=local",
array('userPassword' => "{MD5}" . base64_encode(pack("H*", md5($newpass))))))
{
print "succeded";
} else {
print "failed";
}


Dieser Befehl àndert userPassword erfolgreich (überprüft mit anschliessendem
auslesen von userPassword über LDAP), nachher ist aber immer trotzdem noch
das alte Passwort gültig.

Gruss,
Erich
 

Lesen sie die antworten

#1 Thorsten Kampe
01/02/2008 - 14:14 | Warnen spam
* NiX (Fri, 1 Feb 2008 04:38:00 -0800)
Ich greiffe mit PHP auf das Active Directory zu (LDAP).
Ich kann problemlos Benutzer erstellen und auch deren Namen,
Beschreibung, etc. wieder àndern.



Wenn das unter Windows làuft, solltest du definitiv nicht nativ LDAP
machen sondern über ADSI gehen...

Thorsten

Ähnliche fragen