Die Benutzerauthentifizierung erfolgt im allgemeinen über Benutzername und Passwort.
Alternativen sind z.B. der Einsatz von X509-Zertifikaten u.ä.. Im folgenden Beispiel wird auf das
für kleine Benutzerzahlen ausreichende Modul mod_auth zurück gegriffen. Zur individuellen
Zugriffssteuerung müssen zwei Dateien gepflegt werden:
Diese beiden Dateien sollten außerhalb des über den Server sichtbaren Verzeichnisasts
liegen.
Für kleinere Anwendungen reichen Textdateien, bei größeren sollten DBM-Dateien oder LDAP-
Verzeichnisse eingesetzt werden. Zur Pflege der Dateien stehen die Programme htpasswd (für
Text) oder dbmmanage (für dbm) zur Verfügung.
Eine Zugriffsbegrenzung erfolgt wie bei der hostbasierten Beschränkung über die <File>,
<Directory> und <Location> - Anweisungen. Hierin können u.a. die folgenden Anweisungen
eingebettet werden:
Anweisung
|
Beschreibung
|
Beispiel
|
AuthType TYP
|
Typ des Schutzes (basic, digest)
|
AuthType basic
|
AuthName NAME
|
Name der „Schutzzone“
|
AuthName "Webserver Info"
|
AuthUserFile FILE
|
benutzte Passwortdatei
|
AuthUserFile etc/http.passwd
|
AuthGroupFile FILE
|
benutzte Gruppendatei
|
AutGroupFile etc/http.group
|
require user uid ...
|
Beschränkung auf diese Nutzer
|
require user alex brutus caesar
|
require group gid ...
|
Beschränkung auf diese Gruppe
|
require group roemer griechen
|
require valid-user
|
Jeder authentifizierte Nutzer
|
require valid-user
|
Sicherheitsanmerkung: Beim "AuthType Basic" werden Benutzername und Passwort
im
Klartext an den Server übermittelt. Daher sollte dieser Mechanismus nur im Zusammenhang
mit verschlüsselten oder absolut vertrauenswürdigen Datenwegen eingesetzt werden. Neuere
Browser unterstützen auch die MD5-Digest-Authentifizierung. In diesem Fall werden die Daten
vom Browser verschlüsselt und übertragen.
Soll sowohl ein hostbasierter als auch ein benutzerbasierter Zugriffsschutz erfolgen,
muss die
Direktive
Satisfy Any | All
eingerichtet werden.
Sollen nur bestimmte HTTP-Methoden (GET, HEAD, POST, ...) beschränkt werden, kann
das
mit Hilfe der
<Limit METHOD...>
...
</Limit>
Umgebung gesteuert werden. Dies ist beispielsweise sinnvoll, wenn eine Abfrage von
überall
möglich sein soll, ein Upload von Daten aber nur begrenzt.