
Gibt es eine Möglichkeit, dynamisch zu bestimmen, welche htpasswd-Datei zur Laufzeit verwendet werden soll? Beispielsweise Folgendes (das nicht funktioniert, nur ein Beispiel) in einem VirtualHost-Kontext:
RewriteEngine on
RewriteMap htpasswdfiles txt:/srv/htpasswdfiles/htpasswdfiles.map
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule .* - [E=PASSWD_FILE:${htpasswdfiles:%1},L]
<Directory /some/path>
AuthType Basic
AuthName "Restricted Access"
AuthUserFile $PASSWD_FILE
Require valid-user
</Directory>
Ich weiß, dass das obige Beispiel nicht funktioniert, aber ich bin nicht sicher, ob es eine andere Möglichkeit gibt, Umgebungsvariablen wie diese zu verwenden ... Wenn nicht, weiß ich nicht, ob es eine andere Methode gibt, um die htpasswd-Datei dynamisch zur Laufzeit auszuwählen. htpasswdfiles.map wäre eine Zuordnung, die links Domänen und rechts die entsprechenden htpasswd-Dateipfade enthält.
Antwort1
mod_perl
Früher habe ich die dynamische Basisauthentifizierung ohne Dateien eingerichtet htpasswd
, in den Apache-Konfigurationen war ein Handler deklariert und Perl hat den Rest erledigt. Aber das ist wahrscheinlich nicht das, was Sie wollen ( mod_perl
wird heutzutage nicht mehr häufig verwendet).
Antwort2
Lösung 1
Richten Sie Ihre Apache-Konfiguration einfach auf eine Flatfile aus und lassen Sie den Inhalt von einem Skript außerhalb von Apache steuern.
Lösung 2
Verwenden Sie LDAP zur Authentifizierung, anstatt Einträge in einer Flatfile nachzuschlagen.
Antwort3
Da Umschreiben und Authentifizierung absolut nichts gemeinsam haben, funktioniert dies nicht.
WARUM müssen Sie die „htpasswd-Datei dynamisch auswählen“?