Tags:
create new tag
, view all tags

Was ist nethz?

Geschichte

Der Name nethz stammt ursprünglich von der Domänenbezeichnung n.ethz.ch, unter welcher seit fast 15 Jahren (und auch heute noch) alle Studenten-Webs zu finden sind. Für Mitarbeiter gab es zu Beginn der 2000er Jahre auch noch m.ethz.ch, diese URL wurde später aufgehoben. Unter n.ethz.ch baute vor 14 Jahren Thedi Gerber (von dem auch das heutige IDES stammt) eine Applikation mit dem Namen «n.ethz Admin-Tool». Es sollte unter anderem für den damals neuen Exchange-Server automatisch Mailbox-Kontos einrichten, primär für die Studierenden. Daneben wurde ein Radius-Server und das AFS (ein damals sehr fortschrittliches Filesystem) bedient. Der Aufbau des grundlegenden Datenbank-Gerüstes sowie die Einbindung des Exchange-Servers war Anfangs 2000 meine erste Aufgabe. In der Folge wurde das Admin-Tool massiv aus- und umgebaut und steuert heute alle an der ETH relevanten Authentisierungs- und Autorisierungssysteme. Aus dem einfachen Konto-Verwaltungstool wurde das erfolgreiche Identity-Management-System «nethz», welches bis heute Bestand hat.

Was sind die Kernaufgaben von nethz?

Die Hauptaufgabe von nethz ist das Lifecycle-Management von elektronischen Identitäten. Das bedeutet, dass z.B. bei Semesterbeginn über 2000 neue Usernamen automatisch generiert werden. Diesen Usernamen werden automatisiert sog. Services zugewiesen, typischerweise ein AD-Account mit Mailbox und einem VPN-Zugang. Einige Departemente haben ihre spezifischen Konfigurationen der Services in der nethz-DB deponiert. Somit muss trotz der Heterogenität der ETH möglichst wenig Handarbeit verrichtet werden. Nach dem Einrichten der Services werden die Personen werden schriftlich über ihr neues nethz-Konto informiert. Im Laufe der ETH-Beziehung werden die Services immer wieder angepasst, erweitert oder abgebaut.

Beim Austritt einer Person aus der ETH werden die erteilten Services und Berechtigungen Schritt für Schritt abgebaut. Einige Services wie Mail bleiben noch ein halbes Jahr lang aktiv, andere (wie VPN) werden bereits früher abgebaut. Der Benutzer wird über die Sperrung und Löschung von Services frühzeitig informiert. Benutzer werden manchmal in Gäste umgewandelt, weil sie noch etwas länger an der ETH arbeiten. Andere bekommen einen Mailforward, damit sie auch an ihrer neuen Arbeitsstelle weiterhin auch über ihre alte Mailadresse erreichbar sind. Pensionierte können auf Wunsch ihre Mailbox ebenfalls weiterhin benutzen.

Nach dem Löschen aller Services bleibt der Username noch einige Jahre bestehen. Beim späteren Wiedereintritt in die ETH können diese Personen mit ihrem gewohnten Usernamen weiterarbeiten.

Im Identity-Management-Jargon erfüllt das nethz-System folgende Aufgaben:

  • Identity-Management
  • Service-Management
  • Access-Management

Das Identity-Management beinhaltet primär die Aufgabe, Kontos (User-Accounts) auf den Zielsystemen zu verwalten. Beim Eintritt einer Person (=Entität) an der ETH wird automatisiert ein Username (=Identität) generiert und dieser in Form von User-Accounts auf den verschiedenen Zielsystemen eingerichtet. Eine Person kann dabei möglicherweise mehrere Usernamen haben. Beim Austritt werden diese Kontos in geordneter Art und Weise wieder abgebaut. Beispiele:

  • AAI/Shibboleth-Account
  • Active Directory-Account
  • IDES-Account
  • Virtual Private Network-Account
  • Zugang zum Intranet (CQ5-Account)

Eine andere wichtige Aufgabe ist es, personenbezogene Angaben (Familienname, Anrede/Titel, Adresse, Telefon, E-Mail-Adresse) auf den Zielsystemen aktuell zu halten. Beispiele:

  • Adressbuch im GAL (Global Address List, Outlook)
  • Büro- und Privatadressen im Bibliothekssystem ALEPH
  • Whitepage-LDAP

Das Service-Management hat wiederum zur Aufgabe, die verschiedenen an der ETH angebotenen elektronischen Dienstleistungen zur Verfügung zu Stellen, beispielsweise in Form eines Self-Service. Solche Diensleistungen können manchmal kostenpflichtig sein. Beispiele für Service-Management:

  • Credit-Service (ein elektronisches Prepaid-Konto)
  • MySQL-Service (Online-Datenbank)
  • Lync-Service (Instant Messaging)
  • Polybox-Service (DropBox Äquivalent)
  • Retired-Service (Mailbox-Service für ehemalige Mitarbeiter)

Das Access-Management (Autorisierungs-Management) schliesslich beinhaltet die nicht unwesentliche Aufgabe, den Zugang zu Ressourcen zu regeln. In vielen Fällen wird dies in Form von Zuweisungen eines Users zu Berechtigten-Gruppen geregelt.

  • Admin-Gruppen (Verwaltung der Kontos)
  • Netsup-Gruppen (Netzwerk-Support)
  • Realm (Zugang zu einer bestimmten Netzwerkzone)

In der Realität sind Identity-, Service- und Access-Management nicht sehr klar voneinander abgegrenzt. Vielmehr bedeutet ein Account auf einer bestimmten Maschine oft gleichzeitig auch eine Zugangsberechtigung. Beispielsweise bekommt man mit einem AD-Account automatisch Zugang zum Adressbuch der ETH und zahlreichen anderen Informationen. Verschiedene Dienstleister testen nur das Vorhandensein eines gültigen Accounts (Authentisierung) und machen keine Autorisierung.

In nethz ist aus den genannten Gründen generell von «Services» die Rede, auch wenn im Hintergrund je nach Situation mal ein Account angelegt, mal eine Berechtigung freigeschaltet wird.

PDB - die Stammdatenquelle für nethz

Die Personendatenbank (PDB, auch Operatives Informationssystem OIS genannt) stellt die wichtigste Datenquelle für nethz dar. Sie stellt die Stammdaten für die relevanten Prozesse im Identity-Management bereit. Die wichtigsten Stammdaten sind:

  • Personendaten
  • Immatrikulationen und Einschreibungen
  • Mitarbeiter-Anstellungen
  • Dozenten-Perioden
  • ETH-nahe, ETH-Gäste
  • Organisationseinheiten und -struktur
  • Büro- und Privatadressen

Die nethz-DB und PDB sind über einen Datenbanklink miteinander verbunden. Diese Daten werden regelmässig in die nethz-DB kopiert, dabei werden werden die Differenzen registriert, die für nethz von besonderem Interesse sind:

  • Start der Immatrikulationen und Ende derselben (Exmatrikulationen)
  • Anstellungsstart und -Ende
  • Dozentenperiode (Start und Ende)
  • Gastperiode (Start und Ende)
  • ETH-nahe (Start und Ende)
  • Änderungen an Organisationseinheiten und -strukur
  • Änderungen an Studiengängen
  • Änderungen an Adressen

Änderungen an diesen Stammdaten sind in einer so grossen Organisation wie der ETH sehr zahlreich und der Hauptgrund, weshalb es so etwas wie ein Identity-Management-System überhaupt gibt. Zahlreiche Zielsysteme werden durch das System «nethz» automatisiert jederzeit auf dem aktuellesten Stand gehalten.

Zielsysteme

Die Systeme, welche von nethz aktuell gehalten werden, sind zahlreich und von unterschiedlicher Komplexität.

  • Active Directory (AD)
    • Directory-Server von Microsoft
    • in nethz durch den Mailbox-Service prominent vertreten
    • eines der wichtigsten Authentisierungs- und Autorisierungssysteme der ETH
  • LDAPS / AAI
    • ein Directory-Server von OpenLDAP
    • wird in nethz durch den nethz-Service repräsentiert
    • eines der wichtigsten Authentisierungs- und Autorisierungssysteme der ETH
  • Radius (Authentisierung und Autorisierung), durch die nethz-Services VPN und iPass vertreten
  • Open Directory (Mac-Service), wird vom D-ARCH einigen anderen Departementen intensiv genutzt
  • Adobe CQ5
    • Content Management System mit Directory-artiger Struktur
    • durch CQ5-Service repräsentiert
  • IDES
    • Software- und Lizenzen-Management System
    • Eigenentwicklung
  • NETng
    • Netzwerkzugriff (Network New Generation), Authentisierung via 802.1x
    • in nethz gepflegte «Realms»- sowie «Netsupport»-Gruppen werden synchronisiert
    • durch den VPN-Service repräsentiert (Authentisierung via Radius)
  • ALEPH
    • in die Jahre gekommenes Bibliotheks-Informationssystem der ETH-Bibliothek
    • wird durch keinen spezifischen nethz-Service repräsentiert
    • die Art der Beziehung einer Person zur ETH ist relevant

wie die Informationen der PDB in nethz weiterverarbeitet werden

Aus den Informationen, die aus der PDB stammen werden in nethz diverse Objekte erstellt. Die wichtigsten sind folgende:

  • Personen («identities»)
  • Usernamen (sog. «principals»)
  • Gruppen (ebenfalls principals)

Personen
Ereignisse wie Immatrikulation, Anstellung, Dozentenperiode-Start etc. führen dazu, dass in nethz entsprechende Personen-Objekte erstellt werden. Personen werden nach dem ersten Erscheinen stets aktualisiert und in der Regel nie gelöscht. Ausnahmen sind z.B. fehlerhafte, doppelte Einträge.

Username
Die nethz Usernamen werden automatisch aus Vor- und Nachname der Person gewürfelt. Aufgrund der Tatsache, dass das gewisse Zielsysteme (wie das AD) nicht exklusiv von nethz verwaltet werden, muss bei diesem Vorgang sichergestellt werden, dass keine Konflikte mit Zielsystemen auftreten. Eine Person kann grundsätzlich mehrere Usernamen haben, aber nur jeweils ein Username ist der primäre Username.

Gruppen
In nethz werden zahlreiche Gruppen automatisiert erstellt. Die Grundlage für diese Gruppen bilden:

  • die Zuteilung einer Person zu einer Organisationseinheit (Leitzahl) bei Anstellungen, Dozentenperioden, ETH-nahen und ETH-Gästen
  • die Einschreibung in einen Studiengang (Studierende)
  • die verschiedenen Beziehungen zur ETH (Alle ETH-Angehörige)

Der primäre User jeder Person wird einer oder mehreren Gruppen automatisiert zugewiesen. So wird beispielsweise der primäre Username eines Mitarbeitenden zu einer Leitzahl-Gruppe zugewiesen. Diese Leitzahlgruppe wird wiederum ihrer übergeordneten Totalisierungsleizahl-Gruppe zugeteilt. Änderungen an der Organisationsstruktur und den Organisationseinheiten werden laufend übernommen.

Im Admin-Tool kommen eigens definierte Gruppen hinzu. Diese können nach Belieben mit bereits bestehenden Gruppen gemischt werden.

Für die verschiedenen Zielsysteme müssen alle diese aufbereiteten Daten oft nochmals angepasst werden. Beispiele:

  • gewisse Zeichen für Gruppennamen sind nicht erlaubt
  • die Feldlänge eines bestimmten Attributes ist beschränkt
  • die Telefonnummer muss in einem bestimmten Format sein
  • Gruppenstruktur im Zielsystem ist flach, nicht hierarchisch organisiert

wie ist nethz organisatorisch und technisch aufgebaut?

Synchronisation der Stammdaten
Die Datenhaltung in nethz basiert auf einer Oracle-Datenbank. Datenbank-Links zur Stammdatenbank PDB regeln den Zugriff auf verschiedene Views. Über 25 regelmässige laufende Datenbank-Prozeduren (DBMS-Jobs, in PL/SQL geschrieben) synchronisieren die Stammdaten und zeichnen die Änderungen auf.

Automatisiertes Einrichten und Abbauen der Kontos und Berechtigungen
Aufgrund von Personenkategorie oder Leitzahlzugehörigkeit werden für jede Person auf verschiedenen Systemen Kontos und Berechtigungen eingerichtet (nethz Services). Die Implementierung dieser Services ist in Perl (demnächst Version 5.16.3), die Kommunikation mit den Systemen erfolgt über verschiedene Schnittstellen. Die bekanntesten sind:

  • SSH
  • LDAP
  • Webservice
  • Datenbank-Schnittstelle

Die Synchronisation mit den Systemen erfolgt bei manuellen Änderungen (Passwort setzen, Service erteilen, Gruppen erstellen und ändern) jeweils sofort. Alle übrigen Synchronisationsprozesse erfolgen periodisch (mindestens 1x pro Tag) durch cronjobs.

Die Synchronisation insbesondere der Gruppen ist ein hochkomplexer Vorgang. Nicht alle Gruppen sind auf allen Zielsystemen vorhanden, ebenso bekommt ein Gruppenmitglied nicht automatisch auch einen Account, auch wenn die Gruppe im Zielsystem vorhanden ist. Gleichzeitig dürfen Gruppen beliebig ineinander «verschachtelt» werden. Ein ausgeklügeltes Trigger-System auf der Datenbank (wiederum in PL/SQL geschrieben) hält deshalb alle Änderungen fest:

  • User stösst zu einer Gruppe hinzu oder geht weg
  • Untergruppe wird hinzugefügt oder entfernt
  • User oder Gruppe wird umbenannt
  • User bekommt einen Service und erscheint neu im Zielsystem

Die Änderungen werden von den bereits erwähnten cronjobs regelmässig abgearbeitet.

Administration
Für administrative Eingriffe in das System gibt es folgende webbasierte Tools:

Etwa 60 verschiede Administrationsgruppen kümmern sich um die ca. 30 000 Angehörige der ETH. Departements-Admingruppen verwalten alle Mitarbeiter, Dozenten und Studierende ihres jeweiligen Departements. In einigen Fällen gibt es Departementsübergreifende Admingruppen. Jede Admingruppe verwaltet sich in der Regel selber, d.h. einer Admingruppe werden die Grundprivilegien erteilt, danach können sog. «Bosse» dieser Admingruppe weitere Admins ernennen. Die Verwaltungs-Hauptaufgaben der Administratoren sind:

  • Services erteilen und einstellen (soweit dies nicht automatisiert geschieht und die User dies nicht selber dürfen)
  • Gäste und ihre Services
  • spezielle Kontos (Kursaccounts, technische Kontos)
  • Berechtigungs-Gruppen
  • Mailverteiler
  • externe Kontakte

Für alle diese Aufgaben stehen spezialisierte Tools zur Verfügung.

-- SwenVermeul - 2013-12-03

Topic revision: r3 - 2014-01-06 - vermeul
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback