Um den Zugriff über das WWW auf einen bestimmten (möglicherweise auch sehr großen) Personenkreis einzuschränken, können Sie vom Leser die Angabe von Kennung und Passwort verlangen.
(CGI-Programme in den so geschützten Bereichen können über die Umgebungsvariable REMOTE_USER auf die eingetippte Kennung zugreifen, PHP-Skripte benutzen die Variable $_SERVER['REDIRECT_REMOTE_USER']. Achtung: Diese Variablen können zusätzlich auch eine Domainangabe enthalten: „username“ und „username@domain“ bezeichnen verschiedene Nutzer.)
In die Datei .htaccess oder .htsslaccess (es ist egal, welche dieser beiden Dateinamen Sie verwenden) für den Nicht-Single-Sign-On-Zugang und in die Datei .htssoaccess für den Single-Sign-On-Zugang schreiben Sie die genauen Zulassungsregeln. Im umfassendsten Fall sehen diese Regeln so aus:
AuthType Basic
AuthName "Restricted Area"
AuthDBMUserFile /www/data/users
AuthUserFile /www/data/NNN/EigenePasswortdatei
AuthDBMGroupFile /www/data/groups
AuthGroupFile /www/data/NNN/EigeneGruppendatei
AuthBasicProvider file dbm
Require group eigengruppe1 eigengruppe2 eigennutzer1 eigennutzer2
Require dbm-group zivgruppe1 zivgruppe2 zivnutzer1 zivnutzer2
Normalerweise werden nur einige dieser Zeilen benötigt. Der Rest dieses Abschnitts beschreibt die Bedeutung der Zeilen, welche der Zeilen Sie angeben müssen und welche Angaben in den Zeilen Sie einfügen müssen.
Zum Verständnis ist wichtig, dass die Zugangskontrolle aus zwei Teilen besteht:
- Authentifizierung / Identitätskontrolle: Es wird kontrolliert, ob der Nutzer sein Passwort korrekt eingegeben hat und damit seine Identität nachgewiesen hat.
- Autorisierung: Es wird kontrolliert, ob der Nutzer Mitglied einer berechtigten Nutzergruppe ist und damit zum berechtigten Personenkreis gehört.
AuthType Basic
Diese Zeile muss immer genau so angegeben werden und aktiviert überhaupt erst die Zugangskontrolle. (Hier muss immer Basic stehen, selbst wenn die tatsächliche Authentifizierung per Digest, Formular, Shibboleth oder Zertifikat erfolgt.)
AuthName "Restricted Area"
Diese Zeile muss immer angegeben werden und gibt den Text an, der dem Nutzer angezeigt wird, wenn er von seinem WWW-Programm nach Kennung und Passwort gefragt wird. Statt Restricted Area sollten Sie einen sinnvollen Text wählen, der den zugelassenen Nutzerkreis beschreibt, dabei aber Umlaute als ae oe ue ss schreiben, damit alle WWW-Programme den Text lesbar anzeigen.
AuthDBMUserFile /www/data/users
Diese Zeile muss genau so angegeben werden, falls Sie bei der Zugangskontrolle mit den WWU-Kennungen und den WWU-Passwörtern arbeiten möchten. Falls Sie ausschließlich eigene Kennungen und Passwörter verwenden möchten, lassen Sie diese Zeile bitte weg.
AuthUserFile /www/data/NNN/EigenePasswortdatei
Diese Zeile muss angegeben werden, falls Sie bei der Zugangskontrolle mit eigenen Kennungen und Passwörtern arbeiten möchten. Falls Sie ausschließlich mit den WWU-Kennungen und den WWU-Passwörtern arbeiten möchten, lassen Sie diese Zeile bitte weg.
Die eigenen Kennungen und Passwörter müssen Sie in der Datei /www/data/NNN/EigenePasswortdatei ablegen, einen geeigneten Namen suchen Sie sich bitte selbst aus. Dazu benutzen Sie bitte in einer SSH-Dialogsitzung für die erste Kennung das Kommando:
/www/bin/htpasswd -s -c /www/data/NNN/EigenePasswortdatei thomas-mueller
und für jede weitere Kennung (oder später zum Ändern eines Passworts) das Kommando:
/www/bin/htpasswd -s /www/data/NNN/EigenePasswortdatei lars-meier
Für thomas-mueller und lars-meier setzen Sie jeweils eine Kennung Ihrer Wahl ein; anschließend werden Sie nach einem Passwort Ihrer Wahl gefragt. Diese Kennungen und Passwörter geben Sie dann bitte an die jeweiligen Personen weiter.
Um Namensgleichheiten mit WWU-Kennungen zu vermeiden, sollten Ihre eigenen Kennungen einen Bindestrich, aber keinen Punkt und kein @-Zeichen enthalten.
AuthDBMGroupFile /www/data/groups
Diese Zeile muss genau so angegeben werden, falls Sie bei der Zugangskontrolle mit den zentralen Nutzergruppen der Universität arbeiten möchten. Falls Sie ausschließlich eigene oder gar keine Nutzergruppen verwenden möchten, lassen Sie diese Zeile bitte weg.
Es stehen nicht nur die normalen Nutzergruppen zur Verfügung, sondern auch etliche Pseudogruppen, siehe unten unter Pseudogruppen bei Verwendung von AuthDBMGroupFile /www/data/groups.
AuthGroupFile /www/data/NNN/EigeneGruppendatei
Diese Zeile muss angegeben werden, falls Sie bei der Zugangskontrolle mit eigenen Nutzergruppen arbeiten möchten. Falls Sie ausschließlich zentralen Nutzergruppen der Universität oder gar keine Nutzergruppen verwenden möchten, lassen Sie diese Zeile bitte weg.
Die eigenen Nutzergruppen müssen Sie in der Datei /www/data/NNN/EigeneGruppendatei ablegen, einen geeigneten Namen suchen Sie sich bitte selbst aus. Schreiben Sie dazu in die Datei in jede Zeile einen Gruppennamen, dahinter einen Doppelpunkt und dahinter, durch Leerzeichen voneinander getrennt, die Kennungen, die Mitglied der Gruppe sein sollen. Dazu können Sie folgendes Kommando verwenden (als eine einzige Zeile eintippen):
echo >>/www/data/NNN/EigeneGruppendatei meine-gruppe: thomas-mueller lars-meier a_bcde01 fghij_02
Sie können sowohl WWU-Kennungen als auch eigene Kennungen in Ihre eigenen Nutzergruppen aufnehmen.
Um Namensgleichheiten mit zentralen Nutzergruppen zu vermeiden, sollten Ihre eigenen Nutzergruppen einen Bindestrich, aber keinen Punkt und kein @-Zeichen enthalten.
AuthBasicProvider file dbm
Diese Zeile muss immer angegeben werden. Mindestens eines der Wörter file und dbm muss angegeben werden.
Das Wort file muss genau dann angegeben werden, wenn Sie oben die Zeile AuthUserFile angegeben haben. Das Wort dbm muss genau dann angegeben werden, wenn Sie oben die Zeile AuthDBMUserFile angegeben haben. Wenn Sie beide Wörter angeben, sollten Sie sie in der Reihenfolge file dbm angeben.
...
Wenn mehrere Require-Zeilen innerhalb eines solchen RequireAny-Blocks angegeben werden, reicht es aus, wenn eine der Require-Bedingungen erfüllt ist, um Zugang zu gewähren. Das Gegenteil wäre ... . Die Blöcke können verschachtelt werden.
Require user nutzer1 nutzer2 nutzer3
Wenn Sie Require user verwenden, müssen Sie oben AuthDBMUserFile und/oder AuthUserFile angegeben haben, brauchen Sie aber weder AuthDBMGroupFile noch AuthGroupFile anzugeben.
Nur die hier angegebenen Kennungen erhalten Zugang. Falls Sie mehr Kennungen angeben möchten, als in eine Zeile passen, können Sie auch mehrere Require-user-Zeilen hintereinander schreiben.
Require group filegruppe1 filegruppe2
Wenn Sie Require group verwenden, müssen Sie oben AuthGroupFile angegeben haben. Nur die Mitglieder der hier angegebenen Gruppen erhalten Zugang.
Require dbm-group dbmgruppe1 dbmgruppe2
Wenn Sie Require dbm-group verwenden, müssen Sie oben AuthDBMGroupFile angegeben haben. Nur die Mitglieder der hier angegebenen Gruppen erhalten Zugang.
Verwendung mehrerer Require-Angaben
Wenn Sie mehrere Require-Angaben verwenden, sollten Sie diese in RequireAny- oder RequireAll-Blöcke einschließen, die auch verschachtelt werden dürfen, um zu verdeutlichen, wie diese Angaben kombiniert werden sollen.
Beispiele:
Nur Mitarbeiter der WWU IT (*):
AuthType Basic
AuthName "Nur fuer WWU-IT-Mitarbeiter"
AuthDBMUserFile /www/data/users
AuthDBMGroupFile /www/data/groups
AuthBasicProvider dbm
Require dbm-group u0rz
Alle (vermutlich) Universitätsangehörigen (*):
AuthType Basic
AuthName "Nur fuer WWU-Angehoerige"
AuthDBMUserFile /www/data/users
AuthDBMGroupFile /www/data/groups
AuthBasicProvider dbm
Require dbm-group an=uni=unsicher
Nur die WWU-Kennungen bucher, perske und schild aus der zentralen Nutzerverwaltung (*):
AuthType Basic
AuthName "Nur fuer die Gruppe Dienste und Projekte"
AuthDBMUserFile /www/data/users
AuthBasicProvider dbm
Require user bucher perske schild
Nur die Nutzer rvogl, afleu_01, drudo_01 aus der zentralen Nutzerverwaltung und dazu die Nutzer thomas-mueller und lars-meier aus einer eigenen Passwortdatei /www/data/ZIV/htusers:
AuthType Basic
AuthName "Nur fuer bestimmte Personen"
AuthDBMUserFile /www/data/users
AuthUserFile /www/data/ZIV/htusers
AuthBasicProvider dbm file
Require user rvogl afleu_01 drudo_01 thomas-mueller lars-meier
Alle Studierenden und Mitarbeiter der Universitäten Mainz und Köln und außerdem der Nutzer mueller der Fachhochschule Münster (*):
AuthType Basic
AuthName "Nur fuer Angehoerige Uni Mainz und Uni Koeln"
AuthDBMUserFile /www/data/users
AuthDBMGroupFile /www/data/groups
AuthBasicProvider dbm
Require dbm-group @member@uni-mainz.de @member@uni-koeln.de mueller@fh-muenster.de
In den mit (*) markierten Beispielen wäre es aber besser, wie unten beschrieben eine Anmeldung nur über das Single Sign-On anzubieten.