Gunther: Apache2 und HTTP Authentifizierung

Beitrag lesen

Hallo Martin,

Meine (vage) Idee war die, dass man evt. über ein HTML-Formular die Daten für Benutzername und Passwort zum Server transportieren kann, wo sie per PHP (nach vorheriger Prüfung) dem Apache "mitgeteilt" werden (etwa per apache_setenv), ...

und damit bist du doch schon fast am Ziel: Jetzt noch eine Session aufmachen und die Information "Benutzerdaten OK" dort ablegen, fertig. Dann kannst du HTTP-AUTH entsorgen[1].

Sessions sind aber (wie schon geschrieben) genau das, was ich vermeiden möchte (da Sessions für mich nur dann "akzeptabel" sind, wenn man die Annahme von Cookies voraussetzen kann, was in diesem Fall hier nicht möglich ist).

Dann hättest du -falls das von Belang ist- sogar die Möglichkeit, ein explizites Abmelden anzubieten, was bei HTTP-AUTH nur mit Klimmzügen möglich ist (und durch seine Nebenwirkungen ggf. den Nutzer verwirrt).

Ja, diese Problematik ist mir bekannt. Aber in diesem Fall nicht tragisch, da ja der gesamte Bereich geschützt werden soll und keine Notwendigkeit für ein Ausloggen des Users besteht.

per Location-Header weitergeleitet wird und der Apache per Rewrite-Condition (eben der Umgebungsvariable) den Zugriff erlaubt oder eben unterbindet.

Das geht nicht. Es gibt AFAIK keinen Weg, die Zugangsdaten dem Client wieder zurückzuliefern, so dass er sie für Folgerequests speichert.

Ja, das ist wohl leider das Problem. Deshalb bekommt man die Authentifizierungs-Informationen nur über die jeweilige Browser-Eingabemaske in dessen speziellen Cache dafür.

[1] Obacht: Bei einem rein sessionbasierten Login ohne HTTP-AUTH ist nur der Zugriff auf die (Script-)Ressourcen geschützt, die die Voraussetzungen von sich aus überprüfen! Der Zugriff auf andere Ressourcen wie Bilder oder statische HTML-Dateien "am Login vorbei" ist trotzdem möglich. Kann mit mod_rewrite und weiterer Scriptlogik abgedichtet werden, aber das ist eben wieder zusätzlicher Aufwand.

Ja, danke für den Hinweis (ist mir sogar auch schon klar gewesen ;-) ). Dann kann man aber imho eben lieber gleich den Apache die ganze Arbeit machen lassen und hat Null Extra-Aufwand (und mögliche Fehlerquellen/ Löcher im System).

Dank & Gruß
Gunther