ChrisB: Dynamische Benutzerauthentifizierung anhand URL

Beitrag lesen

Hi,

Du hast per RewriteCond doch Zugriff auf die Umgebungsvariablen REMOTE_USER und REQUEST_URI.
Dann koenntest du ja verlangen, dass der REMOTE_USER an spezifischer Position im REQUEST_URI vorkommen muss - wenn nicht, gibt's per RewriteRule einen 403 Forbidden.

okay, damit könnte ich aber nur den Benutzer überprüfen, nicht das Passwort. Oder soll das etwa in der URL stehen? ;-)

Natuerlich nich'.

Die Authentifizierung laesst du nach wie vor mod_auth machen - zentral, fuer alle User-Verzeichnisse mit einer .htpasswd.
Damit sind wir wieder beim dem Szenario, dass man darueber mit einem Zugang eigentlich in alle User-Verzeichnisse rein kaeme, auch in "fremde".
Dem schiebst du mittels mod_rewrite einen Riegel vor - wenn der REMOTE_USER nicht zum angeforderten Verzeichnisnamen (wie gesagt, aus REQUEST_URI o.ae. "extrahieren") passt (RewriteCond), dann verbietest du per RewriteRule den Zugriff.

Muss man dann nur schauen, dass sich die Responses auf "richtiges Verzeichnis/Username und falsches Passwort" und "falscher Username / richtiges Passwort" gleichen - andernfalls koennte man von ausserhalb ggf. unerwuenschte Rueckschluesse ziehen.

ich verstehe nicht ganz, was du meinst. Wie soll ich von mod_rewrite auf eine Textdatei, wo die Passwörter stehen, zugreifen?

Gar nicht, s.o.
mod_rewrite soll nur ueberpruefen, ob bei mod_auth verwendeter Username == Verzeichnisname.
Wenn nicht, dann mit 403 Forbidden reagieren (oder erneutem 401, fuer erneute Aufforderung zur Eingabe der Zugangsdaten).

Nur eben die sichtbare (und unsichtbare, sprich HTTP Response Header) Antwort des Servers sollte dann in beiden Faellen (richtiger Nutzername fuer's angeforderte Verzeichnis, aber falsches Passwort - falscher Nutzername, der nicht zum angeforderten Verzeichnis passt) identisch sein - damit sich keine Rueckschluesse aus abweichenden Antworten ziehen lassen.

MfG ChrisB