LDAP-Server: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(7 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Authentifizierung}} | {{Authentifizierung}} | ||
Diese Authentifizierungsmethode verwendet einen [[LDAP-Server]], um zu prüfen, ob die Anmeldedaten eines Nutzers (Anmeldename / Kennwort) gültig sind. | Diese Authentifizierungsmethode verwendet einen [[LDAP-Server]], um zu prüfen, ob die Anmeldedaten eines Nutzers (Anmeldename / Kennwort) gültig sind. | ||
Zeile 8: | Zeile 7: | ||
Die Aktivierung der Authentifizierung über einen LDAP-Server erfolgt auf der Seite ''[[Einstellungen-Block|Einstellungen]] > Website-Administration > Plugins > Authentifizierung > Übersicht''. | Die Aktivierung der Authentifizierung über einen LDAP-Server erfolgt auf der Seite ''[[Einstellungen-Block|Einstellungen]] > Website-Administration > Plugins > Authentifizierung > Übersicht''. | ||
Klicken Sie in der Liste auf das geschlossene Auge-Symbol [[Image:show. | Klicken Sie in der Liste auf das geschlossene Auge-Symbol [[Image:show.svg|16px|baseline]] in der Zeile ''LDAP-Server''. | ||
==Spezifische Einstellungen== | ==Spezifische Einstellungen== | ||
Zeile 164: | Zeile 163: | ||
Die Konfiguration der Datenzuordnung ist ausführlich im Artikel [[Authentifizierungs-Plugins verwalten#Nutzerdatenfelder zuordnen und sperren|Authentifizierungs-Plugins verwalten]] beschrieben. | Die Konfiguration der Datenzuordnung ist ausführlich im Artikel [[Authentifizierungs-Plugins verwalten#Nutzerdatenfelder zuordnen und sperren|Authentifizierungs-Plugins verwalten]] beschrieben. | ||
==Nutzersynchronisierung== | |||
Früher wurde die Nutzersynchronisieruung zwischen Moodle und dem (externen) LDAP-Server über ein Cron-Skript ausgeführt. Jetzt gibt es einen [[Geplante Vorgänge|geplanten Vorgang]] (''\auth_ldap\task\sync_task''), der das Anlegen, Aktualisieren, Sperren und Löschen der Nutzerkonten übernimmt (siehe MDL-51824). | |||
Die Moodle-Administration muss diesen geplanten Vorgang konfigurieren: | |||
# Gehen Sie dazu auf die Seite ''[[Einstellungen-Block|Einstellungen]] > Website-Administration > Server > Geplante Vorgänge'' und klicken Sie auf das Bearbeiten-Symbol [[Image:settings.svg|16px|baseline]] bei ''Synchroniesierung von LDAP-Nutzerkonten''. | |||
# Legen Sie fest, wann die Synchronisierung erfolgen soll und entfernen Sie das Häkchen aus der Checkbox ''Deaktiviert''. | |||
Achtung: Es ist sehr wichtig zu prüfen, dass alle LDAP-Einstellungen (siehe oben) richtig funktionieren und zusätzlich alle Moodle-Daten (Moodle-Datenbank, Moodle-Datenverzeichnis) für den Notfall gesichert sind. Eine falsche LDAP-Konfiguration kann dazu führen, dass fälschlicherweise Nutzerdaten gelöscht werden. | |||
Wenn Sie mehr als 1000 Nutzer/innen in einem LDAP-Container haben, dann kann es passieren, dass das Skript nicht alle Nutzerdaten korrekt behandelt. Das liegt daran, dass einige LDAP-Verzeichnisse (z.B. MS Active Directory) nur 1000 Nutzerdaten auf einmal zurücksenden und ältere PHP-Versionen (vor 5.4) nicht mit LDAP-Ergebnissen umgehen können, die seitenweise ausgegeben werden. Wenn Sie nicht auf PHP 5.4 aktualisieren können, dann helfen Ihnen vielleicht [http://support.microsoft.com/kb/315071 diese Informationen von Microsoft] weiter, um die Anzahl der abgewickelten Nutzerdaten zu erhöhen. | |||
==Microsoft Active Directory== | ==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 [[:en:Active Directory|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 [[:en:Active Directory|Microsoft Active Directory]] (englisch). | ||
==Weitere Szenarien== | ==Weitere Szenarien== | ||
Zeile 178: | Zeile 188: | ||
Das funktioniert selbstverständlich nur, wenn alle eingetragenen LDAP-Server auf dieselben Nutzerinformationen und -daten zugreifen und dasselbe Verzeichnis teilen. | Das funktioniert selbstverständlich nur, wenn alle eingetragenen LDAP-Server auf dieselben Nutzerinformationen und -daten zugreifen und dasselbe Verzeichnis teilen. | ||
===Mehrere Domains verwenden=== | |||
Wenn Ihr Active Directory mehrere Domains verwendet und Sie Nutzer/innen in mehreren Domains haben, dann werden Sie Moodle so konfigurieren, dass der Global Catalog Server durchsucht wird. | |||
'''Beispiel für ein solches Active Directory Layout''': | |||
my.domain.ca (Root AD Domain) | |||
| - dc1.my.domain.ca (Domain Controller) | |||
| - dc2.my.domain.ca (Domain Controller) | |||
| | |||
| - - students.my.domain.ca (Sub AD Domain) | |||
| - - - dc1.students.my.domain.ca (Domain Controller) | |||
| - - - dc2.students.my.domain.ca (Domain Controller) | |||
| | |||
| - - faculty.my.domain.ca (Sub AD Domain) | |||
| - - - dc1.faculty.my.domain.ca (Domain Controller) | |||
| - - - dc2.faculty.my.domain.ca (Domain Controller) | |||
In diesem Beispiel gibt es eine Top-Level-Domain (my.domain.ca) und Zwei Subdomains. Eine Subdomain ist für die Nutzerkonten der Fakultät (faculty.my.domain.ca) und die andere Subdomain ist für die Nutzerkonten der Studierenden (students.my.domain.ca). Unter jeder dieser Subdomains sind die beiden Domain Controller aufgelistet. | |||
Um in diesem Beispiel per SSL auf den Global Catalog zuzugreifen, verwenden Sie folgende URL: | |||
ldaps://my.domain.ca:3269/ | |||
Wenn Sie eine Nicht-SSL-Verbindung bevorzugen, verwenden Sie diese URL: | |||
ldap://my.domain.ca:3268/ | |||
Wenn Sie die Konfiguration anders vornehmen, können Fehlermeldungen wie diese auftreten: | |||
[Thu May 26 15:23:53 2011] [error] [client 192.168.xxx.xxx] PHP Warning: ldap_search() [<a href='function.ldap-search'>function.ldap-search</a>]: Search: Partial results and referral received in /xxx/xxx/moodle20/lib/ldaplib.php on line 241, referer: http://moodle.my.domain.ca/moodle20/login/index.php | |||
[Thu May 26 15:23:53 2011] [error] [client 192.168.xxx.xxx] PHP Warning: ldap_first_entry(): supplied argument is not a valid ldap result resource in /xxx/xxx/moodle20/lib/ldaplib.php on line 248, referer: http://moodle.my.domain.ca/moodle20/login/index.php | |||
===Mehrere Kontexte im LDAP-Tree verwenden=== | ===Mehrere Kontexte im LDAP-Tree verwenden=== | ||
Zeile 187: | Zeile 229: | ||
* Setzen Sie die LDAP-Einstellung ''Subkontexte'' auf ''Ja''. | * Setzen Sie die LDAP-Einstellung ''Subkontexte'' auf ''Ja''. | ||
* Setzen Sie die LDAP-Einstellung ''Kontexte'' auf '''ou=students,ou=dept1,o=myorg ; ou=students,ou=dept2,o=myorg'''. | * Setzen Sie die LDAP-Einstellung ''Kontexte'' auf '''ou=students,ou=dept1,o=myorg ; ou=students,ou=dept2,o=myorg'''. | ||
Welche Variante besser funktioniert hängt stark von der Struktur Ihres Directory-Trees und Ihrer LDAP-Software ab. | |||
Aktuelle Version vom 11. Juni 2018, 19:18 Uhr
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 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.
- 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.
- Ihr LDAP-Server hat die IP-Adresse 192.168.1.100.
- Sie verwenden kein LDAP mit SSL (auch bekannt als ldaps).
- Sie möchten nicht, dass Nutzer beim ersten Login in Moodle ihr Kennwort ändern.
- Sie verwenden eine einzige Domain als Quelle für ihre Authentifizierungsdaten im Fall, dass Sie das MS Active Directory verwenden.
- Sie verwenden den DN-Namen dc=my,dc=organization,dc=domain als Wurzel Ihres LDAP-Baums.
- 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.
- 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.
- 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
Kennwörter 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 Kennwörtern
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/cli/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 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.
Nutzersynchronisierung
Früher wurde die Nutzersynchronisieruung zwischen Moodle und dem (externen) LDAP-Server über ein Cron-Skript ausgeführt. Jetzt gibt es einen geplanten Vorgang (\auth_ldap\task\sync_task), der das Anlegen, Aktualisieren, Sperren und Löschen der Nutzerkonten übernimmt (siehe MDL-51824).
Die Moodle-Administration muss diesen geplanten Vorgang konfigurieren:
- Gehen Sie dazu auf die Seite Einstellungen > Website-Administration > Server > Geplante Vorgänge und klicken Sie auf das Bearbeiten-Symbol bei Synchroniesierung von LDAP-Nutzerkonten.
- Legen Sie fest, wann die Synchronisierung erfolgen soll und entfernen Sie das Häkchen aus der Checkbox Deaktiviert.
Achtung: Es ist sehr wichtig zu prüfen, dass alle LDAP-Einstellungen (siehe oben) richtig funktionieren und zusätzlich alle Moodle-Daten (Moodle-Datenbank, Moodle-Datenverzeichnis) für den Notfall gesichert sind. Eine falsche LDAP-Konfiguration kann dazu führen, dass fälschlicherweise Nutzerdaten gelöscht werden.
Wenn Sie mehr als 1000 Nutzer/innen in einem LDAP-Container haben, dann kann es passieren, dass das Skript nicht alle Nutzerdaten korrekt behandelt. Das liegt daran, dass einige LDAP-Verzeichnisse (z.B. MS Active Directory) nur 1000 Nutzerdaten auf einmal zurücksenden und ältere PHP-Versionen (vor 5.4) nicht mit LDAP-Ergebnissen umgehen können, die seitenweise ausgegeben werden. Wenn Sie nicht auf PHP 5.4 aktualisieren können, dann helfen Ihnen vielleicht diese Informationen von Microsoft weiter, um die Anzahl der abgewickelten Nutzerdaten zu erhöhen.
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 (englisch).
Weitere Szenarien
Bei größeren Installationen kann es sein, dass mehrere LDAP-Server vorhanden sind und / oder dass es mehrere Kontexte im LDAP-Tree gibt.
Mehrere LDAP-Server verwenden
Bei den LDAP-Einstellungen (siehe oben) können Sie im Textfeld Host URL mehrere LDAP-Server eintragen. Einzelne Server werden durch Semikolon voneinander getrennt:
ldap://my.first.server ; ldap://my.second.server ; ...
Wenn ein LDAP-Server ausfällt, übernimmt der nächste LDAP-Server die Authentifizierung.
Das funktioniert selbstverständlich nur, wenn alle eingetragenen LDAP-Server auf dieselben Nutzerinformationen und -daten zugreifen und dasselbe Verzeichnis teilen.
Mehrere Domains verwenden
Wenn Ihr Active Directory mehrere Domains verwendet und Sie Nutzer/innen in mehreren Domains haben, dann werden Sie Moodle so konfigurieren, dass der Global Catalog Server durchsucht wird.
Beispiel für ein solches Active Directory Layout:
my.domain.ca (Root AD Domain) | - dc1.my.domain.ca (Domain Controller) | - dc2.my.domain.ca (Domain Controller) | | - - students.my.domain.ca (Sub AD Domain) | - - - dc1.students.my.domain.ca (Domain Controller) | - - - dc2.students.my.domain.ca (Domain Controller) | | - - faculty.my.domain.ca (Sub AD Domain) | - - - dc1.faculty.my.domain.ca (Domain Controller) | - - - dc2.faculty.my.domain.ca (Domain Controller)
In diesem Beispiel gibt es eine Top-Level-Domain (my.domain.ca) und Zwei Subdomains. Eine Subdomain ist für die Nutzerkonten der Fakultät (faculty.my.domain.ca) und die andere Subdomain ist für die Nutzerkonten der Studierenden (students.my.domain.ca). Unter jeder dieser Subdomains sind die beiden Domain Controller aufgelistet.
Um in diesem Beispiel per SSL auf den Global Catalog zuzugreifen, verwenden Sie folgende URL:
ldaps://my.domain.ca:3269/
Wenn Sie eine Nicht-SSL-Verbindung bevorzugen, verwenden Sie diese URL:
ldap://my.domain.ca:3268/
Wenn Sie die Konfiguration anders vornehmen, können Fehlermeldungen wie diese auftreten:
[Thu May 26 15:23:53 2011] [error] [client 192.168.xxx.xxx] PHP Warning: ldap_search() [<a href='function.ldap-search'>function.ldap-search</a>]: Search: Partial results and referral received in /xxx/xxx/moodle20/lib/ldaplib.php on line 241, referer: http://moodle.my.domain.ca/moodle20/login/index.php [Thu May 26 15:23:53 2011] [error] [client 192.168.xxx.xxx] PHP Warning: ldap_first_entry(): supplied argument is not a valid ldap result resource in /xxx/xxx/moodle20/lib/ldaplib.php on line 248, referer: http://moodle.my.domain.ca/moodle20/login/index.php
Mehrere Kontexte im LDAP-Tree verwenden
Wenn Ihr LDAP-Tree flach ist, müssen Sie nicht mehrere Kontexte verwenden, sondern halten alle Nutzerdaten in einem Container, z.B. ou=people,dc=my,dc=organization,dc=domain oder ou=people,o=myorg.
Wenn Sie dagegen einen ACL Mechanismus verwenden, um Nutzer/innen zu verwalten, dann kann es sein, dass Ihre Nutzerdaten in verschiedenen Containern liegen, z.B. ou=students,ou=dept1,o=myorg und ou=students,ou=dept2,o=myorg.
In diesem Fall gibt es folgende Konfigurationsmöglichkeit:
- Setzen Sie die LDAP-Einstellung Subkontexte auf Ja.
- Setzen Sie die LDAP-Einstellung Kontexte auf ou=students,ou=dept1,o=myorg ; ou=students,ou=dept2,o=myorg.
Welche Variante besser funktioniert hängt stark von der Struktur Ihres Directory-Trees und Ihrer LDAP-Software ab.
LDAP + SSL verwenden
Wenn Sie die Authentifizierung über eine verschlüsselte Verbindung durchführen wollen, müssen Sie LDAP und SSL (=LDAPS) auf der Server-Seite (also auf dem LDAP-Server) und auf der Client-Seite (also auf dem Moodle-Server) aktivieren.
Im englischsprachigen Artikel MS Active Directory finden Sie eine Anleitung, wie Sie LDAPS bei Verwendung des MS Active Directory auf der Server-Seite aktivieren.
LDAPS auf der Client-Seite (Moodle-Server) aktivieren
- Wenn Sie Moodle unter MS Windows laufen haben, müssen Sie in der Konfiguration der PHP-Erweiterung OpenLDAP die Prüfung des SSL Server Zertifikats deaktivieren:
- Legen Sie ein Verzeichnis C:\OpenLDAP\sysconf an.
- In diesem Verzeichnis erstellen Sie eine Datei ldap.conf mit folgendem Inhalt:
TLS_REQCERT never
- Wenn Sie Moodle unter Linux oder einem anderen UNIX-artigen Betriebssystem betreiben und die Prüfung des SSL Server Zertifikats deaktivieren wollen, dann müssen Sie die OpenLDAP-Client-Konfigurationsdatei (meistens /etc/ldap.conf oder /etc/ldap/ldap.conf oder /etc/openldap/ldap.conf) bearbeiten und folgende Zeile eintragen:
TLS_REQCERT never
Anschließend sollten Sie für die Verbindung mit dem LDAP-Server ldaps:// verwenden können.
- Wenn Sie das Zertifikat des LDAP-Servers als Datei vorliegen haben und dieses Zertifikat beim Verbindungsaufbau prüfen wollen, dann kopieren Sie die Datei in ein beliebigen Verzeichnis auf dem Moodle-Server (z.B. /etc/ldap/certificate.pem) und ändern Sie die OpenLDAP-Client-Konfigurationsdatei ldap.conf wie folgt:
TLS_REQCERT demand TLS_CACERT /etc/ldap/certificate.pem
Wenn das angeforderte Zertifikat ungültig oder nicht vorhanden ist, wird die Verbindung zum LDAP-Server sofort unterbrochen.
Siehe auch
- LDAP-Einschreibung
- LDAP auth and enrolment set-up guide (PDF 227KB)
- User authentication forum - Diskussionsforum im Kurs Using Moodle auf moodle.org
- PHP LDAP module does not seem to be present - Diskussionsbeitrag im Kurs Using Moodle auf moodle.org