.
Title: Apache Modul mod_auth


  
  

  
        
[APACHE DOCUMENTATION]

Apache HTTP Server Version 1.3

Modul mod_auth

Dieses Modul bietet Authentifikation von Benutzern auf Basis von Textdateien.

Status: Basis
Quellcode: mod_auth.c
Modulname: auth_module

Zusammenfassung

Dieses Modul ermöglicht die Benutzung von HTTP Basic Authentication zur Zugriffsbeschränkung, wobei Benutzer in Passwortdateien und Gruppendateien in einfachem Text-Format eingetragen werden. Eine ähnliche Funktionalität, aber bessere Skalierbarkeit, wird von den Modulen mod_auth_dbm und mod_auth_db bereitgestellt. HTTP Digest Authentifikation wird vom Modul mod_auth_digest bereitgestellt.

Hinweis: Sicherungsverfahren mit Berechtigungsnachweis sind nur so sicher, wie die Sicherheit des Webservers. Als Grundregel sind sie weniger sicher, als das Sicherheitssystem des Betriebssystems.

Direktiven

Siehe auch: require, satisfy und mod_auth require Schlüsselwörter.


mod_auth Require Schlüsselwörter

Das Modul mod_auth bietet die folgenden Schlüsselwörter, die in einer Require Direktive angegeben werden können:

user Benutzername [...]
Übergebener Benutzername und übergebenes Passwort müssen in der Datenbankdatei AuthUserFile eingetragen sein und der Benutzername muß in der Require Direktive aufgeführt sein.
group Gruppenname [...]
Übergebener Benutzername und übergebenes Passwort müssen in der Datenbankdatei AuthUserFile eingetragen sein, Gruppenname muß in der Datenbankdatei AuthGroupFile eingetragen sein und der Benutzer muß Mitglied der Gruppe sein.
valid-user
Übergebener Benutzername und übergebenes Passwort müssen in der Datenbankdatei AuthUserFile eingetragen sein. Jeder gültige Benutzername aus dieser Datei erhält Zugriffsberechtigung.
file-owner
[Verfügbar ab Apache 1.3.20] Übergebener Benutzername und übergebenes Passwort müssen in der Datenbankdatei AuthUserFile eingetragen sein und der Benutzername muß mit dem Besitzer der Datei übereinstimmen, die gelesen wird. Das heißt, wenn im Dateisystem steht, dass die abgerufene Datei einem Benutzer maier gehört, dann muß der Benutzername für den Zugriff über den Server ebenfalls maier sein.
file-group
[Verfügbar ab Apache 1.3.20] Übergebener Benutzername und übergebenes Passwort müssen in der Datenbankdatei AuthUserFile eingetragen sein, der Name der Gruppe, der die Datei gehört, muß in der Datenbankdatei AuthGroupFile eingetragen sein und der Benutzer muß Mitglied der Gruppe sein. Wenn zum Beispiel im Dateisystem steht, dass die abgerufene Datei der Gruppe webkonten gehört, dann muß webkonten in AuthGroupFile eingetragen sein und der übergebene Benutzer muß Mitglied dieser Gruppe sein.

Beispiel Require file-owner

Betrachtet wird ein Mehrbenutzersystem mit Apache Webserver, wobei jeder Benutzer seine eigenen Dateien unter dem Dateisystem Pfad ~/public_html/private ablegt. Weiterhin wird nur eine einzige Datenbankdatei AuthUserFile verwendet, die alle Benutzernamen enthält und alle Benutzernamen im Web sind zu denen im Dateisystem identisch. Durch nachfolgenden Block würde dann nur dem Besitzer Zugriff auf seine eigenen Dateien gewährt. Benutzer maier würde also keinen Zugriff auf Dateien unter /home/schmidt/public_html/private erhalten, es sei denn diese Dateien gehörten maier anstatt schmidt.

    <Directory /home/*/public_html/private>
        AuthType Basic
        AuthName MeinePrivatenDateien
        AuthUserFile /usr/local/apache/etc/.htpasswd-alle-benutzer
        Satisfy All
        Require file-owner
    </Directory>

AuthGroupFile Direktive

Syntax: AuthGroupFile dateipfad
Kontext: Verzeichnis, .htaccess
AllowOverride: AuthConfig
Status: Basis
Modul: mod_auth

Die Direktive AuthGroupFile legt den Namen der Gruppendatei im Text-Format fest, die eine Liste von Benutzergruppen zur Authentifikation enthält. Dateipfad ist der Pfad zu dieser Datei. Wenn es kein absoluter Pfad ist (d.h. wenn er nicht mit einem Schrägstrich anfängt), gilt er als relativ in Bezug zu ServerRoot.

Jede Zeile der Gruppendatei enthält einen Gruppennamen gefolgt von einem Doppelpunkt gefolgt von einer durch Leerzeichen getrennten Liste von Mitglieds-Benutzernamen. Beispiel:

meinegruppe: anne paul karl
Achtung: Die Suche in großen Textdateien ist sehr ineffizient; AuthDBMGroupFile sollte statt dessen verwendet werden.

Sicherheitshinweis: AuthGroupFile sollte unbedingt außerhalb des Dokument-Verzeichnisbaums des Webservers gespeichert werden; keinesfalls in dem Verzeichnis, das dadurch geschützt werden soll, andernfalls wird es Clients möglich, AuthGroupFile auszulesen.

Siehe auch AuthName, AuthType und AuthUserFile.


AuthUserFile Direktive

Syntax: AuthUserFile dateipfad
Kontext: Verzeichnis, .htaccess
AllowOverride: AuthConfig
Status: Basis
Modul: mod_auth

Die Direktive AuthUserFile legt den Namen der Textdatei fest, die eine Liste von Benutzernamen und Passwörtern zur Authentifikation enthält. Dateipfad ist der Pfad zu dieser Datei. Wenn es kein absoluter Pfad ist (d.h. wenn er nicht mit einem Schrägstrich anfängt), gilt er als relativ in Bezug zu ServerRoot.

Jede Zeile der Datei enthält einen Benutzernamen gefolgt von einem Doppelpunkt gefolgt von einem durch crypt() verschlüsselten Passwort. Das Verhalten bei wiederholtem Aufführen desselben Benutzernamens ist undefiniert.

Mit dem Hilfsprogramm htpasswd, dass bei einer Binärdistribution mit installiert wird oder im Verzeichnis src/support gefunden werden kann, läßt sich die Passwortdatei pflegen. Für ausführlichere Angaben siehe man htpasswd. Kurzübersicht:

htpasswd -c dateiname benutzer
Erzeugt eine Passwortdatei 'dateiname' mit 'benutzer' als erstem Benutzernamen. Das Passwort ist nach Eingabeaufforderung einzugeben.
htpasswd dateiname benutzer2
Fügt in Passwortdatei 'dateiname' den Benutzernamen 'benutzer2' neu hinzu oder ändert den Eintrag, falls der Benutzer schon vorhanden war.

Achtung: Die Suche in großen Textdateien ist sehr ineffizient; AuthDBMUserFile sollte statt dessen verwendet werden.

Sicherheitshinweis:
AuthUserFile sollte unbedingt außerhalb des Dokument-Verzeichnisbaums des Webserver gespeichert werden; keinesfalls in dem Verzeichnis, das dadurch geschützt werden soll, andernfalls wird es Clients möglich, AuthGroupFile auszulesen.
Leere Benutzernamen und leere Passwörter werden nicht abgefangen (seit Apache 1.3.20). Wenn AuthUserFile eine Zeile mit nur einem Doppelpunkt (':') enthält, so führt ein 'Require valid-user' dazu, dass der Zugriff gewährt wird, wenn übergebener Benutzername und übergebenes Passwort fehlen.
Siehe auch AuthName, AuthType und AuthGroupFile.

AuthAuthoritative Direktive

Syntax: AuthAuthoritative on|off
Voreinstellung: AuthAuthoritative on
Kontext: Verzeichnis, .htaccess
AllowOverride: AuthConfig
Status: Basis
Modul: mod_auth

Durch das explizite Setzen der AuthAuthoritative Direktive auf 'off' wird die Verantwortlichkeit für beides, Authentifikation und Authorisation, an nachfolgende Module weitergereicht (wie definiert in den Dateien Configuration und modules.c), falls kein Benutzername und keine Regel zum übergebenen Benutzernamen passen. Wenn es aber einen passenden Benutzernamen oder eine passende Regel gibt, so werden die üblichen Zugriffsprüfungen angewendet und bei fehlender Berechtigung der Fehlercode Authorization Required zurückgeliefert.

Wenn also ein Benutzername in der Datenbank von mehr als einem Modul erscheint oder eine gültige Require Direktive von mehr als einem Modul angewendet werden kann, so wird das erste Modul den Berechtigungsnachweis prüfen und der Zugriff wird erlaubt oder verweigert unabhängig von der Einstellung AuthAuthoritative.

Ein typischer Anwendungsfall dafür ergibt sich in der gemeinsamen Benutzung mit einem der Datenbank Module, wie zum Beispiel mod_auth_db.c, mod_auth_dbm.c, mod_auth_msql.c und mod_auth_anon.c. Diese Module decken die Masse der Berechtigungsprüfungen ab, aber einige (administrative) Prüfungen werden durchgereicht an ein gut abgesichertes AuthUserFile.

Voreinstellung: Die Verantwortlichkeit zur Prüfung wird nicht weitergereicht. Ein unbekannter Benutzername führt zum Fehlercode Authorization Required. Bei fehlendem Setzen des Wertes bleibt das System also sicher und erzwingt ein Verhalten, das NCSA kompatibel ist.

Sicherheitshinweis: Es ist gut zu überlegen, ob einem Benutzer wirklich erlaubt werden sollte, ein Weiterreichen der Verantwortlichkeit in seiner .htaccess Datei zu konfigurieren. Im Allgemeinen ist es einfacher, eine einzelne .htpasswd Datei abzusichern, als eine Datenbank wie beispielsweise mSQL. AuthUserFile sollte unbedingt außerhalb des Dokument-Verzeichnisbaums des Webserver gespeichert werden; keinesfalls in dem Verzeichnis, das dadurch geschützt werden soll, andernfalls wird es Clients möglich, AuthGroupFile auszulesen.

Siehe auch AuthName, AuthType und AuthGroupFile.


Apache HTTP Server Version 1.3

Index Home

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to