Ich versuche herauszufinden, wie ein LDAP-Benutzer-Passwort zurückgesetzt, wenn Sie als ein anderer Benutzer (Admin-Benutzer) in PHP für ein Passwort-Reset-Funktion verbunden.Zurücksetzen eines LDAP-Benutzers Passwort in PHP, ohne das alte Passwort, mit admin Benutzer
$this->con = ldap_connect($this->server);
ldap_set_option($this->con, LDAP_OPT_PROTOCOL_VERSION, 3);
$user_search = ldap_search($this->con, $this->dn,"(|(uid=$user)(mail=$user))");
$this->user_get = ldap_get_entries($this->con, $user_search);
$user_entry = ldap_first_entry($this->con, $user_search);
$this->user_dn = ldap_get_dn($this->con, $user_entry);
$this->user_id = $this->user_get[0]["uid"][0];
$entry = array();
$entry["userPassword"] = "$encoded_newPassword";
ldap_modify($this->con, $this->user_dn, $entry)
(von Klassenmethoden aggregiert) Dies funktioniert für das Kennwort eines Benutzers zurückzusetzen, das alte Kennwort verwenden, aber wie würden Sie gehen über mit einem anderen Benutzer eine Kennwortänderung zu tun (admin in diesem Fall)?
Ich denke, es gibt etwas über die LDAP-Authentifizierung/Bindung, die ich nicht verstehe. Vielleicht kann mich jemand in die richtige Richtung weisen.
kann ich eine ldap_bind vor der ldap_modify machen, die mir erlaubt, user_dn zu verwenden und den Benutzer als Administrator zu aktualisieren?
Nicht klar, wie das alles funktioniert.
OpenLDAP ist die verwendete Implementierung.