Single Sign-On

TU Graz - ZID: Single Sign-On (SSO)

Single Sign-On (SSO)

Anmeldung
Abmeldung
Service-Provider außerhalb des ZID

Aus Sicherheitsgründen (z. B. wegen Phishing) baut der Zentrale Informatikdienst für die zentralen webbasierten Systeme die Verwendung von Single Sign-On (ein Mal anmelden und in jedem verbundenen System identifiziert sein) bzw. Single Sign-In (für jedes System auf derselben - bekannten - Seite anmelden) laufend aus, die User sollten ihr Kennwort nur mehr an einer einzigen Stelle eingeben und sehr aufmerksam reagieren, wenn sie auf anderen Seiten zur Eingabe des Kennworts aufgefordert werden.
Obwohl uns auch die Risiken bewußt sind – so gibt es z. B. keine einheitliche Lösung für ein „Single Log-Out“ und die einzelnen Systeme können unterschiedlich lange gültige Sessions haben (d. h. in einem System bleibt man vielleicht 8 Stunden lang angemeldet und in einem anderen nur 2) – haben wir uns für diese Variante entschieden und im Endausbau soll es für zentrale Dienste – soweit technisch möglich – nur mehr diese Lösung geben, die auch für föderierte Dienste (z. B. die Bestellung von E-Mail-Zertifikaten, die Teilnahme an der ubook-Aktion oder die Anmeldung bei eduGAIN-Diensten zum Einsatz kommt.

Unsere zentralen Services werden die Sitzungen (sessions) für 9 Stunden offen lassen, erst danach wird ein neuerliches Anmelden erzwungen, andere Systeme können - wie oben erwänt - auch andere Zeiten setzen oder überhaupt eine Neu-Anmeldung (also Single Sign-In) erzwingen, das können wir zentral nicht beeinflussen.

Umgesetzt ist SSO mit Shibboleth (einer Erweiterung des SAML-Standards), wobei die Handy-Signatur integriert wurde, wodurch jedes angeschlossene System auch automatisch eine 2-Faktor-Authentifizierung bekommt, was die Sicherheit z. B. beim Einstieg über fremde bzw. unsichere Rechner deutlich erhöht.
Da man aber - wenn man in einem Tab angemeldet ist, in anderen Tabs - in alle SSO-Anwendungen einsteigen kann ohne sich anzumelden, wird dringend empfohlen eine der folgenden Maßnahmen zu treffen, wenn man den Rechner verläßt ohne ihn herunter zu fahren:

  • Bildschirmsperre (mit sicherem Kennwort) aktivieren.
  • Abmelden.
    Wenn man nicht sicher ist, ob die Abmeldung nur lokal erfolgt: logout.tugraz.at aufrufen (s. u.).
  • Browser schließen.

Anmeldung

Alle Web-Anwendungen werden wie bisher direkt aufgerufen – egal, ob sie in das SSO-System integriert sind oder nicht. Die SSO-Seite selbst muß also niemals direkt aufgerufen werden, die teilnehmenden Web-Anwendungen leiten bei Bedarf zur SSO-Seite um und diese – nach Überprüfung der Authentifizierung – wieder zur gewünschten Web-Anwendung zurück.
Anders ausgedrückt: Es gibt keine zentrale Anmelde-Seite, bei der Sie sich z. B. morgens anmelden. Erst wenn wirklich eine Authentifizierung notwendig ist, werden Sie dann statt zu einer Anmeldeseite im jeweiligen System zur SSO-Seite https://sso.tugraz.at/idp/Authn/GenericAuthn umgeleitet und nach erfolgter Anmeldung (bzw. wenn man schon angemeldet ist: sofort) wieder zum aufrufenden System zurück, dabei werden Sie noch gefragt, ob Sie einverstanden werden, daß die anfragende Seite die angefragten Informationen bekommmen darf.

Die Anwendung überprüft dann, ob Sie auch autorisiert sind, um die Anwendung zu verwenden.

Bei SSO ist (wenn Sie nicht die Handy-Signatur verwenden) immer das TUGRAZonline-Kennwort zu verwenden, nicht das Netzzugangskennwort!

Zentrale Systeme (noch) ohne SSO

(hellgrau … in Umsetzung)
  • sharepoint.tugraz.at - SharePoint (desktop.tugraz.at)
  • webmail.tugraz.at - Webmail (Studierende bzw. Alumni und Institute)
  • cloud.tugraz.at - private Cloud-Lösung der TU Graz
  • git.tugraz.at - das Git-System (Versionskontrolle) der TU Graz
  • svn.tugraz.at - das Subversion-System der TU Graz
  • adfs365.tugraz.at - die Anmeldeseite für Office 365 ProPlus

Abmeldung - Single Log-Out (SLO)

Obwohl es — außer dem Schließen des Browsers — keine garantierte Methode gibt um sich von allen Systemen abzumelden, bieten wir mit der Single Log-Out-Seite eine Möglichkeit sich bei allen registrierten Seiten innerhalb der TU Graz abzumelden. Diese Seite sollten Sie also immer dann aufrufen, wenn Sie sich auf einem Computer angemeldet haben, dessen Browser Sie nicht schließen können (z. B. in einem Internet-Café), allerdings raten wir davon ab, sich auf solchen Systemen anzumelden.

Im Gegensatz zur Sign-On-Seite (diese funktioniert nur, wenn Sie von einer anderen Seite dorthin umgeleitet werden) sollten Sie sich daher die Adresse der Log-Out-Seite logout.tugraz.at in den Favoriten abspeichern bzw. merken.

Sollten Sie bei einzelnen Services nicht sicher sein, ob das Single Log-Out funktioniert hat (z. B., weil in der Info nicht angezeigt wird, daß das funktioniert hat), dann sollten Sie das Service explizit aufrufen und falls notwendig dann dort die Log-Out-Möglichkeit nutzen.

Service-Provider außerhalb des ZID

Authentifizierung

Auch Institute der TU Graz können (und sollen) dieses Service nutzen und müssen damit keine eigene Benutzerverwaltung aufbauen.
Die Authentifizierung bzw. Identifierung erfolgt zentral über das IDM des ZID und überprüft im Prinzip nur, ob Username und Kennwort stimmen.

Autorisierung

Der Service-Provider (SP) entscheidet unabhängig vom ZID, ob er Single Sign-On oder nur Single Sign-In (also gleiche Zugangsdaten, aber mit erzwungener Re-Authentifizierung) anbieten möchte, wie lange eine Anmeldung gültig bleibt und welche User bzw. welche -gruppen (z. B. nur Mitarbeiter und Mitarbeiterinnen des Instituts) das Service nutzen dürfen.

Identifizierung

Über die Daten, die der Service-Provider (SP) vom Identity-Provider (IdP) bekommt, kann der Benutzer auch identifiziert werden und damit z. B. Formulare bereits mit Namen, E-Mail-Adressen etc. (vor)befüllt werden.
Die User werden aber (bei Systemen, die Sie nicht zwingend nutzen müssen, zumindest beim ersten Mal) gefragt, ob Sie damit einverstanden sind, daß der SP diese Daten von unserem IdP erhalten darf.

Die SSO-Lösung bildet dann zusammen mit dem IDM (TUGRAZonline und das damit verbundene Active Directory) und diesen Autorisierungen unsere AAI.

Wenn Sie ein Service mit SSO anbieten möchten, dann setzen Sie sich bitte mit uns in Verbindung. Wir brauchen dann zumindest eine Bezeichnung für Ihr Service, die Adresse Ihres Services (wir unterstützen nur https) und außerdem die Adresse, über die man sich bei Ihrem Service abmelden kann (für das Single Log-Out).

Beispiele für die Autorisierung in der httpd.conf des Apache

Jeder mit gültigem Acccount

 <Location /xyz>
  AuthType shibboleth
  ShibRequireSession On
  require valid-user
 </Location>

Alle Studierenden und Mitarbeiter

 <Location /xyz>
  AuthType shibboleth
  ShibRequireSession On
  <RequireAny>
   Require shib-attr STATUS ~ BEDIENSTETE:OK
   Require shib-attr STATUS ~ STUDENTEN:OK
  </RequireAny>
 </Location>

Bestimmte Usergruppen

 <Location /xyz>
  AuthType shibboleth
  ShibRequireSession On
  <RequireAll>
   Require shib-attr groupMembership "CN=…,…,OU=TUGRAZ,DC=tugraz,DC=local" "CN=…,…,OU=TUGRAZ,DC=tugraz,DC=local"
  </RequireAll>
 </Location>

Bestimmte User

 <Location /xyz>
  AuthType shibboleth
  ShibRequireSession On
  <RequireAll>
   Require shib-attr USERNAME user1 user2 … usern
  </RequireAll>
 </Location>

Beispiel für vorausgefüllte Formulare bei Verwendung der Handy-Signatur

Programme, die auf Umgebungsvariable zugreifen, können z. B. als CGI-Programme oder als SSI aufgerufen werden.

Im Beispiel wird in einem CSH-Programm abgefragt, ob die SSO-Anmeldung über die Bürgerkarte erfolgt ist und wenn ja, dann werden bestimmte Daten, die durch die Anmeldung bekannt sind (E-Mail-Adresse, Vor- und Nachname), dazu verwendet, um Formularfelder auszufüllen:

#!/bin/csh
…
env | grep Shib-Authentication-Method | grep "at:tugraz:zid:shibboleth:idp:ac:classes:Smartcard:MOA:AT"
if ($status != 0) then
 echo "Dieses Service dürfen Sie nur nach Authentifizierung per Handy-Signatur aufrufen!"
else
 env | grep EMAIL >& /dev/null
 if ($status == 0) then
  set vorname = `env | grep GIVENNAME | awk -F"=" '{print $2}' | tr -d '\n'`
  set nachname = `env | grep SURNAME | awk -F"=" '{print $2}' | tr -d '\n'`
  set realname = "$vorname $nachname"
 else
  set adresse = ""
  set realname = ""
 endif
 …
 echo ' Ihr Name:'
 echo ' <input type="text" name="realname" size=30 value="'$realname'">
 …
endif

Die Attribute shib-attr (USERNAME, groupMembership, STATUS, …) und die Umgebungsvariablen (EMAIL, GIVENNAME, …) sind dabei von der Shibboleth-Konfig-Datei attribute-map.xml abhängig, auch Shib-Authentication-Method ist eine Umgebungsvariable, die von Shibboleth gesetzt wird - bei Verwendung der Handy-Signatur in unserem Fall auf den Wert at:tugraz:zid:shibboleth:idp:ac:classes:Smartcard:MOA:AT