ZID Authentifizierungsservice
Um das TU-Passwort zur Anmeldung bei verschiedenen Services einsetzen zu können, dürfen die Passworte der Benutzer den einzelnen Servicebetreibern nicht bekannt werden. Eine Klartextübertragung ist selbstverständlich auch zu vermeiden. Für Web-Anwendungen wird daher ein Authentifizierungsserver bereitgestellt, der den Benutzer nach erfolgreicher Authentifizierung mit einem "Redirect", das einen Sessionkey enthält, zum jeweiligen Anwendungsserver weiterleitet.
Der Benutzer kann wählen, ob der Adressmanager sein TU-Passwort setzen kann. Standardeinstellung ist, dieses zu erlauben.
Über das Authentifizierungsportal wird Single Sign-On und Single Sign-Off angeboten.
Aus Anlass der u:book-Aktion wurde auch ein SAML2 IdP in Betrieb genommen.
Aufruf
Bei Single Sign-On lautet der URL
https://iu.zid.tuwien.ac.at/AuthServ.authenticate?app=n
Wenn SSO nicht verwendet werden soll, muss ein eigenes Anmeldeformular bereitgestellt werden.
Antwort
Der Redirect-URL hat die Form:
- https://host/path?sKey=sessionKey&user=userID
Um den Sessionkey zu bilden werden die Elemente userID, timeStamp, clientHostName und appServerSecret zusammengehängt und der SHA-1 Hash gebildet (als 40 Zeichen Hex-String formatiert).
- userID
Entweder die ObjectID oder die Matrikelnummer. - timeStamp
Die Zeit in Sekunden seit 1.1.1970 0:0:0 UTC (Unix time), ganzzahlig dividiert durch 10. Die Division vermindert die Anforderungen an die Synchronisation der Server. - clientHostName
Der DNS Name des Rechners des Benutzers in Kleinschreibung. - appServerSecret
Ein gemeinsames Geheimnis zwischen dem Authentifizierungsserver und dem jeweiligen Anwendungsserver.
Der Anwendungsserver bildet ebenfalls den Hash und vergleicht mit dem übergebenen Sessionkey. Dabei ist zu berücksichtigen, daß die Uhren der Server u.U. nicht perfekt synchronisiert sind und daher beim timeStamp auch Werte vor und nach der aktuellen Zeit probiert werden müssen. Bei Rechnern ohne gültigen DNS Eintrag wird als Name "nil" benutzt.
Da manche Provider Inkonsistenzen im Nameservice haben, kann optional ein Parameter host=clientHostName mitgeschickt werden. Es obliegt dann dem Anwendungsserver zu entscheiden, ob eine Authentifizierung mit widersprüchlichen Namen des Klienten akzeptiert wird.
Beispiele in PHP, Perl und Java.
Attribute
Neben der userID können einige weitere Attribute übertragen werden.
Fehlerbehandlung
Kann der Benutzer nicht ermittelt werden wird ein Redirect der Form
https://host/path?error=user zurückgegeben.
Ist das Passwort falsch ist die Redirect-Antwort
https://host/path?error=password&user=userID.
Ein allfälliges param Feld in der Anfrage wird ebenfalls mitgeschickt.
Verfügbarkeit
Es wird eine Verfügbarkeit von besser als 99,9% während der üblichen Dienstzeiten, 99% außerhalb, angestrebt.
Anmeldung
Um eine Anwendungsnummer und das zugehörige Geheimnis zu erhalten, sind dem ZID folgende Daten zu melden:
- das Institut
- die Bezeichnung der Anwendung
- die verantwortliche Kontaktperson
- der URL des Services (immer https !)
- ob die OID oder die Matrikelnummer als userID verwendet werden soll
- ob der clientHostName mitgeschickt werden soll (empfohlen)
- welche weiteren Attribute benötigt werden
Die Konfigurationsdaten können dann über https://iu.zid.tuwien.ac.at/AuthServ.clientSetup abgefragt werden. Die SSO Einstellungen können von der verantwortlichen Kontaktperson selbst im Authentifizierungsportal vorgenommen werden.
Zentraler Informatikdienst der TU Wien


