Manager
Beschreibung Connect Manager
Der Connect Manager ist zuständig zur korrekten Einrichtung eines Connect-Jobs eines Kunden. Um einen solchen Connect-Job auszuführen, wird ein eigener Pod in Kubernetes pro Kunde benötigt. Im Kubernetes Dashboard könnnen Connect-Jobs definiert werden. Damit ein Job fehlerfrei durchlaufen kann, benötigt es eine Job-Definition. Diese besteht aus den folgenden Informationen:
-
Name
-
Realm
-
Cron String (VisualCron)
-
docker-imager (gleiche Version bei allen)
-
Timeout
-
Secrets
-
Kundennummer + Realm
-
SSH-Relay keys
-
GRPC (Goole Remote Procedure Call) wird verschlüsselt
-
-
SQLdb enthält die Login-Informationen der jewieligen Datenbank, auf die zugegriffen wird.
Der Connect-Manager geht die einzelnen Job-Definitionen durch und lässt diese laufen.
Beschreibung Updatefunktionen
Die Updatefunktionen werden dazu verwendet, die Tabellen, welche für Connect verwendet werden, zu aktualisieren, so dass die Tabelle die Soll-Struktur im AD vorgibt.
Updatefunktion Benutzer
Zuerst werden die Konfigurationen der Studenten aus Scolaris als Variablen gespeichert, so dass diese Konfiguration anschliessend auf die Studenten übertragen werden kann. Zusätzlich dazu werden die Studenten markiert, welche zukünftig gelöscht werden sollten. Die Bedingung, die zur Löschung verwendet wird lautet wie folgt:WHERE UserConfigType = 'S' AND Students.StudentID IS NULL AND UserConfigDelete IS NULL AND UserConfigIsGeneric = 0
Im Anschluss wird der gesamte Vorgang für das Personal wiederholt
Beschreibung Validierungsfunktion
Dieser Abschnitt beschreibt die verwendete Funktion „connect_validate“. Die Validierungsfunktion kontrolliert die Benutzer- und Gruppendatensätze auf deren Vollständigkeit und weist bei fehlenden Attributen einen Fehlertyp (Integer) zu. Nachfolgend wird eine Tabelle mit den entsprechenden Fehlertypen und deren Bedeutung aufgeführt. Bei jeder Validierung werden zu Beginn die Fehlertypen der Benutzer und Gruppen auf NULL gesetzt, so dass
Benutzervalidierung
Fehlertyp | Bedeutung | SQL Bedingung |
---|---|---|
1 | Kein Mandant wurde ausgewählt | MainConnectUser.UserConfigMandantChosen IS NULL AND MainConnectUser.UserWarning IS NULL |
2 | UserConfigMandant ist nicht Teil des Mandanten | (POWER(2, UserConfigMandantChosen -1 ) & Mandant ) = 0 AND MainConnectUser.UserWarning IS NULL |
3 | Der zugewiesene Mandant ist nicht konfiguriert | MainConnectUser.UserConfigMandantChosen NOT IN (SELECT MandantNummer FORM TblConnectConfigMandant) AND UserWarning is NULL |
4 | Das Attribut UserConfigDNFIrstElem ist nicht eindeutig | MainConnectUser.UserConfigDNFirstElem IN (select UserConfigDNFirstElem FROM MainConnectUser GROUP BY UserConfigDNFirstElem HAVING COUNT (*)>1) |
5 | UserPrincipalName ist nicht vorhanden | MainConnectUser.UserUserPrincipalName IS NULL |
6 | UserSAMAccountName ist nicht vorhanden | MainConnectUser.UserSAMAccountName IS NULL |
7 | Die zugewiesene E-Mail Adresse ist ungültig | CASE WHEN UserMail LIKE '[a-z,0-9,_,-]%@[a-z,0-9,_,-]%.[a-z][a-z]%' AND UserMail NOT LIKE '%@%@%' AND CHARINDEX('.@',UserMail) = 0 AND CHARINDEX('..',UserMail) = 0 AND HARINDEX(',',UserMail) = 0 AND CHARINDEX(' ',UserMail) = 0 AND RIGHT(UserMail, 1) BETWEEN 'a' AND 'z' THEN 1 ELSE 0 END = 0 |
8 | Der Mandant ist nicht vorhanden | WHERE MainConnectUser.Mandant IS NULL |
9 | MailAlias ungültig | CASE WHEN UserAlias(1-5) LIKE '[a-z,0-9,_,-]%@[a-z,0-9,_,-]%.[a-z][a-z]%' AND UserMail NOT LIKE '%@%@%' AND CHARINDEX('.@',UserMail) = 0 AND |
Gruppenvalidierung
Fehlertyp | Bedeutung | SQL Bedingung |
---|---|---|
1 | Kein Mandant wurde ausgewählt | MainConnectGroup.GroupConfigMandantChosen IS NULL AND MainConnectGroup.GroupWarning IS NULL |
2 | GroupConfigMandant ist nicht Teil des Mandanten | (POWER(2, GroupConfigMandantChosen -1 ) & Mandant ) = 0 AND MainConnectGroup.GroupWarning IS NULL AND GroupConfigMandantChosen != 0 |
3 | Der zugewiesene Mandant ist nicht konfiguriert | MainConnectGroup.GroupConfigMandantChosen NOT IN (SELECT MandantNummer FORM TblConnectConfigMandant) AND GroupWarning is NULL AND GroupConfigMandantChosen != 0 |
4 | Das Attribut GroupConfigDNFIrstElem ist nicht eindeutig | MainConnectGroup.GroupConfigDNFirstElem IN (select GroupConfigDNFirstElem FROM MainConnectGroup GROUP BY GroupConfigDNFirstElem HAVING COUNT (*)>1) |
8 | Der Mandant ist nicht vorhanden | WHERE MainConnectGroup.Mandant IS NULL |
Beschreibung Migrationsfunktion
Die Funktion „sp_ConnectMigrateUser“ übernimmt GUID und Aliasse von TblConnectMigration nach MainConnectUser. Zuerst wird überprüft, ob der Datensatz einen Usertyp (Migrationstyp) hat. In einem weiteren Verlauf werden alle Daten aus TblConnectMigration ausgelesen, welche anschliessend in die MainConnectUser Tabelle übertragen werden. Dabei werden folgende Attribute verwendet:
MainConnectUser | TblConnectMigration |
---|---|
UserObjectGUID | UserGUID |
UserMailAlias1 | Alias1 |
UserMailAlias2 | Alias2 |
UserMailAlias3 | Alias3 |
UserMailAlias4 | Alias4 |
UserMailAlias5 | Alias5 |