Installation, Konfiguration und Dateiformat

2. Installation, Konfiguration und Dateiformat#

2.1. Installation#

Die Installation muss auf dem Primary Directory Node stattfinden:

$ univention-install ucs-school-umc-import

2.2. Konfiguration#

Das Setzen der Univention Configuration Registry-Variablen ucsschool/import/error/mail-address ist wichtig, damit Anwender beim Auftreten eines Fehlers, eine E-Mail an den Administrator schicken können, indem sie auf den oben beschriebenen Link klicken.

$ ucr set ucsschool/import/error/mail-address=admin@ihre-schule.de

Technisch basiert der grafische Benutzer-Import auf Komponenten der Software die im Handbuch Import-Schnittstelle beschrieben sind. Ihre Konfiguration erfolgt über JSON-Dateien, die im Verzeichnis /var/lib/ucs-school-import/configs abgelegt werden. Im Ausgangszustand sind die Konfigurationsdateien leer:

{}

Um den grafischen Benutzer-Import zu aktivieren, muss eine Konfiguration in die JSON-Dateien eingefügt werden, die den Kriterien des jeweiligen Anwendungsfalls entspricht.

Das Verzeichnis /usr/share/ucs-school-import/configs/ enthält Beispielkonfigurationen im JSON-Format. Für einen Testlauf in Abschnitt Datenformat kann der Inhalt der JSON-Datei /usr/share/ucs-school-import/configs/ucs-school-testuser-http-import.json in eine der bereits angelegten JSON-Dateien im Verzeichnis /var/lib/ucs-school-import/configs kopiert werden:

$ cp /usr/share/ucs-school-import/configs/ucs-school-testuser-http-import.json \
  /var/lib/ucs-school-import/configs/user_import.json

Diese Konfiguration ist auf das Format des Beispieldatensatzes angepasst, der mit Hilfe des Skripts in Datenformat erzeugt wird. Für weitere Informationen zum JSON-Konfigurationsformat sei auf das Kapitel JSON-Konfigurationsformat verwiesen.

Das Sicherheitskonzept ermöglicht es Benutzern Rechte zu erteilen, um Importe nur an bestimmten Schulen und nur für bestimmte Benutzertypen durchzuführen, sowie die Ergebnisse dieser Import-Jobs einzusehen. Während der Installation wurde für jede Schule eine Gruppe $OU-import-all erstellt. An diesen Gruppen wurde die Option UCS@school Import-Berechtigungen aktiviert. In der UMC können für diese Gruppen auf der Karteikarte UCS@school Import-Berechtigungen festgelegt werden.

Eine Import-Berechtigung setzt sich zusammen aus einer Liste von Schulen (standardmäßig nur die Schule für die die Gruppe erzeugt wurde) und einer Liste von Benutzertypen (Rollen). Alle Benutzer, die Mitglieder dieser Gruppe sind, können Imports für die aufgelisteten Benutzertypen an den aufgelisteten Schulen durchführen. Verschachtelte Gruppen werden nicht unterstützt.

Sollen zusätzlich zu den automatisch erzeugten Gruppen neue angelegt werden, so muss an diesen zum einen die Option UCS@school Import-Berechtigungen aktiviert, und zum anderen die UMC-Richtlinie cn=schoolimport-all,cn=UMC,cn=policies,$LDAP_BASE zugewiesen werden.

Alle an einem Import-Job beteiligten, und von ihm erzeugten, Dateien finden sich unter /var/lib/ucs-school-import/jobs/$JAHR/$JOB-ID/: Konfigurationsdateien, Hooks, Logdateien, CSV-Dateien (Eingabedaten, Passwörter neuer Benutzer, Zusammenfassung).

Bemerkung

Sollte auf dem Primary Directory Node ein SSL-Zertifikat mit abweichenden FQDNs verwendet werden, wird beim Öffnen des UMC-Moduls Benutzerimport eine Fehlermeldung auftauchen, da der lokale Rechnername nicht mit den Rechnernamen im SSL-Zertifikat übereinstimmt. In diesem Fall muss die UCR-Variable ucsschool/import/http_api/client/server entsprechend auf den/einen Rechnernamen (FQDN) des SSL-Zertifikats gesetzt werden.

Zusätzlich sollte die UCR-Variable ucsschool/import/http_api/ALLOWED_HOSTS den lokalen FQDN sowie den im SSL-Zertifikat verwendeten FQDN enthalten.

Nach dem Setzen der beiden UCR-Variablen müssen einige Dienste neu gestartet werden:

$ systemctl restart ucs-school-import-http-api ucs-school-import-celery-worker

2.3. Datenformat#

Das Format der CSV-Datei ist anpassbar. Generell gilt aber folgendes:

  • Die erste Zeile führt die Bezeichner der Spalten auf. Zum Beispiel:

    "Schule","Vorname","Nachname","Klassen","Beschreibung","Telefon","EMail"
    
  • Daten in Spalten sind in doppelten Anführungszeichen eingeschlossen.

  • Die Spalten sind durch Komma voneinander getrennt.

  • Es muss jeweils eine Spalte für die primäre Schule eines Benutzers, seinen Vor- und Nachnamen geben.

  • Mehrere Klassennamen werden durch Komma, ohne Freizeichen, getrennt aufgezählt (z.B. 1a,2b,3c). Klassennamen dürfen, aber brauchen nicht, den Namen der Schule (mit einem Bindestrich verbunden) vorangestellt haben (z.B. Scholl-1a,Scholl-2b,Scholl-3c). Wird der Name der Schule vorangestellt, muss dies der gleiche Wert sein wie in der Spalte für die Schule.

Vorsicht

Für die Aufbereitung der Daten ist es besonders wichtig darauf zu achten, dass Benutzern in der Rolle Schüler immer eine Schulklasse zugewiesen ist. Benutzerkontodaten werden an anderen Stellen weiter verarbeitet.

Wenn die Angabe für die Schulklasse eines Schülers fehlt, kann die Weiterverarbeitung gestört werden.

Detaillierte Informationen wie sich Benutzerkonten UCS@school von UCS unterschieden, finden sich im KB 15630 - Knowledge Base Artikel „How a UCS@school user should look like“.

Beispieldaten für Testläufe können mit Hilfe eines Skripts erzeugt werden:

$ /usr/share/ucs-school-import/scripts/ucs-school-testuser-import \
  --httpapi \
  --students 20 \
  --classes 2 \
  --create-email-addresses \
  SchuleEins

Die Optionen für ucs-school-testuser-import haben folgende Bedeutungen:

--httpapi#

Erzeugt das Format passend zu user_import_http-api.json.

--students#

Gibt die Anzahl der Benutzer an. Alternativ können die Optionen --staff, --teachers, oder --staffteachers verwendet werden.

--classes#

Gibt die Anzahl der zu erzeugenden Klassen an.

--create-email-addresses#

Gibt an, ob E-Mailadressen für die Benutzer erzeugt werden sollen.

SchuleEins

Das Argument gibt die Schule über ihre OU an, für die Daten importiert werden sollen.

Die erzeugte Datei heißt test_users_$DATUM_$UHRZEIT.csv und passt zur Konfiguration in /usr/share/ucs-school-import/configs/ucs-school-testuser-http-import.json.

Eine solche Datei sieht z.B. so aus:

"Schule","Vorname","Nachname","Klassen","Beschreibung","Telefon","EMail"
"SchuleEins","Jeanne","Oberbockstruck","1a","A student.","+24-165-622645","jeannem.oberbockstruck@example.de"
"SchuleEins","Jehanne","Obergöker","1b","A student.","+16-456-810331","jehannem.mobergoeker@example.de"
"SchuleEins","Çetin","Schrage","1a","A student.","+93-982-722661","cetinm.schrage@example.de"
"SchuleEins","Zwenna","Schomaker","1b","A student.","+39-504-246300","zwennam.schomakerm@example.de"