DEPRECATION WARNING

This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.

Rich Text Editor (RTE)

Created:2007-01-04T20:38:06
Changed by:Sven Tasler
Changed:2007-01-04T20:41:40
Email:
Info 2:
Info 3:
Info 4:

LDAP-AUTHENTICATION

Extension Key: LDAP_AUTH

Copyright 2006

Universität Rostock

Lehrstuhl Wirtschaftsinformatik

Bastian Meier,

Sven Tasler,

Steffen Torbahn,

Stefan Koch

Betreuer: Birger Lantow

The content of this document is related to TYPO3

Inhaltsverzeichnis

Einführung................................2

Installation................................2

Backend-Modul.........................3

Frontend-Plugin........................4

Frontend-Formular....................5

Die Authentifizierung.................5

Sonstiges..................................6

(English version is located in the middle of the document)

Einführung

Die Extension LDAP_AUTH ermöglicht das Einloggen eines Benutzers durch Authentifizierung gegen einen LDAP-Server. Wenn der Benutzer mit dem eingegebenen Benutzernamen und Passwort auf dem LDAP-Server eingetragen ist, wird ihm der Zugang gewährt. Aus Sicherheitsgründen werden keine wichtigen Nutzerdaten (z.B. Passwort) in der Typo3-Datenbank gespeichert. Die LDAP_AUTH-Extension stellt also eine Erweiterung der LOGIN-Extension dar.

Funktionalitäten des Backend-Moduls:

Verwalten (Anlegen, Löschen, Bearbeiten und Testen) der LDAP-Server

Funktionalitäten des Frontend-Plugins:

  • Auswahl von LDAP-Servern aus der Menge der im Backend-Modul angegebener LDAP-Server
  • Angabe der Seite, wo Benutzer gespeichert werden
  • Angabe einer Zielseite, zu der nach erfolgreichem Einloggen gesprungen werden soll

Funktionalitäten des Frontend-Formulars:

  • Eingabe von Benutzername und Passwort
  • Auswahl eines LDAP-Servers gegen den authentifiziert werden soll

Installation

Die Extension LDAP_AUTH wird wie jede andere Extension installiert:

Klicken auf “Ext Manager” im Menüpunkt “Tools”

Klicken auf “Connect to online repository” unter der Überschrift “Extensions in TYPO3 Extension Repository” (siehe Abbildung 1)

Auswahl der Extension “LDAP_AUTH” und Herunterladen der Extension

Installieren der Extension

img-1 Abbildung 1

Nach der Installation steht unter dem Menüpunkt “Tools” die Funktionalität “LDAP_Conf” (im Bild bereits installiert) zur Verfügung. Eventuell muss der Backend Cache gelöscht werden, damit die Änderung wirksam wird. Mehr Informationen zu dieser Funktionalität finden sie unter dem Punkt: “Das Backend-Modul”.

Jetzt muss nur noch das Plugin an der gewünschten Stelle der Seite eingefügt werden. Mehr dazu im Punkt: “Das Frontend-Plugin”.

Das Backend-Modul

Nach dem Klicken auf “LDAP_Conf” im Menuepunkt “Tools” erscheint eine Auflistung der bisher eingetragenen LDAP- Server.

Unter dem Punkt “Neu” können weitere LDAP-Server hinzugefügt werden (siehe Abbildung 2).

Folgende Parameter müssen angegeben werden:

  • LDAP-Server: Selbstgewählter Name des LDAP-Servers

  • Adresse: URL des LDAP-Servers

  • DN: Distinguished Name vom LDAP-Server

  • Gruppen-ID: Gruppennummer der zu authentifizierenden Benutzer (mehrere Gruppen werden durch Kommas getrennt)

    *Es ist zu beachten, dass aus Typo3 gelöschte Gruppen hier nicht automatisch mitgelöscht werden, deshalb müssen diese manuell herausgenommen werden)

img-2 Abbildung 2

Mit Drücken auf “Senden” wird der Eintrag in der Tabelle “tx_ldapauth_server“ gespeichert.

Desweiteren sind das “Löschen” und “Bearbeiten” von LDAP-Servern, sowie ein Verbindungstest zum LDAP-Server (“Testen”) möglich.

Das Frontend-Plugin

Das Plugin kann ganz einfach, wie jedes andere Plugin, an der gewünschten Stelle der Seite eingefügt werden (siehe Abbildung 3).

img-3 Abbildung 3

Nachdem das Plugin in den Content eingefügt worden ist, müssen noch spezielle Daten eingetragen werden (siehe Abbildung 3).

  • Überschrift des Login-Formulars (z.b.: LDAP-Login)
  • Auswahl einiger LDAP-Server (nur die, die im Backend-Modul eingetragen wurden) gegen die sich der Benutzer später authentifizieren lassen kann
  • Die Seite in der die Benutzer gespeichert werden
  • Eine Zielseite zu der nach erfolgreichem Login gesprungen werden soll

img-4 Abbildung 4

Das Frontend-Formular

Im Frontend hat der Benutzer die Möglichkeit seinen Benutzernamen und sein Passwort anzugeben. Zudem kann er sich einen LDAP-Server auswählen, auf denen diese Login-Daten verwaltet werden (siehe Abbildung 5). Die angezeigten LDAP-Server sind auf die im Frontend- Plugin angegeben LDAP-Server beschränkt.

img-5 Abbildung 5

Die Authentifizierung

Gibt ein Nutzer seine Daten ein werden diese als POST-Daten übergeben. Die Bezeichnung der Attribute ist die Gleiche wie beim eigentlichen Typo3-Anmeldeformular.

Existiert der eingegebene Benutzer bereits in der im Plugin angegebenen Seite (siehe Abbildung 4), so wird er von Typo3 akzeptiert und eine Anmeldung über LDAP findet nicht statt.

Soll ein solcher Effekt vermieden werden, so muss ein anderer LDAP- Ordner für den regulären Typo3 Benutzer gewählt werden.

Ist der Nutzer nicht angemeldet wird eine Verbindung zum LDAP-Server hergestellt, der vom Benutzer gewählt wurde. Mit der PHP-Funktion „ldap_search“ wird der Benutzer auf dem Server gesucht.

Wird dieser Nutzer gefunden, werden folgende Schritte ausgeführt:

Der Benutzer wird in der im Plugin angegebenen Seite angelegt (siehe Abbildung 4, Umrandung 1). Sollte ein Benutzername schon vergeben sein, wird ein neuer inkrementierter Benutzername hinzugefügt (so wird z.B. Aus Peter -> Peter_01). Ein neues Passwort wird mittels eines Zufallsgenerator erstellt (das eigentliche Passwort wird aus Sicherheitsgründen nicht gespeichert). Der Benutzer wird den entsprechenden Benutzer-Gruppen zugeordnet und erhält eine Gültigkeit von zwölf Stunden.

Da die Typo3-Anmeldung nur mit dem Neuladen der Seite möglich ist, wird ein HTML-Formular mit dem neu eingetragenem Account erzeugt und mittels JavaScript aufgerufen. Falls JavaScript nicht aktiviert ist, muss der Benutzer durch Klicken auf den Submit-Button, die Seite manuell neu laden.

Die Session eines Benutzers läuft ab, wenn er länger als zwölf Stunden aktiv bzw. länger als dreißig Minuten inaktiv ist.

Um die Datenmenge der Typo3-Datenbank einzugrenzen, wird bei jedem Aufruf des Plugins die Typo3-Datenbank auf abgelaufene Sessions überprüft, die zu LDAP-Benutzern gehören. Die zu den abgelaufenen Sessions gehörenden Benutzer werden schließlich gelöschen. Um ein Löschen von Typo3-Accounts zu vermeiden, wird eine Hilfstabelle “tx_ldapauth_userid” genutzt, die die eingetragenen Benutzer verwaltet.

img-6 Abbildung 6:

Sonstiges

Es werden folgende Tabellen in der Datenbank verwendet (siehe Abbildung 6):

  • tx_ldapauth_server -> Speicherung der LDAP-Server
  • tx_ldapauth_userid -> Speicherung der Benutzer-ID's, die durch diese Extension angelegt werden

Wichtige Hinweise:

  • Im Gegensatz zum normalen Typo3 Vorgehen werden die Benutzer nur temporär in der Datenbank gespeichert, d.h. nach Beendigung der Sitzung wird der Benutzer gelöscht
  • Die Gruppen-ID's die bei den LDAP-Servern angegeben werden, müssen manuell wieder gelöscht werden, falls die Benutzergruppe gelöscht wird

Diese Extension wurde getestet für:

  • PHP 4.3.10
  • MySQL 4.1.10a
  • Typo3 3.8.0
  • Apache 2.0.53
  • Windows XP/Unix

Noch zu erledigen:

Siehe Forums-Eintrag unter der angegebenen URL:

http://www.typo3forum.net/forum/extension-modifizieren-oder-neu- erstellen/18606-links-zu-geschuetzten-seiten-generieren.html

LDAP-AUTHENTICATION

Extension Key: LDAP_AUTH

Copyright 2006

University Rostock

Chair of Business Informatics

Bastian Meier,

Sven Tasler,

Steffen Torbahn,

Stefan Koch

Tutor: Birger Lantow

The content of this document is related to TYPO3

Table of contents

Introduction..............................2

Installation................................2

Backend-Module.......................3

Frontend-Plugin........................4

Frontend-Formular....................5

Authentication...........................5

Further Informations.................6

Introduction

The Typo3 extension LDAP-AUTH allows to log on a user with the help of LDAP. If a user is registered on a specified LDAP-Server, his access will be granted. Because of security reasons, important user information (password) are not saved in the Typo3 database. The LDAP- AUTH extension is based on the Typo3 internal LOGIN-Form.

Functionality of the Backend module:

Administration (“Create”, “Delete”, “Edit” and “Test”) of LDAP-Server

Functionalities of the Frontend plugin:

  • Choose LDAP-Server out of the server pool, which are administrated in the Backend module.

  • Specification of the page/folder where new user are saved

  • Specification of the page/folder to load after login

    Functionalities of the Frontend form:

  • Input of username and password

  • Choice of a LDAP-Server you want to authenticate on

Installation

Extension LDAP-AUTH is installed like any other one:

Click on “Ext Manager” in menu “Tools”

Click “Connect to online repository” (picture 1)

Choose Extension LDAP-AUTH and download it

Install the extension

img-1 Picture 1

Hint:

After installation there is a new functionality “LDAP_CONF” in your menu (Picture 1). Maybe you have to delete the Backend cache before you can see it. For further information please read “The Backend module”.

Finally you have to insert the plugin on the desired place of your page. For more information please read “The Frontend plugin”.

The Backend module

In the submenu “LDAP-CONF” of the menu “Tools” you can find a list of all LDAP-Servers, if you already have inserted ones.

You can add a new one by pressing “new” .

These parameters are required (picture 2):

  • LDAP-Server: Name of the server
  • address: URL of the LDAP-server
  • DN: Distinguished Name
  • Group-ID: Identifier of the group, this user belongs to, after login by this server (groups are separated by comma)
  • Please note: If you delete a user group in Typo3-groups it will not be deleted here. You have to delete it here manually.

img-2 Picture 2

By pressing “Submit” the new entry is saved in the table “tx_ldapauth_server”.

By the way you are able to “Edit” and “Delete” server in this list. You also may “Test” a Server.

Das Frontend-Plugin

You can insert this plugin like any other one (picture 3).

img-3 Picture 3

After the plugin is inserted to the content of a page/folder, you have to specify some information, to make the plugin working properly (picture 4).

  • Headline of the form (e.g.: LDAP-Login)
  • Selection of some LDAP-Server (only those from the Backend module, which are available) the user will authenticate with.
  • Selection of the page/folder, where the new user will be saved
  • The page, you want to load after login

img-4 Picture4

The Frontend-Form

In the frontend the user has to insert his name and password. He also has to choose the servers, the user account is saved (picture 5). The servers, which are chosen in the Frontend-Plugin are shown in the dropdown field (picture 5) .

img-5 Picture 5

Authentication

The information, given by the user, are sent as POST-Data. The name of these attributes are the same as in the Typo3 Login form.

If a user already exists in the Typo3-database, typo3 will accept him. In this case the authentication will be ignored by LDAP.

If the extension is using the same page/folder (picture 4) as defined for regular Typo3-users, the user will be also authenticated against the regular typo3-user data.

If no user is logged in yet, the extension will connect to the selected LDAP-Server. The PHP function “ldap_search” will search for this user and his password.

If the user is found, the extension will continue with the following steps:

The user is saved into the specified page/folder (as specified in picture 4, red 1). If the username already exists, a new username will be created (e.g.: Peter -> Peter_01). Because of security reasons a new random based password will be generated. The user will be assigned to the groups (specified in the Backend form) with a lifetime of twelve hours.

Because of reloading the page to finish the login process, a new form for this user is created (with the new password of course). This form is activated by JavaScript. If JavaScript is deactivated by the client, the user has to press a button to finish Login.

The session of a user will expire, if he works more than 12 hours with this account or he is more than 30 minutes inactive.

To prevent a full database the plugin checks for expired session of LDAP-users. LDAP-user according to expired sessions are deleted. To check whether a user is from LDAP or not, all LDAP-user are saved in a special table (tx_ldapauth_userid).

img-6 Picture 6

Further Informations

This extension needs these database tables (picture 6):

  • tx_ldapauth_server -> contains the LDAP-Server
  • tx_ldapauth_userid -> contains the user, created by the plugin/extension

Important notes:

  • Instead of “normal” Typo3 behavior, users are saved in the database only temporary. After session they are deleted.
  • If you delete a user group, be sure there is no Server linked to that. There may be troubles.

This extension was tested for:

  • PHP 4.3.10
  • MySQL 4.1.10a
  • Typo3 3.8.0
  • Apache 2.0.53
  • Windows XP/Unix

To do list:

See the comment in this forum:

http://www.typo3forum.net/forum/extension-modifizieren-oder-neu- erstellen/18606-links-zu-geschuetzten-seiten-generieren.html

img-7 LDAP-AUTH - 6