Vorlage:Zum Übersetzen Diese Authentifizierungsmethode verwendet einen LDAP-Server, um zu prüfen, ob die Anmeldedaten eines Nutzers (Anmeldename / Kennwort) gültig sind.

Dieser Artikel beschreibt, wie die Authentifizierung über LDAP konfiguriert wird. Wir gehen zunächst von einem Basisszenario aus, betrachten dann ein erweitertes Szenario und zeigen abschließend, wie man mit möglichen Fehlerfällen umgehen kann.

Aktivierung

Die Aktivierung der Authentifizierung über einen LDAP-Server erfolgt auf der Seite Einstellungen > Website-Administration > Plugins > Authentifizierung > Übersicht.

Klicken Sie in der Liste auf das geschlossene Auge-Symbol Datei:show.gif in der Zeile LDAP-Server.

Spezifische Einstellungen

Spezifische Einstellungen für die Authentifizierung über LDAP nehmen Sie auf der Seite Einstellungen > Website-Administration > Plugins > Authentifizierung > LDAP-Server vor.

Das folgende Basisszenario entspricht einer einfachen Grundkonfiguration, die für die meisten Installation geeignet ist. Nehmen wir beispielhaft folgende Voraussetzungen an: Ihre Moodle-Installation ist über http://your.moodle.site/ erreichbar.

  1. Sie haben auf dem Moodle-Server PHP inklusive der LDAP-Erweiterung installiert und aktiviert, und dies wird unter http://your.moodle.site/admin/phpinfo.php angezeigt, wenn Sie sich als Administrator in Moodle anmelden.
  2. Ihr LDAP-Server hat die IP-Adresse 192.168.1.100.
  3. Sie verwenden kein LDAP mit SSL (auch bekannt als ldaps).
  4. Sie möchten nicht, dass Nutzer beim ersten Login in Moodle ihr Kennwort ändern.
  5. Sie verwenden eine einzige Domain als Quelle für ihre Authentifizierungsdaten im Fall, dass Sie das MS Active Directory verwenden.
  6. Sie verwenden den DN-Namen dc=my,dc=organization,dc=domain als Wurzel Ihres LDAP-Baums.
  7. Sie haben einen Bind-Nutzer, der die Verbindung zum LDAP-Server aufnimmt. Stellen Sie sicher, das Nutzername und Kennwort dieses Bind-Nutzers dauerhaft gültig sind, und verwendet Sie ein möglichst starkes Kennwort. Sie müssen dieses Kennwort nur einmal bei der Konfiguration der LDAP-Authentifizierung angeben. Der Anmeldename dieses Bind-Nutzers sei in unserem Basisszenario cn=ldap-user,dc=my,dc=organization,dc=domain, und das Kennwort sei ein_ganz_starkes_Kennwort.
  8. Alle Moodle-Nutzer gehören zu einer Organisationseinheit (OU), die moodleusers heißt und direkt unterhalb der Wurzel des LDAP-Baums liegt. Diese Organsiationseinheit hat den DN-Namen ou=moodleusers,dc=my,dc=organization,dc=domain.
  9. Sie möchten nicht, dass die LDAP-Kennwörter Ihrer Nutzer in der Moodle-Datenbank gespeichert werden.

Im folgenden beschreiben wir, welche spezifischen Einstellungen Sie für dieses Basisszenario vornehmen müssen.

LDAP Server-Einstellungen

Host URL

Wenn die IP-Adresse Ihres LDAP-Servers 192.168.1.100 ist, geben Sie folgendes ein: ldap://192.168.1.100 oder einfach 192.168.1.100 (manche Nutzer haben Probleme mit der ersten Variante, insbesondere bei MS Windows Servern).

Version

Normalerweise ist die Version 3 die richtige, es sei denn, Sie verwenden einen uralten LDAP-Server.

Codierung

Geben Sie die Kodierung des LDAP-Servers an. Meistens ist das utf-8.

Bind-Einstellungen

Kennworte verbergen

Wenn keine Nutzerkennwörter in der Moodle-Datenbank gespeichert werden sollen, dann wählen Sie hier Ja.

Anmeldename

Geben Sie hier den Namen des oben definierten Bind-Nutzers ein, z.B. cn=ldap-user,dc=my,dc=organization,dc=domain (ohne Anführungszeichen).

Kennwort

Geben Sie hier das Passwort des Bind-Nutzers ein. Verwenden Sie ein starkes Passwort (mindestens 8 Zeichen, 1 Ziffer, 1 Großbuchstabe, 1 Kleinbuchstabe, 1 Sonderzeichen)!

Nutzersuche (user lookup)

Nutzertyp

  • Novell Edirectory - wenn Ihr LDAP-Server Novell's eDirectory verwendet
  • posixAccount (rfc2307) - wenn Ihr LDAP-Server einen RFC-2307-kompatiblen LDAP-Server verwendet (wählen Sie diese Einstellung, wenn Ihr Server OpenLDAP verwendet)
  • posixAccount (rfc2307bis) - wenn Ihr LDAP-Server einen RFC-2307bis-kompatiblen LDAP-Server verwendet
  • sambaSamAccount (v.3.0.7) - wenn Ihr LDAP-Server mit der SAMBA 3.x LDAP Schema Erweiterung läuft und Sie diese verwenden wollen
  • MS ActiveDirectory wenn Ihr LDAP-Server das Microsoft Active Directory (MS-AD) verwendet

Kontexte

DN-Angabe des Kontexts (der Umgebung, des Containers), wo Ihre Moodle-Nutzer abgelegt sind. Geben Sie etwa folgendes ein: ou=moodleusers,dc=my,dc=organization,dc=domain.

Subkontexte

Wenn Sie Unterorganisationseinheiten (Subkontexte) unterhalb von ou=moodleusers,dc=my,dc=organization,dc=domain haben und Moodle diese durchsuchen soll, dann wählen Sie hier Ja. Andernfalls wählen Sie Nein.

Alias berücksichtigen

Manchmal teilt Ihnen Ihr LDAP-Server mit, das der tatsächliche Wert, nach dem Sie suchen, in einem anderen Zweig des LDAP-Baumes liegt (das nennt man Alias). Wenn Sie möchten, dass Moodle diesen Alias auflöst und den Wert aus dem tatsächlichen Ort innerhalb des LDAP-Baumes abruft, dann wählen Sie Ja. Andernfalls wählen Sie Nein. Wenn Sie das Microsoft Active Directory (MS-AD) verwenden, wählen Sie ebenfalls Nein.

Nutzermerkmal

Optional: Geben Sie hier das Attribut an, das Ihr LDAP-Baum verwendet, um Nutzer zu benennen oder zu suchen. Moodle verwendet einen Standardwert, basierend auf dem Nutzertyp, den Sie weiter oben angegeben haben. Normalerweise ist der Wert cn (Novell eDirectory und MS-AD) oder uid (RFC-2037, RFC-2037bis und SAMBA 3.x LDAP Erweiterung). Wenn Sie MS-AD verwenden, können Sie auch sAMAccountName (der Vor-Windows_2000-Loginname) eintragen.

Mitgliedsmerkmal

Optional: Das ist das Attribut, um Nutzer einer gegebenen Gruppe zu kennzeichnen. Moodle verwendet einen Standardwert, basierend auf dem Nutzertyp, den Sie weiter oben angegeben haben. Normalerweise ist der Wert member oder memberUid.

Mitgliedsmerkmal nutzt dn

Optional: Geben Sie eine 1 ein, falls Ihr Mitgliedsattribut ausgezeichnete Namen enthält. Andernfalls geben Sie 0 ein oder lassen das Feld leer.

ObjectClass

Optional: Hier geben Sie den LDAP-Objekttyp an, der für die Suche nach Nutzern verwendet wird. Moodle verwendet einen Standardwert, basierend auf dem Nutzertyp, den Sie weiter oben angegeben haben. Die Standardwerte für ldap_user_type sind:

  • User für Novell eDirectory
  • posixAccount für RFC-2037 und RFC-2037bis
  • sambaSamAccount für SAMBA 3.0.x LDAP Erweiterung
  • user für Microsoft Active Directory (MS-AD)

Siehe auch Diskussionsbeitrag auf moodle.org

Kennwortänderung verlangen

Kennwortänderung verlangen

Wählen Sie hier Ja, dann werden Nutzer beim erstmaligen Anmelden in Moodle aufgefordert, ihr Kennwort zu ändern. Denken Sie daran, das dann das Kennwort geändert wird, das im LDAP-Server hinterlegt ist.

Standardseite zur Kennwortänderung nutzen

Wenn Sie diese Einstellung auf Ja setzen, dann verwendet Moodle seine interne Kennwortänderungsseite, und zwar jedes Mal, wenn ein Nutzer sein Kennwort ändern möchte.

Wenn Sie die Einstellung auf Nein setzen, dann verwendet Moodle eine spezielle externe Kennwortänderungsseite, die Sie unter URL zur Kennwortänderung angeben können (siehe unten).

Beachten Sie, dass eine Änderung der LDAP-Kennwörter evtl. eine sichere ldaps-Verbindung erfordert. Außerdem muss der weiter oben angegebene Bind-Nutzer die entsprechenden Rechte haben, Nutzerkennwörter zu ändern.

Desweiteren ist der Code zur Kennwortänderung nur bedingt getestet. Er funktioniert für LDAP-Server, die das Novell eDirectory oder das Microsoft Active Directory verwenden. Bei anderen LDAP-Servern kann es sein, das die Kennwortänderung nicht funktioniert.

Kennwortformat

Geben Sie hier an, wie neue Kennwörter verschlüsselt werden, bevor sie zum LDAP-Server gesendet werden. Mögliche Optionen sind: Reiner Text, MD5-Verschlüsselung oder SHA-1 hash.

URL zur Kennwortänderung

Hier können Sie eine externe Seite zur Kennwortänderung angeben, auf der Nutzer ihr Kennwort ändern oder ein neues anfordern können. Wenn Sie hier einen Eintrag vornehmen, dann erscheint im Moodle-Nutzerprofil ein Button Kennwort ändern.

Gültigkeitsablauf von Kennworten

Gültigkeitsende

  • Wenn Sie diese Option auf Nein setzen, prüft Moodle nicht, ob die Gültigkeitsdauer des Kennworts abgelaufen ist.
  • Wenn Sie diese Option auf LDAP setzen, prüft Moodle, ob die Gültigkeitsdauer des LDAP-Kennwort abgelaufen ist und verschickt ggf. eine Warnmeldung.

Warnung zum Gültigkeitsende

Mit dieser Zahl legen Sie fest, wie viele Tage vor Ablauf der Gültigkeitsdauer eines Kennworts der Nutzer eine entsprechende Warnmeldung per E-Mail zugeschickt bekommt.

Merkmal für Gültigkeitsende

Geben Sie hier das LDAP-Attribut ein, das zur Prüfung der Gültigkeitsdauer eines Kennworts verwendet wird. Diese Eingabe ist optional, wenn Sie das Feld leer lassen, wird der Standardwert verwendet.

GraceLogins

Mit dieser Option können Sie die GraceLogin-Funktionalität von LDAP aktivieren. GraceLogin bedeutet, dass ein Nutzer auch nach Ablauf der Gültigkeitsdauer seines Kennworts noch eine bestimmte Anzahl von Versuchen hat, sich anzumelden. Bei jedem Anmeldeversuch wird diese Zahl um eins vermindert, und erst wenn der Wert gleich Null ist, wird der Zugriff endgültig verweigert.

Merkmal für GraceLogin

Geben Sie hier das LDAP-Attribut ein, das die Anzahl der Anmeldeversuche nach Ablauf der Gültigkeitsdauer des Kennworts festlegt. Diese Eingabe ist optional, wenn Sie das Feld leer lassen, wird der Standardwert verwendet.

Nutzer-Erstellung aktivieren

Nutzer extern anlegen

Neue (anonyme) Nutzer/innen können neue Nutzerkonten auf dem externen LDAP-Server anlegen und per E-Mail bestätigen. Wenn Sie diese Option aktivieren, dann sollten Sie auch eine entsprechende Anleitung auf der Seite Einstellungen > Website-Administration > Plugins > Authentifizierung > Übersicht im Textbereich Anweisungen hinterlegen.

Derzeit können nur Novell eDirectory und MS-AD neue Nutzer/innen auf dem externen LDAP-Server anlegen.

Kontext für neue Nutzer/innen

Geben Sie hier den Kontext an, in dem neue Nutzer/innen extern angelegt werden. Aus Sicherheitsgründen sollte dieser Kontext verschieden vom Kontext anderer Nutzer/innen sein. |}

Kursersteller/in

Kursersteller/innen

Geben Sie hier den DN der Gruppe aller der Nutzer/innen an, die neue Kurse in Moodle anlegen können sollen. Typischerweise ist das eine posixGroup mit einem memberUid-Merkmal, das alle Nutzer/innen haben, die neue Kurse in Moodle anlegen können sollen. Wenn Ihre Gruppe z.B. creators heißt, geben Sie ein: cn=creators,ou=moodleusers,dc=my,dc=organization,dc=domain. Jedes "memberUid"-Merkmal enthält den CN einer Person, die neue Kurse anlegen darf. Verwenden Sie nicht den vollen DN (also nicht memberUid: cn=JoeTeacher,ou=moodleusers,dc-my,dc=organizations,dc=domain, sondern nur memberUid: JoeTeacher).

Im eDirectory ist die objectClass für eine Gruppe standardmäßig nicht posixGroup, sondern groupOfNames, deren Mitgliedsmerkmal member ist (und nicht memberUid) und dessen Wert der volle DN der betreffenden Person ist. Sie können den Moodle Code entsprechend anpassen. Alternativ können Sie jedoch ein neues objectClass Merkmal von posixGroup zur Gruppe der Kursersteller/innen hinzufügen und die CNs aller Kursersteller/innen in einem memberUid-Merkmal ablegen.

Im MS Active Directory müssen Sie eine Sicherheitsgruppe anlegen und alle Kursersteller/innen in diese Gruppe eintragen. Wenn der LDAP-Kontext (siehe oben) z.B. ou=staff,dc=my,dc=org ist, dann sollte die Gruppe entsprechend cn=creators,ou=staff,dc=my,dc=org sein. Wennn einige Nutzer/innen zu anderen Kontexten gehören und zur gleichen Sicherheitsgruppe hinzugefügt wurden, müssen Sie diese als separate Kontexte ergänzen (unter Verwendung desselben Formats).

Cron-Synchronisierungsskript

Entfernte externe Nutzer

Mit dieser Einstellung legen Sie fest, was bei der Nutzersynchronisation mit Nutzerkonten in Moodle passieren soll, wenn die zugehörigen Nutzer/innen aus dem externen LDAP-Server gelöscht wurden. Wenn Sie die Option Intern aufheben wählen, dann werden die Nutzerkonten reaktiviert, sobald die zugehörigen Nutzer/innen im externen LDAP-Server wieder auftauchen.

Anmerkung: Es gibt ein PHP-Skript im Moodle-Verzeichnis moodle/auth/ldap/auth_ldap_sync_users.php, das Nutzerkonten in Moodle automatisch mit dem LDAP-Server synchronisiert, d.h. neu anlegt, intern aufhebt oder löscht. Idealerweise wird dieses Skript manuell von der Kommandozeile aus gestartet, am besten einmal täglich in einer ruhigen Zeit, wenn auf dem Moodle-Server wenig los ist. Dabei wird dieselbe Vorgehensweise verwendet, wie beim normalen Cron-Job. Sie sollten jedoch vorher testen, ob alle LDAP-Einstellungen korrekt funktionieren, bevor Sie die Nutzersynchronisierung automatisiert durchführen. Ebenso sollten Sie Ihre Moodle-Datenbank und Ihr Moodle-Datenverzeichnis sichern, falls etwas schief geht. Falsche Konfigurationseinstellungen können dazu führen, dass Nutzer/innen fälschlicherweise gelöscht werden.

Wenn das Skript nicht alle Nutzer/innen richtig behandelt, Sie MS Active Directory verwenden und mehr als 1000 Nutzer/innen haben, dann liegt das daran, dass MS AD nur 1000 Nutzer/innen gleichzeitig zurücksendet. Folgen Sie dieser Anleitung, um die Einstellung MaxPageSize auf einen Wert zu setzen, der größer ist als Ihre Nutzerzahl. Dann wird das Skript korrekt arbeiten.

NTLM SSO

Aktivieren

NTLM ist eine spezielle Authentifizierungsmethode von Windows. Es gibt ein Zusatzmodul, das die [[:en:NTLM_authentication|NTML-Authentifizierung in Moodle intergriert. Es gehört nicht zur Standardinstallation von Moodle.

Wenn Sie NTLM Single Sign On verwenden möchten, setzen Sie diese Einstellung auf Ja.

Subnet

Geben Sie hier das Subnetz der Clients ein, die NTML Single Sign On nutzen sollen.

MS IE fast path?

Diese Einstellung ist nur relevant, wenn Sie mit dem Internet Explorer auf Moodle zugreifen. Wählen Sie Ja, wenn Sie den "fast path" zulassen wollen.

Authentifikationsart

Wählen Sie hier die Authentifizierungsart, die beim Webserver eingestellt ist, um Nutzer/innen zu authentifizieren.

Datenzuordnung

Mit diesen Einstellungen legen Sie fest, wie die einzelnen Nutzerdatenfelder aus LDAP auf die Datenfelder in der Nutzertabelle der Moodle-Datenbank abgebildet werden. Diese Einstellungen sind optional.

Die Konfiguration der Datenzuordnung ist ausführlich im Artikel Authentifizierungs-Plugins verwalten beschrieben.

Microsoft Active Directory

Microsoft Active Directory (MS-AD) ist der Verzeichnisdienst von Microsoft. Er ist im Windows 2000 Server enthalten. Detaillierte Informationen zur Konfiguration der LDAP-Authentifizierung mit MS-AD finden Sie im Artikel Microsoft Active Directory.

Advanced Scenarios - Multiple servers or locations

For larger installations with multiple LDAP servers, or multiple locations (contexts) in a LDAP tree.

Using multiple LDAP Servers

Entering more than one name in the ldap_host_url field can provide some sort of resilience to your system. Simply use the syntax : ldap://my.first.server ; ldap://my.second.server ; ...

Of course, this will only work if all the servers share the same directory information, using a replication or synchronization mecanism once introduced in eDirectory and now generalized to the main LDAP-compatible directories.

There is one drawback in Moodle 1.5 - 1.6 implementation of LDAP authentication : the auth_ldap_connect() function processes the servers sequentially, not in a round robin mode. Thus, if the primary server fails, you will have to wait for the connection to time out before switching to the following one.

Using multiple user locations (contexts) in your LDAP tree

There is no need to use multiple user locations if your directory tree is flat, i.e. if all user accounts reside in a ou=people,dc=my,dc=organization,dc=domain or ou=people,o=myorg container.

At the opposite, if you use the ACL mecanism to delegate user management, there are chances that your users will be stored in containers like ou=students,ou=dept1,o=myorg and ou=students,ou=dept2,o=myorg ...

Then there is an alternative :

  • Look at the o=myorg level with the ldap_search_sub attribute set to yes.
  • Set the ldap_context to ou=students,ou=dept1,o=myorg ; ou=students,ou=dept2,o=myorg.

Choosing between these two solutions supposes some sort of benchmarking, as the result depends heavily on the structure of your directory tree and on your LDAP software indexing capabilities. Simply note that there is a probability in such deep trees that two users share the same common name (cn), while having different distinguished names. Then only the second solution will have a deterministic result (returning allways the same user).

Using LDAPS (LDAP + SSL)

Enabling LDAPS on the LDAP server side

Enabling LDAPS on the client side (Moodle server)

  • If you are running Moodle on MS Windows, you need to tell PHP's OpenLDAP extension to disable SSL server certificate checking. You must create a directory called C:\OpenLDAP\sysconf. In this directory, create a file called ldap.conf with the following content:
TLS_REQCERT never
  • If you are running Moodle on Linux or any other Unix-like operating system, and you want to disable SSL server certificate checking, you need to edit the OpenLDAP client configuration file (usually /etc/ldap.conf or /etc/ldap/ldap.conf or even /etc/openldap/ldap.conf) and make sure you have a line like the following one:
TLS_REQCERT never

Now you should be able to use ldaps:// when connecting to your LDAP server.

If you have the certificate of the LDAPS server as a file and want to check the certificate for the connection, copy the certificate file to an arbitary directory (e.g. /etc/ldap/certificate.pem) on your client and change the content of the ldap.conf as follows:

TLS_REQCERT demand
TLS_CACERT  /etc/ldap/certificate.pem

When the requested server certificate is bad or not provided, the connection to the LDAPS server is immediately terminated.

Table of Contents


Siehe auch