30 Benutzer authentifizieren und Zugriffsrechte festlegen
Zugriffsrechte auf bestimmte Bereiche einer Website zu verwalten und festzulegen spielt beim Aufbau dynamischer Websites eine große Rolle. Mit Dreamweaver 8 können Sie Benutzer und Zugriffsrechte problemlos erstellen.
Sie können die Benutzerverwaltung benutzen, um Zugriffsrechte auf Ihre Administrationsseiten zu verwalten oder Bereiche der Website für Besucher ohne Login-Daten zu sperren.
30.1 Benutzer verwalten
30.1.1 Schema einer Benutzerauthentifizierung
Zunächst das grundsätzliche Schema einer Authentifizierung. Wir haben Ihnen den Ablauf in Abbildung 30.1 grafisch dargestellt. Mit Hilfe eines Login-Dokumentes werden die von einem User eingegebenen Daten mit der Tabelle in der Datenbank verglichen. Stimmen diese überein, wird der User zur Website weitergeleitet. Für den Fall des Misserfolges wie z. B. bei nicht vollständigen oder unkorrekten Daten, gelangt der User zurück zur Login-Seite.
Auf allen einzelnen Dokumenten der Site werden die Zugriffsrechte über in der Tabelle vorgegebene Begriffe gesteuert. Letzteres erklärt sich an einem Beispiel besser.
Abbildung 30.1 Schema einer Benutzerauthentifizierung
30.1.2 Tabelle für die Benutzerverwaltung
Um Benutzer zu verwalten, benötigen Sie zunächst eine Tabelle in der Datenbank mit den Benutzerdaten.
Wir haben die Tabelle für die Benutzer wie in Abbildung 30.2 sichtbar aufgebaut. Neben dem Primärschlüssel (user_ID) werden der Benutzername (user_name), das Passwort (user_pass), ein Zeitstempel (user_time) und ein Feld zur Definition der Zugriffsrechte (user_perm) angelegt.
Abbildung 30.2 Tabelle für Benutzerverwaltung
Zeitstempel in der Benutzerverwaltung | Der Zeitstempel dient in unserem Fall dazu, nachträglich festzustellen, wann der User angelegt wurde. Wenn Sie über einen Zeitstempel die Zugehörigkeitsdauer eines Benutzers zu einer Community kennen, könnten darüber beispielsweise verschiedene Mailing-Aktionen gesteuert werden. Neue Mitglieder könnten andere Artikel angeboten bekommen als Dauergäste usw.
Passwörter verschlüsseln |
In unserem Beispiel stehen die Passwörter im Klartext in der Datenbank. In der Regel sollten Sie diese Praxis eher vermeiden. PHP bietet verschiedene Verschlüsselungsmethoden an. Dazu werden die Daten nach der Eingabe in ein Formular verschlüsselt und in der Datenbank hinterlegt. Bei einem Login werden die Passwörter ebenfalls verschlüsselt und die beiden verschlüsselten Zeichenketten miteinander verglichen. Lesen Sie dazu in der PHP-Dokumentation über den Befehl md5() nach. |
Zugriffsrechtesteuerung | Für die Zugriffsrechtesteuerung mit Dreamweaver 8 benötigen Sie in der Datenbank ein weiteres Feld. In diesem Feld werden Benennungen für die Zugriffsrechte hinterlegt.
Die Bezeichnungen dafür können Sie frei wählen. In unserem Beispiel benennen wir diese Rechte in user_perm mit:
- level_1: Darf neue Datensätze einfügen.
- level_ 3: Darf Datensätze ändern, neue einfügen und löschen.
30.1.3 Benutzer anmelden
Um eine Login-Seite zu erstellen, müssen Sie zunächst ein Formular anlegen mit den beiden Feldern für den Benutzernamen und das Passwort. In unserem Beispiel haben wir die Felder mit »user« und »pass« bezeichnet. Achten Sie bei diesen Dokumenten darauf, die Passwortfelder auch als Passwort zu definieren, damit die Eingaben nicht im Klartext, sondern durch Sternchen verschlüsselt angezeigt werden.
Klicken Sie, nachdem Ihr Formular fertig ist, in der Einfügeleiste unter Anwendung auf Benutzer anmelden.
Abbildung 30.3 Formular erstellen
Sämtliche Parameter können in der nun folgenden Dialogbox eingestellt werden. Weisen Sie zunächst das soeben erstelle Formular zu. Wir haben dem Formular keinen bestimmten Namen vergeben, sodass die Vorgabe von Dreamweaver 8 »form1« eingetragen wird. Legen Sie die Felder für den Benutzernamen und das Passwort fest. Nach der Auswahl der korrekten Datenbank und Tabelle erfolgt die Zuordnung dieser Felder zu den passenden Tabellenspalten und .
Abbildung 30.4 Dialogbox Benutzer anmelden
Weiterleitung nach dem Login | Nun sollten Sie das Dokument bestimmen, an das der User nach erfolgreicher Anmeldung weitergeleitet wird . Im Falle einer fehlerhaften Anmeldung wird in unserem Beispiel der Benutzer wieder an das Login-Dokument geführt . Somit ist ein erneuter Login-Versuch möglich, ohne zusätzlich durch die Website zu navigieren.
Um weitere Zugriffsrechte für die Website festzulegen, müssen Sie angeben, auf welcher Basis die Rechte vergeben werden. Im einfachsten Fall sind das Benutzername und Passwort. Bei dieser Option steht Ihnen keine weiter differenzierte Rechtevergabe zur Verfügung.
Zugriffsebene festlegen | Da wir in den folgenden Dokumenten nach Usern unterscheiden und unterschiedliche Möglichkeiten anbieten, haben wir zusätzlich eine Zugriffsebene ausgewählt. Deshalb müssen wir die Tabellenspalte angeben, in der die Ebene vermerkt ist . Diese Bezeichnungen bei Dreamweaver 8 sind etwas verwirrend. Ganz platt ausgedrückt ist »die Ebene« nichts anderes als ein beliebig wählbarer Begriff, der bei den Zugriffsrechten abgefragt und überprüft wird.
Im einfachen Fall – nämlich ohne weitere Rechteverwaltung – ist Ihre Zugriffsverwaltung nun auch schon fast fertig. Benutzer können nur bei erfolgreicher Authentifizierung auf die Folgeseiten zugreifen. Wenn allerdings ein User die Unterseiten direkt aufruft, hat er ungehinderten Zugriff. Damit dies verhindert wird, müssen für jede zu schützende Unterseite noch die Zugriffsrechte festgelegt werden.