Zentraler Informatikdienst der TU Wien
> Zum Inhalt

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:

  1. das Institut
  2. die Bezeichnung der Anwendung
  3. die verantwortliche Kontaktperson
  4. der URL des Services (immer https !)
  5. ob die OID oder die Matrikelnummer als userID verwendet werden soll
  6. ob der clientHostName mitgeschickt werden soll (empfohlen)
  7. 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.