Extended directory protection (in German)

Diese Anleitung hilft Ihnen, Verzeichnisse und Dateien Ihrer persönlichen Webseite bzw. Webseite für Organisationseinheiten mit erweiterten Methoden vor unerwünschtem Zugriff zu schützen.

Um Verzeichnisse vor unbefugten Zugriffen zu schützen, steht Ihnen die Datei .htaccess zur Verfügung. Ein Modul namens AuthGeneric erlaubt den Zugriff auf ein Verzeichnis über die zentrale NutzerInnendatenbank.

Folgende Beispiele illustrieren, welche Einträge dazu in der Datei .htaccess erforderlich sind. Diese Methoden ein Verzeichnis zu schützen, stehen Ihnen auf all unseren Webservern zur Verfügung.

 Hinweis

Wenn Sie nur einen einfachen Passwortschutz für einen Ordner einrichten möchten, lesen Sie in der Anleitung Verzeichnisschutz nach.

Zugriff für u:account-UserIDs erlauben

AuthName "Zugriff nur mit u:account" 
AuthType Basic 
PerlAuthenHandler AuthGeneric 
PerlSetVar PermitUnet yes 
PerlSetVar PermitMailbox yes 
PerlSetVar Services INFO 
require valid-user

Mindestens eines von PermitUnet (Zugriff für Studierende) oder PermitMailbox (Zugriff für MitarbeiterInnen) muss vorhanden sein, sonst wird niemandem der Zugriff erlaubt.


Erklärung

  • AuthName "Universitätsintern - Zutritt nur für berechtigte u:account-UserIDs" - Frei wählbarer Text, der über der Passwortabfrage erscheint
  • AuthType Basic – zwingende Angabe
  • PerlAuthenHandler AuthGeneric – zwingende Angabe
  • PerlSetVar PermitUnet yes – allen u:accounts für Studierende Zugriff erlauben
  • PerlSetVar PermitMailbox yes – allen u:ccounts für MitarbeiterInnen Zugriff erlauben
  • PerlSetVar Services INFO – allen u:accounts für Externe Zugriff erlauben (nur in Verbindung mit PermitMailbox yes)
  • require valid-user – zwingende Angabe

Zugriff für u:account-UserIDs einer Liste erlauben

AuthName "Nur Berechtigte"
AuthType Basic
PerlAuthenHandler AuthGeneric
PerlSetVar PermitMailbox yes
PerlSetVar Userlist /u/www/pugilist/.htuser
PerlSetVar Services INFO
require valid-user

Die Datei /u/www/Name/.htuser muss unbedingt innerhalb des html-Verzeichnisses liegen und enthält eine Liste von u:account-UserIDs (eine UserID pro Zeile, aber ohne Passwort!). Beispiel:

hohhoh8
pugilis5
srbm5
horvatk2

Dann können nur diese u:account-UserIDs mit ihren u:account-Passwörtern auf das Verzeichnis zugreifen.

Methoden kombinieren

Manchmal ist es notwendig, dass verschiedene NutzerInnengruppen auf eine passwortgeschützte Seite zugreifen können – beispielsweise Studierende mit ihrer u:account-UserID, aber auch externe Vortragende, die über keinen u:account verfügen.

Das folgende Beispiel einer .htaccess-Datei zeigt die die notwendigen Eintragungen:

AuthName "Nur ich und sonst niemand"
AuthType Basic require valid-user

# Zugriff für Studierende
PerlAuthenHandler AuthGeneric
PerlSetVar PermitUnet Yes
PerlSetVar TryAuthUserFile Yes

# Zugriff für Externe
AuthUserFile /u/home/<Name>/.htpasswd

Durch die Zeile PerlSetVar TryAuthUserFile Yes wird bewirkt, dass das Modul AuthGeneric bei unbekannten UserIDs keine Fehlermeldung erzeugt, sondern die Authentifizierung an den Mechanismus für das AuthUserFile weitergibt.

Daraus ergibt sich, dass die UserIDs im AuthUserFile nicht mit einer gültigen u:account-UserID übereinstimmen dürfen.

URLs via mod_rewrite umschreiben

Wenn in einer .htaccess-Datei  mod_rewrite  oder ein Redirect verwendet wird, so ist der Localpart der URL anzugeben, das heißt der Teil hinter https://www.univie.ac.at. Weiters muss bei Verwendung von  mod_rewrite  immer die RewriteBase in der Form RewriteBase /URL-Teil/ angegeben werden.


Beispiel 1

Das Institut für Pugilistik hat einen Account pugi und eine Webseite, die unter https://www.univie.ac.at/pugilistik/ erreichbar ist. Dort hat sich die HTML -Datei alteseite.html geändert in neueseite.html.

RewriteEngine On
RewriteBase /pugilistik/
# Für Studierende: /u:account-UserID/
# Für MitarbeiterInnen: /vorname.nachname/
RewriteRule ^alteseite\.html$ neueseite.html [R=301,L]

Obiges Skript bewirkt eine Umschreibung des URL-Teils alteseite.html in neueseite.html.


Beispiel 2

Der ursprüngliche HTML -Dateiname soll in der URL als Parameter mitgegeben werden. Dies kann dann beispielsweise von einem Skript ausgewertet werden.

RewriteEngine On
RewriteBase /zufallr0/
RewriteRule ^(.*)\.html$ ?q=$1 [R=301,L]

Dadurch wird irgendwas.html zu ?q=irgendwas.

URLs mittels Redirect weiterleiten

Wenn in einer .htaccess-Datei Anfragen mittels Redirect weitergeleitet werden, muss der URL-Teil (hier im Beispiel pugilistik) angegeben werden.

RedirectPermanent /pugilistik/alteseite.html https://pugi.univie.ac.at