Klassenansicht in der relution-App. Wie sieht das bei Euch aus?

Hallo.
Einige hier verwenden ja relution, um Tablets zu verwalten.

Ich habe einen Test mit einer Klasse gemacht. Dazu habe ich auf dem Tablet per relution-App den Unterricht in dieser Klasse gestartet und dann festgestellt, dass in der Klasse teilweise auch Lehrer angezeigt werden. Das sieht in der App dann so aus:

Die Namen der Schüler habe ich oben gelöscht und die Namen der Kollegen unkenntlich gemacht. Man erkennt, dass 2 Kollegen-iPads mit einem blauen Icon (bedeutet „alles ok“) und ein weiteres Kollegen-iPad mit einem roten Icon (bedeutet „es ist kein Gerät zugeordnet“) in dieser Klasse erscheinen.

Warum erscheinen dort ein paar (aber nicht ALLE!) Lehrer in der Klasse, obwohl das offensichtlich keine Schüler sind? Ich wüsste natürlich gerne wo wir das abstellen können?

Es scheint ja an dem Suchfilter für die User zu liegen, mit dem relution die Verbindung zum LDAP/AD herstellt. Wenn ich im MDM unter → Home → Einstellungen → Gruppen → Klasse 6d nachsehe, erscheinen die Logins der Lehrer dort ebenfalls. Nur: Warum?

Die Anbindung unseres MDM geschieht per LDAP/AD an unseren Linuxmuster-v7-Server. Es wäre sehr nett, wenn jemand bei sich auf dem MDM-Server unter

/opt/relution  --> application.yml

nachsehen könnte, was dort steht.

[… etwas später …]

Gerade habe ich zudem noch gesehen, dass genau die Lehrer, die unter relution als Schüler angezeigt werden, als Admins in der Klasse aufgelistet werden, wenn ich auf dem v7-Server den Befehl

sophomorix-class -i -c 6d
(Number of Admins:  3  | Number of Members:  29)

absetze. Es scheint also so zu sein, dass alle Kollegen, die sich im v7-WebUI als Lehrer in diese Klassen eingeschrieben haben, unter relution als Schüler behandelt werden, richtig?

Wie kann man das ändern? Danke für einen guten Tipp.
Michael

Hallo Michael,

das Verhalten kenne ich aus moodle, als ich noch opnlmlenrol verwendet habe.
Da wurden Lehrer, die sich in der WebUI in die Klasse eingetragen
hatten, auch zur Klasse dazu gezählt.
Du mußt bei deiner Gruppenabfrage nachschauen und dort etwas ändern.
Bei mir in moodle hab ich es so hinbekommen.

LG

Holger

Hallo Holger,

Ok, nur was?
Bei mir steht da im Moment:

    group_searchFilterTemplate: '(&(cn=%v)(objectClass=group))'

Direkt darunter habe ich auskommentiert das hier stehen, was eigentlich logischer erscheint:

    #group_searchFilterTemplate: '(&(cn=%v)(|(sophomorixType=adminclass)(cn=p_*)))' 

Wie sieht das bei Dir denn aus? Es läuft ja auf die Frage hinaus: Wie muss der LDAP-Filter aussehen, so dass man von allen Klassen NUR sämtliche Member aber nicht die Admins (=Lehrer) erhält?!?

Viele Grüße,
Michael

Hallo Michael,

Die Ldap Filter syntax ist relativ genormt. Wenn du im Filter etwas ausschließen willst musst du ein Ausrufezeichen davor setzen. Ich hab jetzt leider kein System hier in dem ich nachschauen kann, aber in deinem LDAP Objekt für die Lehrer müsste es ein „memberOf“ geben. Vereinfacht ausgedrückt sollte dein Filter in etwa so aussehen:

group_searchFilterTemplate: '(&(cn=%v)(objectClass=group)(!(memberOf=Admin)))'

Das dient jetzt nur zur Veranschaulichung und ist nicht exakt die Lösung für dein Problem. Es geht hier rein um die Syntax. Es kann auch sein, dass du nochmal ein (&…) um das ganze herumpacken musst. Schau dir nochmal das Objekt der Lehrer an wie die Gruppe der entsprechenden Admins heißt

Ich hoffe ich konnte dich in die richtige Richtung leiten.

Der Hoches

Hallo Hoches,
ja, das ist schon klar – nur ist mir nicht klar, wie ich hier NUR die Schüler rausfiltern kann.

Auf dem v7-Server habe ich mit ldapsearch schon ein paar Möglichkeiten ausprobiert, die aber alle nicht zum Ziel führten.
Bsp:

ldapsearch  -b "ou=default-school,ou=SCHOOLS,dc=linuxmuster,dc=lan" -H ldaps://server.linuxmuster.lan:636 -x -D global-binduser@linuxmuster.lan -w supergeheim '(objectClass=group)' |grep 6d

liefert nur die „Students“ aber keine „Teacher“. Ähnliches bei:

ldapsearch  -b "ou=default-school,ou=SCHOOLS,dc=linuxmuster,dc=lan" -H ldaps://server.linuxmuster.lan:636 -x -D global-binduser@linuxmuster.lan -w supergeheim '(sophomorixAdminClass=6d)'  |grep sAMAccountName

Dennoch sind die Lehrer, die sich über das v7-WebUI in diesen Klassen eingeschrieben haben, offensichtlich irgendwie mit drin … sonst wüsste relution ja nichts davon!?

[[… einen Versuch später …]]
Jetzt komme ich der Sache näher, denn wenn ich so suche:

ldapsearch  -b "ou=default-school,ou=SCHOOLS,dc=linuxmuster,dc=lan" -H ldaps://server.linuxmuster.lan:636 -x -D global-binduser@linuxmuster.lan -w supergeheim '(cn=6d)' |grep member

werden sowohl „Students“ als auch „Teachers“ der Gruppe 6d angezeigt. Hier muss der Filter ansetzen bzw angepasst werden.

Wie sehen denn bei Euch die Einträge in der o.g. application.yml-Datei aus?
Viele Grüße,
Michael

Hi Michael,

Nur der Vollständigkeit halber: hast du es denn mal mit dem auskommentierten Eintrag versucht?

Rein von der Logik her müsste der genau das machen was du willst, nämlich nur die Mitglieder anzeigen, die nicht teil der Klassenadmins sind.

Liebe Grüße

Ja, das hatte ich mal versucht … in meinem Logbuch steht dazu jedoch:
„Dieser Filter liefert zwar nur alle Gruppen, filtert aber zu viel, da z.b. die Gruppe „Teachers“ nicht mehr dabei ist!“
Das war also auch nicht ganz richtig.

Hallo Michael,

ein

sophomorix-user -i -u LOGINNAME

bringt bei mir bei einem Schüler der 5d zum Beispiel:

memberOf:
CN=5d,OU=5d,OU=Students,OU=default-school,OU=SCHOOLS,DC=bzpf,DC=lan
memberOf:
CN=internet,OU=Management,OU=default-school,OU=SCHOOLS,DC=bzpf,DC=lan
memberOf:
CN=intranet,OU=Management,OU=default-school,OU=SCHOOLS,DC=bzpf,DC=lan
memberOf:
CN=printing,OU=Management,OU=default-school,OU=SCHOOLS,DC=bzpf,DC=lan
memberOf: CN=role-student,OU=Groups,OU=GLOBAL,DC=bzpf,DC=lan
memberOf:
CN=webfilter,OU=Management,OU=default-school,OU=SCHOOLS,DC=bzpf,DC=lan

und bei einem Lehrer, der über die WebUI in die Klasse eingetragen ist:

memberOf:
CN=5d,OU=5d,OU=Students,OU=default-school,OU=SCHOOLS,DC=bzpf,DC=lan
memberOf:
CN=internet,OU=Management,OU=default-school,OU=SCHOOLS,DC=bzpf,DC=lan
memberOf:
CN=intranet,OU=Management,OU=default-school,OU=SCHOOLS,DC=bzpf,DC=lan
memberOf: CN=role-teacher,OU=Groups,OU=GLOBAL,DC=bzpf,DC=lan
memberOf:
CN=teachers,OU=Teachers,OU=default-school,OU=SCHOOLS,DC=bzpf,DC=lan

wenn du also memberOf ausliest, dann mußt du Leute in der Klasse
Eingeschrieben sind, aber auch der Gruppe: role-teacher oder teachers
angehören wieder raus killen (Verbieten).

Oder du findest einen anderen AD EIntrag mit der Klasse wo die
Eingeschriebenen Lehrer nicht drin auftauchen.
So habe ich das in moodle gemacht: ist aber über ein Jahr her …

LG

Holger

Hallo Holger,

Sehe ich auch so – so ganz will es aber trotzdem noch nicht.

Daran hatte ich auch gedacht, doch dann müsste man unter relution den Eintrag (cn=%v) gegen etwas anderes ersetzen. Hat das jemand so gemacht?

Viele Grüße,
Michael

Hallo Michael,

vermutlich geht das gar nicht. Über den Filter findest Du Gruppen, nicht Personen. Die Mitglieder werden später zusammengesucht. Und da sind die Lehrer Mitglieder der Gruppe, also werden sie gefunden.

Eventuell gibt es woanders im LDAP noch die „echten“ Klassen, im Moment kann ich leider nicht nachsehen.

Wenn es wirklich wichtig ist, kannst Du Dir vielleicht mit Projekten behelfen - also z. B. p_6a mit nur den SuS der 6a, dann würdest Du cn=p_%v im Filter verwenden.

Viele Grüße

Jörg

Hallo Jörg - wenn das so ist, müsste es ja bei allen Schulen, die relution mit der AD-Anbindung an den v7-Server verwenden, so aussehen wie bei uns?
Kann das jemand bestätigen? Oder läuft das bei Euch wie es sein soll?

Mir fiel vorhin noch etwas ein: die Classroom App von :apple: macht es anschließend richtig und zeigt NUR die Schüler einer Klasse. Dort sind die eingeschriebenen Lehrer nicht mehr sichtbar. Daher muss es offenbar irgendwie doch möglich sein :thinking: :interrobang:
Wenn man es daher als „relution Bug“ bezeichnet, könnte sich der Hersteller das ja mal ansehen … oder ist das defintiv keiner?

Viele Grüße,
Michael

Hallo Michael,

Mir fiel vorhin noch etwas ein: die /Classroom App/ von :apple: macht es
anschließend richtig und zeigt NUR die Schüler einer Klasse. Dort sind
die eingeschriebenen Lehrer nicht mehr sichtbar. Daher muss es offenbar
irgendwie doch möglich sein :thinking: :interrobang:

… du hast in der Classroom App genau die selbe LDAP Search Zeile
Benutzt wie in Relution?

Wenn man es daher als /„relution Bug“/ bezeichnet, könnte sich der
Hersteller das ja mal ansehen … oder ist das defintiv keiner?

was ist den daran bitte ein BUG, wenn du in Relution Deine LDAP
Searchzeile rein schreibst und die bringt das korrekte Raus
(memberOf=KLASSE). Der eingeschriebene Lehrer ist nun mal auch Mitglied
der Klasse … so ist das organisiert.
Du brauchst eine andere Gruppe in der der Lehrer eben nicht Mitglied ist.

LG

Holger

Ach so – das hätte ich dazu sagen müssen: So wie ich das sehe, greift die Apple-Classroom-App auf die Einstellungen der relution-App zurück! Für die Classroom-App mussten wir (soweit ich weiß) gar nichts mehr einstellen, da alles bereits im MDM erfolgt ist. Daher tauchen dort auch sofort alle Klassen mit allen Schülern (aber dieses Mal eben ohne die Lehrer!) auf.

Unter’m Strich ist es also imho so, dass die relution-App etwas anderes anzeigt als die Classroom-App (wobei ich das nicht mit 100%iger Sicherheit sagen kann, da die Einrichtung schon etwas her ist). Jedenfalls kam daher der Gedanke, dass es sich um einen Bug handeln könnte … aber solange sich hier niemand meldet, bei dem die relution-App alle Klassen korrekt anzeigt, ist es vermutlich müßig, weiter darüber zu philosophieren?

Viele Grüße,
Michael

Hallo Michael,

die Information über die Gruppenzugehörigkeit bzw. -zusammensetzung ist im LDAP mehrfach vorhanden. Einmal bei den Gruppen: Die haben Mitglieder (Attribute member oder sophomorixMembers) . Dann bei den Personen: Die sind Mitglieder von Gruppen (Attribut memberOf).

Nun kann eine Anwendung entweder den LDAP nach einer Gruppe durchsuchen und dann das member-Feld auswerten oder aber alle Personen heraussuchen und dann prüfen, ob sie einen passenden memberOf-Wert haben.

Im ersten Fall - und Relution macht das so - wird man bei einer Klasse immer auch die eingeschriebenen Lehrer bekommen. Filter nutzen hier nichts, denn sie schränken nur ein, welche Gruppen gefunden werden (in Deinem ersten Post: einmal alle Gruppen, einmal nur die Klassen und Projekte). Im zweiten Fall könnte man durch geschickte Filter die Lehrer herausfiltern.

Vermutlich werden die Lehrer in der Classroom App deshalb nicht angezeigt, weil die App die Lehrer ausblendet.

Nun gibt es bei Relution ja nicht nur Gruppen, sondern auch Klassen. Laut dieser Seite:

https://repo.relution.io/docs/4.78/relution-installguide/advanced_setup/ldap.html

kann man bei Relution auch Klassen aus dem LDAP importieren - hier kann man angeben, wie Relution zwischen Lehrern und Schülern unterscheidet. Was steht denn bei Dir bei den entsprechenden Parametern?

Beste Grüße

Jörg

Hallo Jörg,
danke für die Zusammenfassung. Die Seite auf der relution-HP kenne ich und bin beim Einschränken der User auch danach vorgegangen. In der Original-Datei stand bei uns

#user_searchFilterTemplate: '(&(sAMAccountName=%v)(objectClass=user))'

aber das habe ich etwas abgewandelt zu:

user_searchFilterTemplate: '(&(sAMAccountName=%v)(!(sophomorixAdminClass=attic))(|(sophomorixRole=student)(sophomorixRole=teacher)(sophomorixAdminClass=extraschueler)))'

Deshalb gibt es unter relution alle Klassen bereits … (wobei dort die eingechriebenen Lehrer natürlich auch mit angezeigt werden).

Falls Du aber die zusätzlichen Einstellungen meinst, die man laut der Webseite unter # Group mapping einstellen kann: Da steht bei uns nichts entsprechendes – sieht das bei Euch anders aus?

Warum die Classroom-App das im Gegensatz zur relution-App richtig zeigt, muss ja an so einer Einstellung liegen. Es wäre hilfreich, wenn die eingeschriebenen Lehrer in der relution-App verschwinden, denn sie gehören da wirklich nicht hin. Zudem kann es verwirrend sein, wenn in den Klassen Namen stehen, die man nicht erwartet. Außerdem ist es ja auch so, dass eben nicht alle Kollegen auftauchen sondern nur die, die das WebUI erfolgreich verwendet haben. Unter’m Strich: Das ist so nicht optimal.

Wenn Du einen guten Vorschlag hast, wie man das ändern kann, wäre ich jedenfalls dankbar.

Viele Grüße,
Michael

Hallo Michael,

weiter unten in der Anleitung geht es darum, Klassen aus dem LDAP zu importieren. Parameter sind sync_edu_objects, edu_class_search*, edu_teacher_seacrh*, edu_student_search*. Ist das vielleicht, was Du suchst? Mit diesen Parametern sollte man einfach zwischen Lehrern und Schülern unterscheiden können - hier werden Personen gesucht.

Viele Grüße

Jörg

Hallo Jörg,
möglich wäre das … es gibt diesbzgl aber scheinbar keine Erfahrungswerte, oder? Ich will da nicht auf gut Glück zu viel verändern – dafür ist mir das etwas zu heikel :thinking:

Dann scheinen ja alle Systeme, die relution mit dem v7-AD verbinden auf diese Weise betroffen zu sein!?

Ich sehe aber, was Du meinst. Das sieht schon vielversprechend aus:

    # Classes
    edu_class_searchBase: # OU that contains classes, relative to ldap_base
    edu_class_searchScope: 2
    edu_class_searchFilterTemplate: (objectClass=group)

    # Teachers
    edu_teacher_searchBase: # OU that contains teachers, relative to ldap_base
    edu_teacher_searchScope: 1
    edu_teacher_searchFilterTemplate: (&(objectClass=person)(memberOf=CN=...))
    edu_teacher_disableDefaultSystemGroupAssignment: false

    # Students
    edu_student_searchBase: # OU that contains students, relative to ldap_base
    edu_student_searchScope: 1
    edu_student_searchFilterTemplate: (objectClass=person)

Viele Grüße,
Michael