Title: Authentifizierung, Autorisierung und Zugriffskontrolle
Bei der Authentifizierung wird überprüft, ob jemand derjenige ist, als der er sich ausgibt. Die Autorisierung ist ein Vorgang, bei dem jemand das Recht erhält, sich durch Daten zu bewegen und/oder darauf zuzugreifen.
Enthält eine Website schützenswerte Informationen oder ist sie nur für einen kleinen Personenkreis vorgesehen, dann können Sie mit den hier vorgestellten Techniken sicherstellen, dass nur diejenigen diese Seiten sehen können, für die sie vorgesehen sind.
Es werden die "Standardmöglichkeiten" zum Schutz von Teilen der Website beschrieben, die in den meisten Fällen eingesetzt werden.
Die erörterten Direktiven müssen entweder in der Konfigurationsdatei des
Hauptservers (normalerweise in einem
.htaccess-Dateien) stehen.
Sollen .htaccess-Dateien verwendet werden, muss die
Serverkonfiguration das Einbinden von Authentifizierungsdirektiven in diese
Dateien zulassen. Dafür wird mit der
Da es hier um die Authentifizierung geht, wird eine
Sollen die Direktiven direkt in die eigentliche Serverkonfigurationsdatei gesetzt werden, werden selbstverständlich Schreibrechte für diese Datei benötigt.
Darüber hinaus müssen Informationen über die Verzeichnisstruktur des Servers vorliegen und bekannt sein, wo sich bestimmte Dateien befinden. Das ist nicht weiter schwierig und wird später noch erläutert.
In den folgenden Abschnitten wird die Einrichtung eines Passwortschutzes für ein Verzeichnis auf dem Server beschrieben.
Zuerst muss eine Passwortdatei angelegt werden. Diese Datei sollte
an einer Stelle gespeichert werden, die vom Web aus nicht zugänglich ist, damit
niemand sie herunterladen kann. Befinden sich beispielsweise die Dokumente für das Web im
Verzeichnis /usr/local/apache/htdocs, sollte(n) sich die
Passwortdatei(n) im Verzeichnis /usr/local/apache/passwd
befinden.
Die Datei wird mit dem Programm htpasswd erstellt, das Bestandteil der
Apache-Distribution ist. Sie befindet sich im Verzeichnis bin
der Apache-Installation. Mit der folgenden Befehlszeile wird die Datei erstellt:
Das Programm htpasswd fragt nach dem Passwort und
bittet zwecks Bestätigung um eine zweite Eingabe des Passworts:
New password: mypassword
Re-type new password: mypassword
Adding password for user rbowen
Befindet sich das Programm nicht im angegebenen Suchpfad, muss
selbstverständlich der vollständige Pfad angegeben werden. Zum Beispiel:
/usr/local/apache/bin/htpasswd
Anschließend muss der Server so eingerichtet werden, dass er ein
Passwort anfordert und weiß, welche Benutzer Zugriff haben. Dies kann
entweder in der Datei httpd.conf oder in einer
.htaccess-Datei geschehen. Soll zum Beispiel das Verzeichnis
/usr/local/apache/htdocs/secret geschützt werden,
können die folgenden Direktiven in der Datei
/usr/local/apache/htdocs/secret/.htaccess oder in der
Datei httpd.conf in einem <Directory
/usr/local/apache/apache/htdocs/secret>-Abschnitt platziert werden:
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen
Die einzelnen Direktiven werden der Reihe nach erläutert. Die
Basic-Authentifizierung, die mit dem Modul
AuthType Digest-Authentifizierung. Sie wird vom Modul
Die
Hat sich der Client beispielsweise einmal für den Bereich
"Restricted Files" authentisiert, versucht er es
bei anderen Bereichen des gleichen Servers, die als Bereich
"Restricted Files" gekennzeichnet sind, automatisch wieder
mit diesem Passwort.
Tragen mehrere geschützte Bereiche die gleiche Bezeichnung, dann bleibt es
dem Benutzer erspart, das Passwort mehrfach eingeben zu müssen. Aus
Sicherheitsgründen wird der Client aber beim Wechsel des Hostnamens des
Servers immer aufgefordert, das Passwort einzugeben.
Die
htpasswd
erzeugten Passwortdatei an. Bei einer großen Anzahl von Benutzern kann die
Suche in einer einfachen Textdatei für die Authentifizierung der Benutzer bei
jeder Anfrage sehr viel Zeit beanspruchen. Der Apache kann
Benutzerinformationen aber auch in einer schneller zu durchsuchenden
Datenbank speichern. Das
Mit der
Die oben vorgestellten Direktiven gewähren nur einer Person (in diesem
Beispiel der Person mit dem Benutzernamen rbowen) Zugriff auf
das Verzeichnis. In der Praxis sollen aber in der Regel mehrere Personen Zugriff
erhalten. Dies geschieht mit der
Sollen mehrere Benutzer Zugriff erhalten, muss eine Gruppendatei angelegt werden, die eine Liste von Benutzernamen unter einem Gruppennamen zusammenfasst. Das Format dieser Datei ist relativ einfach und sie kann daher mit einem normalen Editor erstellt werden. Ihr Inhalt sieht wie folgt aus:
Auf den Gruppennamen folgen in einer langen Zeile durch Leerzeichen getrennt die Namen der Gruppenmitglieder.
Mit der folgenden Befehlszeile wird der vorhandenen Passwortdatei ein Benutzer hinzugefügt:
Sie erhalten die gleichen Reaktionen wie zuvor, allerdings wird jetzt keine
neue Datei erzeugt, sondern die vorhandene Datei wird ergänzt.
(Eine neue Passwortdatei kann mit der Option -c erzeugt
werden).
Jetzt muss die .htaccess-Datei wie folgt geändert
werden:
AuthName "By Invitation Only"
AuthUserFile /usr/local/apache/passwd/password
AuthGroupFile /usr/local/apache/passwd/groups
Require group Gruppenname
Jetzt hat jeder Benutzer der Gruppe Gruppenname Zugriff,
der einen Eintrag in der password-Datei hat und das korrekte
Passwort eingibt.
Es gibt noch eine allgemeinere Möglichkeit, mehreren Benutzern Zugriff zu gewähren. In diesem Fall wird keine Gruppendatei angelegt, sondern folgende Direktive benutzt:
Wird diese an Stelle der Formulierung Require user rbowen
benutzt, hat jeder Zugriff, der in der Passwortdatei aufgeführt wird und sein
Passwort korrekt eingibt,. Es kann sogar das Gruppenverhalten simuliert
werden, indem für jede Gruppe eine eigene Passwortdatei unterhalten wird.
Der Vorteil dieser Vorgehensweise liegt darin, dass der Apache nur eine und
nicht zwei Dateien überprüfen muss. Der Nachteil ist, dass eine Vielzahl von
Passwortdateien unterhalten werden muss und mit der
Bedingt durch den Ablauf der Basic-Authentifizierung müssen der Benutzername und das Passwort jedes Mal überprüft werden, wenn ein Dokument vom Server angefordert wird. Das gilt auch, wenn die gleiche Seite noch einmal geladen wird sowie für jedes Bild auf der Seite (wenn es aus einem geschützten Verzeichnis kommt). Dadurch wird die Geschwindigkeit selbstverständlich herabgesetzt. Diese Verlangsamung steht in einem proportionalen Verhältnis zur Größe der Passwortdatei, weil diese Datei geöffnet und die Benutzerliste durchsucht werden muss, was sich beim Laden jeder Seite wiederholt.
Für die Praxis folgt daraus, dass eine Passwortdatei nur eine begrenzte Anzahl von Benutzern enthalten darf. Wo diese Grenze liegt, hängt von der Leistungsfähigkeit des Rechners ab, es ist aber damit zu rechnen, dass der Leistungsabfall ab einigen Hundert Einträgen spürbar wird und eine andere Authentifizierungsmethode in Erwägung gezogen werden sollte.
Die Authentifizierung über Benutzername und Passwort ist nur eine von mehreren möglichen Varianten. Häufig wird der Zugriff nach anderen Kriterien als der Identität gewährt, beispielsweise danach, woher die Benutzer kommen.
Mit den Direktiven
Sie werden wie folgt benutzt:
wobei die Adresse eine IP-Adresse (oder eine partielle IP-Adresse) oder ein vollständig qualifizierter Domänenname (oder ein partieller Domänenname) ist. Es können mehrere Adressen oder Domänennamen angegeben werden.
Werden Sie beispielsweise von einer bestimmten Adresse mit einer Flut unerwünschter Nachrichten überhäuft, dann können Sie das wie folgt unterbinden:
Besucher, die von dieser Adresse kommen, können den Inhalt, auf den sich diese Direktive bezieht, nicht sehen. Ist Sie der Rechnername bekannt, kann auch dieser angegeben werden.
Soll der Zugriff aus einer ganzen Domäne heraus blockiert werden, können Sie einen Teil der Adresse oder des Domänennamens angegeben:
Deny from cyberthugs.com moreidiots.com
Deny from ke
Mit der
Deny from all
Allow from dev.example.com
Würde lediglich die
Weitere Hinweisen finden Sie in den Beschreibungen von
- Authentifizierung
-
Bei der Authentifizierung wird überprüft, ob jemand derjenige ist, als der er sich ausgibt. Die Autorisierung ist ein Vorgang, bei dem jemand das Recht erhält, sich durch Daten zu bewegen und/oder darauf zuzugreifen.
Siehe: Authentifizierung, Autorisierung und Zugriffskontrolle
- Dynamische Inhalte mit CGI
-
Das Common Gateway Interface (CGI) bietet die Möglichkeit zur Interaktion eines Webservers mit externen Programmen, die Inhalte erzeugen. Sie werden als CGI-Programme oder CGI-Skripte bezeichnet. Dies ist der einfachste und gängiste Weg, um dynamische Inhalte in eine Website einzubinden. Dieses Kapitel beschreibt das Einrichten von CGI für einen Apache-Webserver und führt in die CGI-Programmierung ein.
Siehe: CGI: Dynamische Inhalte
.htaccess-Dateien-
Mit
.htaccess-Dateien können Konfigurationsänderungen auf der Ebene des Verzeichniskontextes vorgenommen werden. Eine Datei mit einer oder mehreren Konfigurationsdirektiven wird in einem bestimmten Dokumentverzeichnis platziert und die Direktiven für dieses Verzeichnis und alle Unterverzeichnisse angewendet.Siehe:
.htaccess-Dateien
- Server Side Includes - Eine Einführung
-
SSIs (Server Side Includes) sind Direktiven, die in HTML-Seiten platziert und vom Server ausgewertet werden, wenn die Seiten an Clients geliefert werden. Mit ihnen kann vorhandenen HTML-Seiten dynamisch Inhalt hinzugefügt werden, ohne dass die gesamte Seite über ein CGI-Programm oder ein anderes dynamisches Verfahren bereitgestellt werden muss.
Siehe: Server Side Includes (SSI)
- Verzeichnisrechte für Benutzer
-
Bei Systemen mit mehreren Benutzern kann jedem Benutzer erlaubt werden, ein Website im eigenen Stammverzeichnis zu unterhalten. Dies geschieht mit der
UserDir -Direktive. Benutzer der URLhttp://example.com/~username/erhalten den Inhalt aus dem Stammverzeichnis des mit derUserDir -Direktive angegebenen Benutzers und Unterverzeichnisses.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
