Tutorials

31.01.2008 13:42 Alter: 4 yrs

Dokumentation für SSI-Authentifikation und Redirect

Rubrik: Tutorials
Von: Thomas Schlüter

Ausgangssituation

Um Dateien für Benutzer möglichst schnell und leicht zu verteilen, ohne ein Dokument-Management-System zu installieren und die Benutzer hierin Schulen zu müssen, sollen Dateien für den Zugriff über das Internet bereitgestellt werden. Damit die Benutzer keine zusätzliche Software (z.B. FTP-Clients) verwenden müssen, wird auf automatisch generierte Verzeichnis-Listings durch den Apache-Webserver zurückgegriffen. Außerdem sollen die Benutzer nach der Anmeldung in den entsprechenden geschützten und individuell für sie vorbereiteten Bereich umgeleitet werden. Dies verhindert, dass die Benutzer von sich gegenseitig Kenntnis erhalten und eventuell durch die zusätzlichen Verzeichnisse verwirrt werden. Durch dieses Verzeichnis-Listing können den Benutzer in geordneter Form, interessante Dateien zur Verfügung gestellt werden. Durch die Server Side Includes können gleichzeitig die Inhalte mit dynamischen Elementen gestaltet werden und durch CSS das Design der Directory Listings angepasst werden, somit ist es möglich das Aussehen und die Benutzerführung der Hauptseite in diese Bereiche zu übertragen.

Planung

Template für die Website

Damit die Wartung des Systems möglichst einfach gehalten werden kann, werden die dynamischen Elemente der Unterseiten in eigene Dateien ausgelagert und bei Bedarf in das Template nachgeladen. Allgemeine Teile werden in einem öffentlichen Ordner ohne Zugriffsschutz gespeichert, damit keine Passwort abfragen kommen, wenn allgemeine Teile (z.B. das Stylesheet) geladen werden.

Benutzer

Die Benutzer werden in einer .htaccess Datei gespeichert. Damit kann die eigentliche Seite losgelöst von den Nutzer angelegt werden und diese Liste im Nachhinein ergänzt oder gekürzt werden, ohne an der eigentlichen Web-Site Änderungen vornehmen zu müssen. Für die jeweiligen Unterverzeichnisse der Benutzer werden die .htaccess Dateien angepasst, damit der Zugriff individuell bestimmt werden kann. Zu beachten ist, dass insbesondere bei einer sehr großen Anzahl von in der password

Verzeichnisse bestimmen

Damit die Directory Listings später sinnvoll nutzbar sind, sollte eine brauchbare Verzeichnisstruktur erstellt werden. Zusätzlich muss für die Redirects ein eindeutiger Name pro Kunde für dessen Home-Verzeichnis definiert werden.

Umsetzung der Website mit SSI

htaccess-Datei

Die .htaccess-Datei für dieses Projekt sollte wie folgt aussehen:

Options Indexes Includes
IndexOptions FancyIndexing SuppressDescription
SuppressHTMLPreamble XHTML SuppressColumnSorting
IconsAreLinks HTMLTable NameWidth=50 IconHeight=25
AddType text/html .shtml
AddHandler server-parsed .shtml
HeaderName secure_header.shtml
ReadmeName secure_footer.shtml
IndexIgnore Diese_Verzeichnisse_nicht_anzeigen* *.shtml

Erläuterungen: Options legt fest, dass das Verzeichnis als Index dargestellt werden soll. (Das Apache Modul mod_index muss aktiviert sein.)

Includes legt fest, dass Server Side Includes verwendet werden. (Das Apache-Module mod_include muss aktiviert sein.)

IndexOptions hiermit wird die Darstellung des Verzeichnis Listings angepasst. Mehr unter http://httpd.apache.org/docs/2.0/mod/mod_autoindex.html

AddType legt fest, dass .shtml Dateien zusätzlich vom Apache Webserver ausgeliefert werden.

AddHandler legt fest, dass diese Dateien durch den Server verarbeitet werden.

HeaderName legt die Datei fest, die vor dem Directory-Listing als Kopf der Website ausgeliefert wird.

ReadmeName legt die Datei fest, die nach dem Directory-Listing als Ende der Website ausgeliefert wird.

IndexIgnore bestimmt die Dateien, die nicht im Directory-Listing des Apache-Webservers erscheinen.

weitere htaccess-Dateien

Zusätzlich zu der allgemeinen htaccess Datei, die keinen Verzeichnisschutz beinhaltet, müssen die einzelnen Verzeichnisse mit entsprechenden Dateien geschützt werden, damit die Nutzer nur auf Ihr jeweiliges Verzeichnis Zugriff haben.

Template

Das Template setzt sich aus drei Teilen zusammen dem Kopfbereich, dem Directory-Listing (Mittelteil) und dem Fußbereich. Direkt per (X)HTML werden nur der Kopf- und Fußbereich beeinflusst. Diese werden unter dem HeaderName und dem ReadmeName in der .htaccess-Datei benannt.

Das Gestalten der Website-Elemente wird per externer CSS-Datei erledigt.

Kopfbereich

Der Kopfbereich sieht für ein XHTML-DOCTYPE wie folgt aus:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//DE"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="<link http://www.w3.org/1999/xhtml>www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=ISO-8859-1" <br />http-equiv="content-type" />
<title>DER WEBSITE TITEL</title>

</head>
<body>
<! -- HIER STEHT DER XHTML-CODE FÜR DIE SEITE -->

Im Body-Bereich kann wie gewohnt HTML-Code entsprechend des DOCTYPEs verwendet werden, um die Seite zu gestalten.

Fußbereich

Der Fußbereich ist wenig spektakulär (wie auch der Kopf der Seite) und enthält folgende Elemente:

<! -- HIER STEHT WEITERER CODE FÜR DIE WEBSITE -->
</body>
</html>

Wichtig ist, dass man die schließenden Tags für im oberen Teil des Templates geöffnete Elemente hier nicht vergisst.

Weiterleitung

Die Weiterleitung kann je nach Bedarf aktiviert werden, in dem folgender Code

<META HTTP-EQUIV="Refresh" CONTENT="1; <br />URL=">

in einer eigenen Datei (hier: check_user.html) inkludiert wird. Überprüft wird jetzt per SSI, ob der eingeloggte Benutzer ("REMOTE_USER") gesetzt ist und anschließend wird der Benutzer in das Verzeichnis weitergeleitet, dass seinem Benutzernamen entspricht. Dazu wird die oben erstellte Datei dynamisch in die Website eingebunden. Hierzu genügt es per SSI-Befehl folgende Überprüfung durchzuführen:



Achtung: Der Remote User wird nur in Verzeichnisse mitgenommen, die auch per htaccess-Datei geschützt sind. Falls ein Verzeichnis nicht mit htaccess geschützt ist, ist die Variable Remote User leer. Daher müssen die Unterverzeichnisse der Benutzer per htaccess geschützt sein.

Schlussbemerkung

Mit der beschriebenen Vorgehensweise ist es in kurzer Zeit möglich, eine an das Design der Website angepasste Download-Seite zu gestalten, die die folgenden Anforderungen erfüllt:

  • Eine einfache Benutzerverwaltung für eine kleine Anzahl von unterschiedlichen Nutzer soll möglich sein,

  • das Look&Feel der Hauptseite soll erhalten bleiben,

  • die Seite soll einfach zu bedienen sein und ohne zusätzliche Software oder Schulungen für die Nutzer auskommen,

  • die Seite ist flexibel im Design und kann flexibel eingesetzt werden,

  • die Seite ist schnell und kostengünstig zu erstellen,

  • Zugriffschutz auf vertrauliche Daten muss unbedingt gewährleistet sein.

Web-Ressourcen

SSI Tutorials

Die folgenden Links beschäftigen sich mit Server Side Includes in verschiedenen Apache-Versionen.

Informationen zu htaccess-Datei

Die folgenden Links beschäftigen sich mit der htaccess-Datei in verschiedenen Apache-Versionen.

SSI Redirect

Ansprechpartner

ilexius GmbH
Herr Sebastian Koch
Herr Thomas Schlüter
E-Mail schicken

Weitere Anleitungen zu verschiedenen Themen finden sich unter:

www.ilexius.de

Rechtliches

Jegliche Haftung der ilexius GmbH bei Verwendung der dargestellten Software oder Vorgehensweisen ist ausgeschlossen. Die ilexius GmbH haftet nicht für mögliche Schäden die durch die Verwendung dieses Dokuments entstehen.

Das Dokument unterliegt dem Copyright der ilexius GmbH. Sollten Sie unsicher sein bzgl. der Nutzung dieses Dokuments wenden Sie sich an die Ansprechpartner des Dokuments.