Apache/HTTP/Authentifizierung
Apache Webserver Authentifizierung
Beschreibung
Passwortschutz für Webseiten oder Verzeichnisse
- nur für bestimmte Benutzer verfügbar
- Webseite vor Suchmaschinen-Bots verbergen
.htpasswd Datei erstellen
Zuallererst braucht man eine .htpasswd Datei. Diese können Sie ganz einfach mit einem Texteditor erstellen.
Wichtig Nicht den Punkt vor dem Dateinamen vergessen!
In dieser Datei werden alle Benutzer- und Passwortdaten hinterlegt. Diese sind verschlüsselt und können direkt mit unserem .htaccess Generator erstellt werden.
Falls mehrere Benutzer angelegt werden sollen, können Sie die jeweiligen Codezeilen einfach untereinander in die .htpasswd Datei schreiben.
Legen Sie nun die .htpasswd Datei in einem Verzeichnis abseits der darauf verweisenden .htaccess Datei ab (siehe folgend Schritt 2).
Wichtig
- Die .htpasswd sichert nicht das Verzeichnis und deren Unterverzeichnisse in der die Datei liegt ab, sondern die Datei dient lediglich als Liste aller möglichen Zugangsdaten.
- Die .htaccess Datei übernimmt die eigentliche Aufgabe, das Verzeichnis und die Unterverzeichnisse mit einem Passwortschutz versehen.
- Es spielt daher nur eine Rolle, wo die .htacces Datei abgelegt wird.
.htaccess Datei erstellen/anpassen
AuthType Basic AuthName "Passwortgeschützter Bereich" AuthUserFile /pfad/zur/datei/.htpasswd Require valid-user
Hinweis Die .htpasswd Datei sollte aus Sicherheitsgründen üblicherweise in einem anderen Verzeichnis gespeichert sein als die jeweilige .htaccess Datei, die auf die .htpasswd verweist.
Der Passwortschutz ist nun aktiv
- Beim Aufrufen der Webseite bzw. des Verzeichnisses im Browser wird ein Benutzername und ein Passwort abgefragt.
- Um den Schutz wieder zu deaktivieren, löscht man einfach die .htpasswd Datei und die Codezeilen dafür aus der .htaccess Datei.
Anwendung
Der Webspace für die Webseite "meinetestwebseite.de" hat einen Ordner "ablage" der mit einem Passwortschutz versehen werden soll.
Die Ordnerstruktur auf dem Webspace ist wie folgt aufgebaut:
/web--- /ablage--- /css--- /img--- /js--- index.php
Um nun den Ordner "ablage" wie oben beschrieben zu schützen muss die Struktur so erweitert werden:
/web--- /ablage--- --- .htaccess--- /css--- /img--- /js--- index.php/zugaenge--- .htpasswd
Versucht man nun "www.webseite.de/ablage" aufzurufen erscheint eine Abfrage des Benutzernamen und eines Passworts.
Passwortschutz für bestimmten IP-Adressen deaktivieren
Order deny,allow Deny from all AuthName "Passwortgeschützter Bereich" AuthUserFile /pfad/zur/datei/.htpasswd AuthType Basic Require valid-user allow from 000.000.000.000 allow from 111.111.111.111 Satisfy Any
TMP
Authentifizierung
Wenn Sie direkt zu diesem Teil des Dokuments gesprungen sind, um herauszufinden, wie Sie die Authentifizierung durchführen, ist es wichtig, eine Sache zu beachten.
- Es ist ein weitverbreiteter Irrglaube, dass Sie
.htaccess-Dateien
verwenden müssen, um die Passwortauthentifizierung zu implementieren. - Dies ist jedoch nicht der Fall.
- Authentifizierungsrichtlinien in einem
<Directory>-Abschnitt
in Ihrer Hauptkonfigurationsdatei des Servers zu platzieren, ist der bevorzugte Weg, dies zu implementieren, und.htaccess-Dateien
sollten nur verwendet werden, wenn Sie keinen Zugriff auf die Hauptkonfigurationsdatei des Servers haben. - Siehe oben für eine Diskussion darüber, wann Sie
.htaccess-Dateien
verwenden sollten und wann nicht.
Wenn Sie dennoch der Meinung sind, dass Sie eine . htaccess-Datei
verwenden müssen, könnte eine Konfiguration wie die folgende für Sie geeignet sein.
Inhalt der .htaccess-Datei
:
AuthType Basic AuthName "Password Required" AuthUserFile "/www/passwords/password.file" AuthGroupFile "/www/passwords/group.file" Require group admins
Beachten Sie, dass AllowOverride AuthConfig
in Kraft sein muss, damit diese Direktiven eine Wirkung haben.
Eine ausführlichere Erläuterung der Authentifizierung und Autorisierung finden Sie im Tutorial zur Authentifizierung.