Zugriffssteuerung in der Datei .htaccess
AllowOverride AuthConfig
Der Besitzer von WWW-Seiten hat die Möglichkeit, AuthorisierungsDirektiven so zu setzen, dass der Zugriff auf eigene Dokumente nur authorisierten Web-Benutzern erlaubt wird. Welche Direktiven wie genutzt werden können ist abhängig davon, welche Module im Webserver installiert sind. Mögliche Module sind:
In allen vom Rechenzentrum betriebenen TUHH-Webserver ist das Modul mod_auth eingebunden. Darüberhinaus stehen die Module
zur Verfügung. Auf diese Module soll in diesem Tutorial nicht weiter eingegangen werden.
Zugriffsschutz mittels TUHH-Benutzeraccount und Kerberos-Passwort
Die Direktiven AuthName, AuthTyp, AuthUserFile, AuthGroupFile und require werden in diesem Skript anhand zweier Beispiele erläutert.
Beispiel 1
In einem Verzeichnis des CGI-Server-Benutzers test_user werde in der .htaccess-Datei vereinbart:
AuthName " 'Kursunterlagen' " AuthType Basic AuthUserFile /cgi/htdocs/users/test_user/access/.htpasswd require valid-user |
Die Datei /cgi/htdocs/users/test_user/access/.htpasswd ist eine Textdatei, die Benutzernamen und verschlüsselte Passworte enthält. Fehlt das Passwort, so ist der entsprechende Benutzername nicht passwortgeschützt.
Der Pfadname der Passwortdatei muss absolut angegeben werden. Dieser Pfadname ist abhängig von der Serverkonfiguration. Die Benutzerverzeichnisse der Web-Server des RZ sind:
Server | Pfadname | ||||||
---|---|---|---|---|---|---|---|
WWW-Server (Institutsseiten) |
Basisverzeichnis: /htdocs/tuhh/
Beispiel:
|
||||||
WWW-Server (Homepages) |
Basisverzeichnis: /homepages/htdocs/users/
Beispiel:
|
||||||
TYPO3-Webserver | Basisverzeichnis: /typo3/htdocs/tuhh/t3resources/
Beispiel:
|
||||||
CGI-Server | Basisverzeichnis: /cgi/htdocs/users/
Beispiel:
|
||||||
Media-Server | Basisverzeichnis: /webserver/www/htdocs/
Beispiel:
|
Ein Programm zum Generieren des Passwortes steht auf dem ssh-Server ssh.rz.tuhh.de zur Verfügung.
Aufruf: /usr/local/bin/htpasswd name password
Die von diesem Kommando generierte Zeile müssen Sie in die mit AuthUserFile vereinbarte Passwortdatei einfügen.
Wählen Sie für das AuthUserFile einen Namen, der mit .ht beginnt (z.B. .htpasswd), da die TUHH-WebServer so konfiguriert ist, dass Dateien, die mit .ht beginnen, vom Webserver nicht ausgeliefert werden.
Inhalt von /cgi/htdocs/users/test_user/access/.htpasswd könnte sein:
anton:{SHA}aVl8rAWaCx3Kcf4wKIjQ55PqYFg= emil:{SHA}YI9aphtvaZugmIH4TI3bM7fFEDs= berta:{SHA}LRXnNhB/e/82jtV3b6BdJSQvKYs= clara:{SHA}3GHJorXi6QHP4oyJW9FwlEkzzfU= |
Die require-Direktive legt fest, welche Benutzer Zugriff auf das Verzeichnis bekommen. Möglich sind:
- require user userid userid ...
Nur namentlich genannte Benutzer erhalten Zugriff.
- require group group-name group-name ...
Nur Benutzer einer namentlich genannten Gruppe erhalten Zugriff.
- require valid-user
Alle Benutzer, "die sich ausweisen können", erhalten Zugriff.
Wird ein Dokument aus einem Verzeichnis mit obiger .htaccess-Datei angefordert, öffnet der Browser ein Fenster, in dem Benutzername und Passwort angegeben werden müssen. Die unter AuthName angegebene Zeichenkette wird in den Text der Überschriftszeile eingefügt.
Zugriff auf Dokumente eines durch die obige .htaccess-Datei geschützte Verzeichnis hat demnach, wer Benutzername und unverschlüsseltes Passwort richtig eingibt. Dies gilt auch für alle Dokumente der Unterverzeichnisse.
In diesem Beispiel haben somit anton, emil, berta und clara eine Chance, wenn sie das jeweils richtige Passwort eingeben.
Beispiel 2
In der .htaccess-Datei wird vereinbart:
AuthName " 'Kursunterlagen' " AuthType Basic AuthUserFile /cgi/htdocs/users/test_user/access/.htpasswd AuthGroupFile /cgi/htdocs/users/test_user/access/.htgroup require group group_2 |
Inhalt von /cgi/htdocs/users/test_user/access/.htpasswd: wie oben
Inhalt von /cgi/htdocs/users/test_user/access/.htgroup könnte sein:
group_1: anton emil group_2: berta clara |
Wählen Sie für AuthGroupFile einen Namen, der mit .ht beginnt (z.B. .htgroup), da die TUHH-WebServer so konfiguriert ist, dass Dateien, die mit .ht beginnen, vom Webserver nicht ausgeliefert werden.
In diesem Beispiel muss ein authorisierter Benutzer neben der richtigen Angabe von Benutzername und Passwort noch zusätzlich zur Gruppe group_2 gehören; d.h. nur berta und clara haben eine Chance.