4.11.2. Benutzerauthentifizierung
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:

  • eine Passwortdatei (Nutzername und verschlüsseltes Passwort)
  • eine Gruppendatei (Gruppenname und dazugehörige Nutzer)

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.