Mailinglisten-Archive |
Irani, Amir schrieb:
>
> Ich will einfach verstehen was im Hintergrund passiert.
>
> Also nochmal :
> Der Browser zeigt ein popup Passwortabfrage der von Apache kommt.
Ausgelöst durch folgenden HTTP-Header, den der Apache sendet. Im
PHP-Programm steht dazu:
Header("WWW-Authenticate: Basic realm=\"$realm\"");
Header("HTTP/1.0 401 Unauthorized");
> Durch den Ldap-modul was in Apache einkompiliert ist wird ldap abgefragt
> Und bei richtiger Eingabe der Zugriff gewährt.
> Ist es richtig bis hier ?
Nein. Den LDAP-Zugriff macht nicht der Apache, den muss das PHP-Programm
machen. Bei mir ist der LDAP-Server ein Lotus-Domino-Server, das spielt
hier aber eine Rolle). Die folgenden Skript-Ausschnitte (ohne
Fehlerprüfung etc.) zeigen den Ablauf (hier mit Anonymem Binden):
$conn_id = @ldap_connect($ldap_host); // Kontakt mit LDAP-Server
herstellen
$bind_id = @ldap_bind($conn_id); // Anonymes Binden
$res_id = @ldap_search($conn_id, $ldap_base_dn[0], "uid=$user");
// Suche mit UID
$entry_id = @ldap_first_entry($conn_id, $res_id); // Benutzer ist
gefunden
$user_dn = @ldap_get_dn($conn_id, $entry_id);
$bind_id = @ldap_bind($conn_id, $user_dn, $pass);
if (!$bind_id) {
authGet($realm . " Fehler: Authentifizierung fehlgeschlagen");
// Benutzer/Kennwort erneut anfordern
}
@ldap_unbind($conn_id); // LDAP-Verbindung freigeben
Ich hoffe das erhellt den Mechanismus.
Gruß
Michael Detambel
php::bar PHP Wiki - Listenarchive