===== IServ über LDAP an Moodle anbinden =====
Die ursprüngliche Version stammt von Matthias Grünwald aus dem IServ-Supportforum. Sie können diese {{ :anleitung:ldap_authentifizierung_synchronisierung_fuer_moodle_im_iserv_gruppenimport_1_.pdf |hier}} herunterladen.
Moodle ermöglicht die Authentifizierung per LDAP, also die Überprüfung der Zugangsdaten beim Login über die Schnittstelle. Bei jedem Login in Moodle wird also bei IServ angefragt, ob die Benutzerdaten korrekt sind. Außerdem kann man recht einfach sämtliche IServ-Gruppen in Moodle hochladen. Das ist jedoch mit etwas Arbeit verbunden, so dass immer zu prüfen ist, ob nicht Schüler:innen sich auch eigenverantwortlich in Kurse einschreiben können sollten.
==== LDAP auf dem IServ vorbereiten ====
Dieser Schritt ist für jedes System notwendig, welches per LDAP angebunden werden soll. Man benötigt Zugriff zum Internetrouter der Schule und zur Kommandozeile von IServ. Ggf. ist die Einrichtung auch über den IServ-Support möglich.
Der Port 10636 muss auf dem Router oder der Firewall nach außen freigegeben werden. Über diesen Port findet die Kommunikation mit Moodle statt. IServ lässt dabei nur Verbindungen von IP-Adressen zu, die man vorher dafür freigegeben hat.
Nach dem Einloggen auf IServ, muss die Datei ///etc/iserv/ldapusers// angepasst werden. Am leichtesten gelingt das mit nano:
nano /etc/iserv/ldapusers
{{ :anleitung:ldapusers.png?direct&500 |}}
Nun kommt ein Eintrag hinter dem Hinweis
# Please add additional user definitions after this comment an remember to save
# the file with iconf save
Also z.B.:
moodle:+userPassword:192.168.0.56
Der Benutzerzugang zum Verzeichnis lautet hier "moodle". Die IP-Adresse (192.168.0.56) muss diejenige des Moodleservers sein. Der Lesezugriff auf den Passworthash und die Gruppenmitgliedschaften muss extra freigegeben werden.
Sie können jetzt mit STRG-x den Editor verlassen und mit
iconf save /etc/iserv/ldapusers
iservchk ldap ferm
die Änderungen im IServ permanent übernehmen.
Für die spätere Konfiguration jeder denkbaren Anwendung (also auch Moodle) benötigen Sie jetzt noch die sogenannte BaseDN und das Zugriffspasswort:
nano /var/lib/iserv/server-openldap/ldapdn
nano /var/lib/iserv/server-openldap/pwd/moodle.pwd
Notieren Sie sich beide Angaben.
==== Der LDAP-Verzeichnisbaum des IServ ====
Damit man versteht, was man jeweils in den Konfigurationseinstellungen bewirkt, ist ein Blick in den Verzeichnisbaum des LDAP-Verzeichnisses im IServ aufschlussreich. Dieser hält sich mustergültig an RFC-Vorgaben, so dass eigentlich jedes per LDAP angebundenes System damit zurechtkommen müsste.
* [[anleitung:iservslapcat|Verzeichnisaufbau des IServ]]
==== Einstellungen in Moodle ====
Moodle ermöglicht eine Authentifizierung aus unterschiedlichen Quellen. Das wird über Module realisiert. Im ersten Schritt wird die LDAP-Authentifizierung eingerichtet. Sie finden die notwendigen Einstellungen unter:
//Website-Administration => Plugins => Authentifizierung => Übersicht => LDAP-Server (Einstellungen)//
Schneller geht es immer über die Suchfunktion - hier wäre der Suchbegriff "LDAP-Server" der geeignete.
{{ :anleitung:ldap-plugin.png?direct&600 |}}
Nun müssen verschiedene Einstellungen erfolgen. Die nicht aufgeführten Einstellungen können auf Standard verbleiben.
| @#F61303:**LDAP-Serverenstellungen** | @#F61303:**Eintrag oder Einstellung** | @#F61303:**Erläuterung/Kommentar** |
| Host URL | //%%ldaps://:10636/%%// | |
| @lightgrey:Version | @lightgrey://3// | @lightgrey: |
| TLS benutzen | //Ja// | |
| @lightgrey:Kennwort-Caching verhindern | @lightgrey://Ja// | @lightgrey: |
| Anmeldename | //%%cn=moodle, ou=ldap, dc=, dc=%%// | |
| @lightgrey:Kennwort | @lightgrey://Anmeldepasswort (s.o., 64-stellig)// | @lightgrey: |
| @#F61303:**Nutzersuche (user lookup)** | @#F61303:**Eintrag oder Einstellung** | @#F61303:**Erläuterung/Kommentar** |
| Nutzertyp | //posixAccount (rfc2307)// | |
| @lightgrey:Kontexte | @lightgrey://%%ou=users, dc=, dc=%%// | @lightgrey: |
| Nutzermerkmal | //uid// | |
| @lightgrey:Mitgliedsmerkmal| @lightgrey://memberuid// | @lightgrey: |
| ObjectClass | //uuidObject// | |
| @#F61303:**Synchronisierung von Nutzerkonten** | @#F61303:**Eintrag oder Einstellung** | @#F61303:**Erläuterung/Kommentar** |
| @lightgrey:Entfernte externe Nutzer| @lightgrey://intern sperren// | @lightgrey: |
| @#F61303:**Datenzuordnung** | @#F61303:**Eintrag oder Einstellung** | @#F61303:**Erläuterung/Kommentar** |
| Daten übernehmen (Vorname)| //givenName// | |
| @lightgrey:Lokal aktualisieren (Vorname) | @lightgrey://Bei jedem Login// | @lightgrey: |
| Feld sperren (Vorname)| //Gesperrt// | |
| @lightgrey:Daten übernehmen (Nachname) | @lightgrey://sn// | @lightgrey: |
| Lokal aktualisieren (Nachname) | //Bei jedem Login// | |
| @lightgrey:Feld sperren (Nachname)| @lightgrey://Gesperrt// | @lightgrey: |
| Daten übernehmen (E-Mailadresse)| //mail// | |
| @lightgrey:Lokal aktualisieren (E-Mailadresse) | @lightgrey://Bei jedem Login// | @lightgrey: |
| Feld sperren (E-Mailadresse)| //Bearbeitbar// | |
| @lightgrey:Daten übernehmen (ID-Nummer) | @lightgrey://uidNumber// | @lightgrey: |
| Lokal aktualisieren (ID-Nummer) | //Bei jedem Login// | |
| @lightgrey:Feld sperren (ID-Nummer)| @lightgrey://Gesperrt// | @lightgrey: |
Am Schluss klicken Sie auf den Button "Änderungen sichern".
Das Plugin muss in der Plugin-Liste jetzt noch aktiviert werden.
{{ :anleitung:ldap-plugin-activate.png?direct&500 |}}
Wenn das LDAP-Plugin die einzige Methode ist, mit der sich Schüler:innen und Lehrkräfte an Moodle anmelden, sollte es an die dritte Stelle in der Liste mit den Pfeilen "hochgeschoben" werden.
Eine Anmeldung am Moodle mit IServ-Daten sollte jetzt möglich sein (bitte testen).
==== Nutzer:innenverwaltung in Moodle ====
Nutzer:innen können sich jetzt zwar in Moodle anmelden, sind aber keinen Gruppen zugeordnet. Auch werden nur Teilnehmer:innenrechte zugewiesen. Das ist bei kleinen Schulen noch beherrschbar, in großen Systemen ufert der Verwaltungsaufwand jedoch aus. Daher ist eine Automatisierung wünschenwert. Dies geht in Moodle über sogenannte Einschreibeplugins.
Für das Entfernen von Nutzer:innen gibt es noch keine technische Möglichkeit der Automatisierung.
=== Mit dem OSS-Plugin ===
Empfohlen wird die Nutzung des Plugins [[https://moodle.org/plugins/enrol_oss|OSS-Enrolement]]. Im Gegensatz zum LDAP-Enrolment-Plugin von Moodle gibt es für den schulischen Bereich einige {{ :anleitung:igsbov_administration_plugins_enrolments_oss_enrolment_gruppen_gefuellt_1_.pdf |sinnvolle Einstellungsmöglichkeiten}} mehr. Man muss sich aber vor Augen halten, dass dieses Plugin für die Zusammenarbeit mit dem [[http://openschoolserver.net/|OpenSchoolServer]] und nicht für IServ konzipiert wurde. Das LDAP-Verzeichnis des OpenSchoolServer unterscheidet sich vom LDAP-Verzeichnis des IServ.
| @#F61303:**LDAP-Settings** | @#F61303:**Eintrag oder Einstellung** | @#F61303:**Erläuterung/Kommentar** |
| contexts | //ou=groups, dc=, dc=// | |
| @lightgrey:abject class | @lightgrey://posixGroup// | @lightgrey: |
| group name attribute | //cn// | |
| @lightgrey:group attribute | @lightgrey://memberuid// | @lightgrey: |
| member attribute is dn | //No// | |
| @#F61303:**Teacher settings** | @#F61303:**Eintrag oder Einstellung** | @#F61303:**Erläuterung/Kommentar** |
| @lightgrey:teachers group | @lightgrey://lehrer// | @lightgrey:Name der Lehrkräftegruppe auf IServ, meist "lehrer" |
| teachers course role| //Student// | |
| @lightgrey:teachers course prefix | @lightgrey://(leer lassen)// | @lightgrey: |
| teacher category| //lehrer// | |
| @lightgrey:teachers category role| @lightgrey://Course creator// | @lightgrey: |
| teachers course teacher rolle | //Teacher// | |
| @lightgrey:autocreate | @lightgrey://Yes// | @lightgrey: |
| autoremove | //Yes// | |
| @lightgrey:removed courses category | @lightgrey://attic// | @lightgrey: |
| ignored teachers| //// | |
| @#F61303:**class settings** | @#F61303:**Eintrag oder Einstellung** | @#F61303:**Erläuterung/Kommentar** |
| classes enabled | //No// | |
| @lightgrey:classes category| @lightgrey://Klassenkursbereich// | @lightgrey: |
| autocreate class category | //Yes// | |
| @lightgrey:autocreate classes | @lightgrey://Yes// | @lightgrey: |
| autoremove classes | //Yes// | |
| @lightgrey:all students class| @lightgrey://Yes// | @lightgrey: |
| age group class | //Yes// | |
| @lightgrey:class template name | @lightgrey://none// | @lightgrey: |
| class attribute | //memberOf// | |
| @lightgrey:Use prefixes| @lightgrey://No// | @lightgrey: |
| class prefixes | //05// | |
| @lightgrey:attribute value | @lightgrey://departmentNumber// | @lightgrey: |
| class teachers tole | //Teacher// | |
| @lightgrey:class students role| @lightgrey://Student// | @lightgrey: |
| class parents role | //Student// | |
| @lightgrey:use groups | @lightgrey://No// | @lightgrey: |
| teachers description | //Lehrer:in der Klasse// | |
| @lightgrey:students description| @lightgrey://Schüler:in der Klasse// | @lightgrey: |
| parents description | //Eltern der Klasse// | |
| @#F61303:**Student settings** | @#F61303:**Eintrag oder Einstellung** | @#F61303:**Erläuterung/Kommentar** |
| @lightgrey:students group | @lightgrey://lehrer// | @lightgrey:Name der Schueler:innengruppe auf IServ, meist "schueler" |
| grade numbers| //Student// | |
| @lightgrey:other groups | @lightgrey://IServ-spezifisch// | @lightgrey:Prefixe für weitere Schüler:innengruppen |
| project prefix| //lehrer// | |
| @lightgrey:student role| @lightgrey://Student// | @lightgrey: |
| @#F61303:**parents settings** | @#F61303:**Eintrag oder Einstellung** | @#F61303:**Erläuterung/Kommentar** |
| @lightgrey:parents enabled | @lightgrey://No// | @lightgrey: |
| create parents accounts | //No// | |
| @lightgrey:remove parents accounts| @lightgrey://No// | @lightgrey: |
| parents role | //Manager// |
| @lightgrey:parents prefix| @lightgrey://eltern_// | @lightgrey: |
| child attribute | //uniqueidentifier// |