Kurseinschreibung über LDAP: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(14 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Zum Übersetzen}} | {{Zum Übersetzen}} | ||
Siehe [[:en:LDAP enrolment]] | Siehe [[:en:LDAP enrolment]] | ||
{{Gisela}} | |||
[[Category:Administrator]] | [[Category:Administrator]] | ||
Zeile 9: | Zeile 11: | ||
== Wie man das Einschreiben in einen Kurs via LDAP einrichtet== | == Wie man das Einschreiben in einen Kurs via LDAP einrichtet== | ||
Hier wird beschrieben, wie man LDAP-Einschreibung einrichtet (erste Version von Lars Jensen). [[LDAP | Hier wird beschrieben, wie man LDAP-Einschreibung einrichtet (erste Version von Lars Jensen). [[Einschreibung über LDAP]] arbeitet am besten, wenn in Moodle ebenfalls [[Authentifizierung über LDAP]] genutzt wird. Entsprechend gehe ich davon aus, dass Sie bereits LDAP-Authentifizierung eingerichtet haben. Für Schulen kann ich nur dringend dazu raten, einen LDAP-Authentifizierung plus LDAP-Einschreibung einzurichten. Der administrative Aufwand sinkt dadurch auf ein Minimum, während gleichzeitig weniger Fragen von Lehrern und Schüler zu erwarten sind. | ||
Zeile 24: | Zeile 26: | ||
=== Annahmen === | === Annahmen === | ||
# Ich habe die [[LDAP | # Ich habe die [[Einschreibung über LDAP]] auf Moodle 1.9.2 getestet. Andere Versionen sollten auch klappen. | ||
# Sie nutzen bereits LDAP-Authentifizierung. | # Sie nutzen bereits LDAP-Authentifizierung. | ||
# Meine Angaben beziehen sich leider nur auf einen M$ W2k3-Server. Alternative LDAP-Server werden bestimmt auch funktionieren, aber möglicherweise nicht so wie hier beschrieben. | # Meine Angaben beziehen sich leider nur auf einen M$ W2k3-Server. Alternative LDAP-Server werden bestimmt auch funktionieren, aber möglicherweise nicht so wie hier beschrieben. | ||
# Jeder User hat eine eindeutige ID-Nummer. Um das sicherzustellen gehen zur LDAP-Authentifizierung und geben Sie ganz unten im Bereich "Data Mapping" unter ID-Nummer "distinguishedName" ohne Anfürungszeichen ein. Im Falle von OpenLDAP (und anderen RFC2307 kompatiblen LDAP-Servern sollte hier "cn" zielführend sein. | # Jeder User hat eine eindeutige ID-Nummer. Um das sicherzustellen gehen zur LDAP-Authentifizierung und geben Sie ganz unten im Bereich "Data Mapping" unter ID-Nummer "distinguishedName" ohne Anfürungszeichen ein (Siehe Abbildung). Im Falle von OpenLDAP (und anderen RFC2307 kompatiblen LDAP-Servern sollte hier "cn" zielführend sein. | ||
Zeile 34: | Zeile 36: | ||
=== Das Aussehen der Kurse === | === Das Aussehen der Kurse === | ||
Unser Setup schließt folgende Kurs- und Nutzerangaben ein: | |||
* | * Zwei Kurse, '''Math101''' und '''Eng201'''. | ||
* | * Zwei Lehrer, '''LehrerA''' und '''LehrerB'''. | ||
* | * Drei Schüler, '''SchuelerD''', '''SchuelerE''' und '''SchuelerF'''. | ||
* | * SchuelerD und SchuelerE sind als Schüler im Kurs Math101 eingeschrieben, LehrerA ist als Lehrer im Kurs Math101 eingeschrieben. SchuelerE und SchuelerF sind als Schüler im Kurs Eng201 eingeschrieben, | ||
LehrerA und LehrerB sind als Lehrer im Kurs Eng201 eingeschrieben. | |||
=== | === Die LDAP Container Einstellung === | ||
# | # Definieren Sie zwei LDAP Container ou=StudentEnrollment und ou=TeacherEnrollment | ||
# | # Für jeden Kurs definieren wir einen LDAP Gruppeneintrag (z.B. einen posixGroup Eintrag) in den StudentEnrollment und TeacherEnrollment Containern. Also definieren wir eine Math101 posixGroup unter StudentEnrollment, und eine Math101 posixGroup unter TeacherEnrollment. Wir definieren die zwei Eng201 Gruppen auf gleiche Art. Achten Sie darauf, dass sich der Name der posixGroup sich mit der Kurs ID nummer des Moodlekurses decken muss! Verwenden Sie nicht den Kurznamen des Kurses, das wird nämlich nicht funktionieren. | ||
# | # Melden Sie Schüler und Lehrer als Mitglieder in den LDAP-Gruppen an, die wir gerade definierten. Dies geschieht durch Eingabe der Benutzernummer (idnumber) in das memberUid Eigenschaftsfeld der jeweiligen Gruppe: | ||
#* | #* LehrerA ist Mitglied der Math101 Gruppe unter TeacherEnrollment. | ||
#* | #* SchuelerD und SchuelerE sind Mitglieder der Math101 Gruppe unter StudentEnrollment. | ||
#* | #* LehrerA und LehrerB sind Mitglieder der Eng201 Gruppe unter TeacherEnrollment | ||
#* | #* SchuelerE und SchuelerF sind Mitglieder der Eng201 Gruppe unter StudentEnrollment. | ||
=== | === Die LDAP Einschreibungskonfiguration in Moodle === | ||
Die LDAP Einschreibungseinstellungen in Moodle entsprechend des obigen Setup sind wie folgt: | |||
{| cellspacing="0" cellpadding="5" border="1" | {| cellspacing="0" cellpadding="5" border="1" | ||
Zeile 88: | Zeile 91: | ||
|} | |} | ||
Zusätzlich, da Sie LDAP-Authentifizierung verwenden, sollten Sie auch die Moodle "ID-Nummer" der Benutzer in die "uid" im LDAP-Eintrag des Benutzers eintragen. Dies wird auf der Moodle-Seite LDAP-Authentifizierung (nicht auf der LDAP Anmeldungsseite) gemacht. | |||
=== Hinweise: === | |||
== | # Sie brauchen Kursen in Moodle nicht manuell erstellen. Wenn sie nicht existieren, werden sie erstellt, wenn sich der erste eingetragene Benutzer anmeldet. | ||
# Wir verwenden in einem LDAP-Benutzerdatensatz bei cn und uid die gleiche Zeichenfolge. Dies ist nicht notwendig, glaube ich. Allerdings, wenn Sie unterschiedliche Werte verwenden, müssen Sie uid bei ldap_user_attribute in der LDAP-Authentifizierungseinstellung definieren. | |||
# Der Wert der Gruppen-ID-Nummer (gidNumber), welcher für die Gruppen in Schritt 2 der LDAP-Containereinstellung oben definiert wurde, ist nicht kritisch. Er wird in diesen Einstellungen nicht verwendet. | |||
# Die beigefügte .ldif-Datei setzt voraus, dass Benutzer im ou=People Container im LDAP sind. Sie müssen dies in Ihren LDAP-Authentifizierungseinstellungen (ldap_contexts Variable) eintragen. | |||
# Benutzerpasswörter für diese Konfiguration sind in der beigefügten .ldif-Datei definiert. | |||
# Wenn Sie die beigefügten .lidf-Datei verwenden, müssen Sie die LDAP-Server Informationen (die "dn=" Zeilen) bearbeiten. | |||
==Anderes LDAP Layout== | |||
Ich schlage vor, eine neues LDAP-Objekt zu erstellen, sagen wir <TT>moodleCourse</TT>, das alle Informationen enthält, Kursteilnehmer, darunter Lehrer, Schüler usw. Zum Beispiel (OpenLDAP): | |||
<pre> | <pre> | ||
attributetype ( oidAttrBase:44 NAME ( 'teacherUid' ) SUP memberUid | attributetype ( oidAttrBase:44 NAME ( 'teacherUid' ) SUP memberUid | ||
DESC ' | DESC 'welche Person ist Lehrer in diesem Kurs' | ||
) | ) | ||
objectclass ( oidObjRoot:14 NAME 'moodleCourse' SUP top STRUCTURAL | objectclass ( oidObjRoot:14 NAME 'moodleCourse' SUP top STRUCTURAL | ||
DESC ' | DESC 'Kurs verfügbar in Moodle' | ||
MUST ( cn ) | MUST ( cn ) | ||
MAY ( owner $ gn $ sn $ seeAlso $ description $ memberUid $ teacherUid ) | MAY ( owner $ gn $ sn $ seeAlso $ description $ memberUid $ teacherUid ) | ||
) | ) | ||
Achtung: Openldap 2.x benötigt etwas wie: | |||
attributetype ( 1.2.1.1.1.1.2.1 NAME 'teacherUid' | attributetype ( 1.2.1.1.1.1.2.1 NAME 'teacherUid' | ||
SUP memberUid | SUP memberUid | ||
DESC ' | DESC 'welche Person ist Lehrer in diesem Kurs' | ||
EQUALITY caseExactIA5Match | EQUALITY caseExactIA5Match | ||
SUBSTR caseExactIA5SubstringsMatch | SUBSTR caseExactIA5SubstringsMatch | ||
Zeile 126: | Zeile 130: | ||
NAME 'moodleCourse' | NAME 'moodleCourse' | ||
SUP top STRUCTURAL | SUP top STRUCTURAL | ||
DESC ' | DESC 'Kurs verfügbar in Moodle' | ||
MUST ( cn ) | MUST ( cn ) | ||
MAY ( owner $ gn $ sn $ seeAlso $ description $ memberUid $ teacherUid ) | MAY ( owner $ gn $ sn $ seeAlso $ description $ memberUid $ teacherUid ) | ||
Zeile 132: | Zeile 136: | ||
</pre> | </pre> | ||
So wie hier schaut die Konfiguration aus. In <B>Fettdruck</B> sehen Sie die erforderlichen Änderungen, in <I>Kursivschrift</I> sehen Sie | |||
nützliche Änderungen. | |||
{| cellspacing="0" cellpadding="5" border="1" | {| cellspacing="0" cellpadding="5" border="1" | ||
Zeile 171: | Zeile 175: | ||
|} | |} | ||
<STRONG> | <STRONG>Hinweis:</STRONG>Die <TT>enrol_ldap_course_idnumber</TT> (<TT>cn</TT> in meiner Konfiguration) wird verwendet, um den Kurs mit dem LDAP-Anmeldungsskript zu identifizieren und die Datenbank benutzt hier eine <TT>INTEGER</TT>-Zahl, in Moodle v1.8 sowieso. Wenn Sie | ||
<CODE>cd enrol/ldap/ && php -f enrol_ldap_sync.php</CODE> aufrufen, wird jeder Kurs mit der gleichen idnumber aktualisiert; damit | |||
es ist ganz wichtig für die LDAP-Synchronisierung und muss eindeutig sein. | |||
Muster eines moodleCourse LDAP-Objekts: | |||
<pre>dn: cn=851,ou=moodle,ou=groups,dc=ldapserver,dc=tmcc,dc=edu | <pre>dn: cn=851,ou=moodle,ou=groups,dc=ldapserver,dc=tmcc,dc=edu | ||
objectClass: moodleCourse | objectClass: moodleCourse | ||
cn: 851 | cn: 851 | ||
givenName: LV851 | givenName: LV851 | ||
sn: 2007S/ | sn: 2007S/Einfuehrung in Moodle | ||
description: Jahr: 2007 Sommer, <A TARGET=_blank HREF="https://other_server/display/851"> | description: Jahr: 2007 Sommer, <A TARGET=_blank HREF="https://other_server/display/851">Bekanntgabe</A> | ||
teacherUid: userA | teacherUid: userA | ||
memberUid: user1</pre> | memberUid: user1</pre> | ||
In | In gleicher Weise kann man alle anderen Rollenzuordnungen hinzufügen. | ||
==See also== | ==See also== | ||
Zeile 196: | Zeile 200: | ||
* [http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol Wikipedia on LDAP:] a great deal of information beyond the context of Moodle | * [http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol Wikipedia on LDAP:] a great deal of information beyond the context of Moodle | ||
[[Category: | [[Category:Einschreibung]] | ||
[[fr:Inscription par LDAP]] | [[fr:Inscription par LDAP]] | ||
[[ja:LDAPユーザ登録]] | [[ja:LDAPユーザ登録]] |
Aktuelle Version vom 25. Februar 2011, 18:56 Uhr
Diese Seite ist noch nicht vollständig übersetzt.
Siehe en:LDAP enrolment
Diese Seite wird derzeit von Gisela Hillenbrand bearbeitet. Bei Änderungsvorschlägen nehmen Sie bitte direkt Diskussion.
Location: LDAP edit settings link in Administration > Kurse > Einschreibung
Wie man das Einschreiben in einen Kurs via LDAP einrichtet
Hier wird beschrieben, wie man LDAP-Einschreibung einrichtet (erste Version von Lars Jensen). Einschreibung über LDAP arbeitet am besten, wenn in Moodle ebenfalls Authentifizierung über LDAP genutzt wird. Entsprechend gehe ich davon aus, dass Sie bereits LDAP-Authentifizierung eingerichtet haben. Für Schulen kann ich nur dringend dazu raten, einen LDAP-Authentifizierung plus LDAP-Einschreibung einzurichten. Der administrative Aufwand sinkt dadurch auf ein Minimum, während gleichzeitig weniger Fragen von Lehrern und Schüler zu erwarten sind.
Das Ziel
Ihr M$-2K3-Server kennt Klassen, denen Schüler zugeordnet sind. Sie wollen,
- dass Moodle automatisch einen Klassenraum einrichtet, sobald ein Schüler der Klasse sich einloggt.
- dass jeder Schüler einer Klasse automatisch freien Zutritt zu seiner Klasse hat, ohne administratives Zutun.
Möglicherweise wollen Sie auch, dass auch Lehrer automatisch ihrer Klasse zugeordenet werden. Das klappt natürlich nur, wenn LDAP diese Information auch tatsächlich abbildet. Bei uns ist das nicht der Fall, was aber meines Erachtens vollkommen unproblematisch ist. Ohnehin lege ich die Lehrer alle per Bulk-Upload an,
- weil das schnell gemacht ist,
- weil ich so alle Lehrer in Moodle erfasst habe, auch wenn sie noch nicht in Moodle angemeldet waren. So kann i beispielsweise vorm ersten Login Lehrer in gewünschten Kursen einschreiben,
- weil Single-Sign-In natürlich trotzdem prima funktioniert, auch wenn die Lehrer über eine Textdatei angelegt wurden.
Annahmen
- Ich habe die Einschreibung über LDAP auf Moodle 1.9.2 getestet. Andere Versionen sollten auch klappen.
- Sie nutzen bereits LDAP-Authentifizierung.
- Meine Angaben beziehen sich leider nur auf einen M$ W2k3-Server. Alternative LDAP-Server werden bestimmt auch funktionieren, aber möglicherweise nicht so wie hier beschrieben.
- Jeder User hat eine eindeutige ID-Nummer. Um das sicherzustellen gehen zur LDAP-Authentifizierung und geben Sie ganz unten im Bereich "Data Mapping" unter ID-Nummer "distinguishedName" ohne Anfürungszeichen ein (Siehe Abbildung). Im Falle von OpenLDAP (und anderen RFC2307 kompatiblen LDAP-Servern sollte hier "cn" zielführend sein.
Das Aussehen der Kurse
Unser Setup schließt folgende Kurs- und Nutzerangaben ein:
- Zwei Kurse, Math101 und Eng201.
- Zwei Lehrer, LehrerA und LehrerB.
- Drei Schüler, SchuelerD, SchuelerE und SchuelerF.
- SchuelerD und SchuelerE sind als Schüler im Kurs Math101 eingeschrieben, LehrerA ist als Lehrer im Kurs Math101 eingeschrieben. SchuelerE und SchuelerF sind als Schüler im Kurs Eng201 eingeschrieben,
LehrerA und LehrerB sind als Lehrer im Kurs Eng201 eingeschrieben.
Die LDAP Container Einstellung
- Definieren Sie zwei LDAP Container ou=StudentEnrollment und ou=TeacherEnrollment
- Für jeden Kurs definieren wir einen LDAP Gruppeneintrag (z.B. einen posixGroup Eintrag) in den StudentEnrollment und TeacherEnrollment Containern. Also definieren wir eine Math101 posixGroup unter StudentEnrollment, und eine Math101 posixGroup unter TeacherEnrollment. Wir definieren die zwei Eng201 Gruppen auf gleiche Art. Achten Sie darauf, dass sich der Name der posixGroup sich mit der Kurs ID nummer des Moodlekurses decken muss! Verwenden Sie nicht den Kurznamen des Kurses, das wird nämlich nicht funktionieren.
- Melden Sie Schüler und Lehrer als Mitglieder in den LDAP-Gruppen an, die wir gerade definierten. Dies geschieht durch Eingabe der Benutzernummer (idnumber) in das memberUid Eigenschaftsfeld der jeweiligen Gruppe:
- LehrerA ist Mitglied der Math101 Gruppe unter TeacherEnrollment.
- SchuelerD und SchuelerE sind Mitglieder der Math101 Gruppe unter StudentEnrollment.
- LehrerA und LehrerB sind Mitglieder der Eng201 Gruppe unter TeacherEnrollment
- SchuelerE und SchuelerF sind Mitglieder der Eng201 Gruppe unter StudentEnrollment.
Die LDAP Einschreibungskonfiguration in Moodle
Die LDAP Einschreibungseinstellungen in Moodle entsprechend des obigen Setup sind wie folgt:
LDAP Enrollment Variable: | Value: |
---|---|
enrol_ldap_student_contexts: | ou=StudentEnrollment,dc=ldapserver,dc=tmcc,dc=edu |
enrol_ldap_student_memberattribute: | memberUid (use 'member' -without the quotes- for Active Directory) |
enrol_ldap_teacher_contexts: | ou=TeacherEnrollment,dc=ldapserver,dc=tmcc,dc=edu |
enrol_ldap_teacher_memberattribute: | memberUid (use 'member' -without the quotes- for Active Directory) |
enrol_ldap_objectclass: | posixGroup (use 'group' -without the quotes- for Active Directory) |
enrol_ldap_course_idnumber: | cn |
enrol_ldap_course_shortname: | cn |
enrol_ldap_course_fullname: | cn |
enrol_ldap_autocreate: | Yes |
Zusätzlich, da Sie LDAP-Authentifizierung verwenden, sollten Sie auch die Moodle "ID-Nummer" der Benutzer in die "uid" im LDAP-Eintrag des Benutzers eintragen. Dies wird auf der Moodle-Seite LDAP-Authentifizierung (nicht auf der LDAP Anmeldungsseite) gemacht.
Hinweise:
- Sie brauchen Kursen in Moodle nicht manuell erstellen. Wenn sie nicht existieren, werden sie erstellt, wenn sich der erste eingetragene Benutzer anmeldet.
- Wir verwenden in einem LDAP-Benutzerdatensatz bei cn und uid die gleiche Zeichenfolge. Dies ist nicht notwendig, glaube ich. Allerdings, wenn Sie unterschiedliche Werte verwenden, müssen Sie uid bei ldap_user_attribute in der LDAP-Authentifizierungseinstellung definieren.
- Der Wert der Gruppen-ID-Nummer (gidNumber), welcher für die Gruppen in Schritt 2 der LDAP-Containereinstellung oben definiert wurde, ist nicht kritisch. Er wird in diesen Einstellungen nicht verwendet.
- Die beigefügte .ldif-Datei setzt voraus, dass Benutzer im ou=People Container im LDAP sind. Sie müssen dies in Ihren LDAP-Authentifizierungseinstellungen (ldap_contexts Variable) eintragen.
- Benutzerpasswörter für diese Konfiguration sind in der beigefügten .ldif-Datei definiert.
- Wenn Sie die beigefügten .lidf-Datei verwenden, müssen Sie die LDAP-Server Informationen (die "dn=" Zeilen) bearbeiten.
Anderes LDAP Layout
Ich schlage vor, eine neues LDAP-Objekt zu erstellen, sagen wir moodleCourse, das alle Informationen enthält, Kursteilnehmer, darunter Lehrer, Schüler usw. Zum Beispiel (OpenLDAP):
attributetype ( oidAttrBase:44 NAME ( 'teacherUid' ) SUP memberUid DESC 'welche Person ist Lehrer in diesem Kurs' ) objectclass ( oidObjRoot:14 NAME 'moodleCourse' SUP top STRUCTURAL DESC 'Kurs verfügbar in Moodle' MUST ( cn ) MAY ( owner $ gn $ sn $ seeAlso $ description $ memberUid $ teacherUid ) ) Achtung: Openldap 2.x benötigt etwas wie: attributetype ( 1.2.1.1.1.1.2.1 NAME 'teacherUid' SUP memberUid DESC 'welche Person ist Lehrer in diesem Kurs' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) objectclass ( 1.2.1.1.1.1.1.1 NAME 'moodleCourse' SUP top STRUCTURAL DESC 'Kurs verfügbar in Moodle' MUST ( cn ) MAY ( owner $ gn $ sn $ seeAlso $ description $ memberUid $ teacherUid ) )
So wie hier schaut die Konfiguration aus. In Fettdruck sehen Sie die erforderlichen Änderungen, in Kursivschrift sehen Sie nützliche Änderungen.
LDAP Enrollment Variable: | Value: |
---|---|
enrol_ldap_student_contexts: | ou=moodle,ou=groups,dc=ldapserver,dc=tmcc,dc=edu |
enrol_ldap_student_memberattribute: | memberUid |
enrol_ldap_teacher_contexts: | ou=moodle,ou=groups,dc=ldapserver,dc=tmcc,dc=edu |
enrol_ldap_teacher_memberattribute: | teacherUid |
enrol_ldap_objectclass: | moodleGroup |
enrol_ldap_course_idnumber: | cn |
enrol_ldap_course_shortname: | givenname |
enrol_ldap_course_fullname: | sn |
enrol_ldap_course_summary: | description |
enrol_ldap_autocreate: | Yes |
Hinweis:Die enrol_ldap_course_idnumber (cn in meiner Konfiguration) wird verwendet, um den Kurs mit dem LDAP-Anmeldungsskript zu identifizieren und die Datenbank benutzt hier eine INTEGER-Zahl, in Moodle v1.8 sowieso. Wenn Sie
cd enrol/ldap/ && php -f enrol_ldap_sync.php
aufrufen, wird jeder Kurs mit der gleichen idnumber aktualisiert; damit
es ist ganz wichtig für die LDAP-Synchronisierung und muss eindeutig sein.
Muster eines moodleCourse LDAP-Objekts:
dn: cn=851,ou=moodle,ou=groups,dc=ldapserver,dc=tmcc,dc=edu objectClass: moodleCourse cn: 851 givenName: LV851 sn: 2007S/Einfuehrung in Moodle description: Jahr: 2007 Sommer, <A TARGET=_blank HREF="https://other_server/display/851">Bekanntgabe</A> teacherUid: userA memberUid: user1
In gleicher Weise kann man alle anderen Rollenzuordnungen hinzufügen.
See also
- Some User authentication forum discussion threads:
- Forum discussion: LDAP Enrollment HOWTO with Lars Jensen's 2005 post.
- Forum discussion: LDAP Auto enrollment
- Forum discussion: LDAP nightmare Part II
- Forum discussion: Moodle + AD + LDAP = Confusion - Help Required and Provided
- Wikipedia on LDAP: a great deal of information beyond the context of Moodle