Single Sign-on: Shibboleth

From
Revision as of 20:02, 18 April 2010 by Eweber (talk | contribs) (→‎Anwendungen und Dienste)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Single Sign-on

Was ist Single Sign-on?

Single Sign-on befasst sich mit der Zugangskontrolle von mehreren, unabhängigen Software-Systemen. Anders gesagt, der Anwender muss sich über Single Sign-on nur einmal anmelden und erhält sofort Zugang zu allen Systemen. Dementsprechend steht Single Sign-out für das gleichzeitige Ausloggen aus diesen Systemen.

Vor- und Nachteile

Vorteile:

  • Es wird ein einheitlicher Authentisierungsmechanismus verwendet.
  • Der Anwender muss sich nur ein Passwort und einen Login-Namen merken.
  • Es kann ein komplexeres, sicheres Passwort gewählt werden.
  • Die Kosten reduzieren sich, da Wartungsarbeiten einfacher durchzuführen sind.

Nachteile:

  • Der Single Sign-on-Mechanismus kann zum Single Point of Failure werden. Das heißt bei z.B. Sicherheits- oder Daten-Übertragungsproblemen wird der Zugang zu allen beteiligten Systemen im schlimmsten Fall unmöglich, bzw. unsicher.
  • Die Anwender-Daten werden zentral gespeichert. (Datenschutz)
  • Ein Identity-Provider kann speichern welche Dienste der Anwender wann benutzt hat. (Data Tracking)

Konzepte

Portal (Zentraler Sign-on Server)

Der Nutzer loggt sich auf einem Portal ein und wird dort authentifiziert und autorisiert.

Beispiele: Yahoo!, MSN(Passport), Central Authentication Servie (CAS)

Lokal

Lokales Programm, dass Loginmasken sofort mit dem richtigen Benutzernamen und dem richtigen Passwort automatisch ausfüllt.

Beispiele: Passwort-Manager, Microsoft's Identity Metasystem

Ticketing-Systeme (Circle of Trust)

Der eingeloggte Nutzer wird über ein virtuelles Ticket identifiziert.

Beispiele: Kerberos, Liberty Alliance Project

Shibboleth

Allgemeines

Shibboleth ist ein auf Standards basierendes, Open-Source Software-Packet für Web Single Sing-on. Es ist unter der Apache Software License herausgegeben worden. Shibboleth implementiert die OASIS' Security Assertion Markup Language (SAML). Weiterhin enthält Shibboleth eine erweiterte Funktionalität, die es dem Browser-Anwender und der Heimat-Organisation erlaubt die Attribute zu kontrollieren, die jeder Anwendung freigegeben werden. (Attribute-Based Access Control)

Föderationen

Föderationen sind Zusammenschlüsse von in Beziehung stehenden Organisationen, wie zum Beispiel, Universitäten, Bibliotheken oder anderen Informationsanbietern.

  • Universitäten, Unternehmen und Regierungsbehörden
  • DFN-AAI (Deutschland)
  • InCommon (US)
  • SWITCHaai (Schweiz)
  • The UK federation (Großbritannien)
  • Federation Education-Recherche (Frankreich)
  • ...

Anwendungen und Dienste

Im Folgenden sind einige ausgewählte Beispiele für Systeme, die Shibboleth verwenden oder Schnittstellen für Shibboleth anbieten, aufgelistet.

Informationsanbieter Learning Management Systems Andere Systeme
American Chemical Society

Elsevier ScienceDirect
H.W. Wilson
National Science Digital Library (NSDL)
Online Computer Library Center (OCLC)
Schweizerisches Bundesgericht
...

Blackboard
Moodle
OLAT - Online Learning and Training
WebAssign
WebCT
...


DokuWiki
Google Apps/Email
GridShib
Horde
Microsoft
Napster
WordPress
...

Anforderungen und Spezifikationen

Der Identity Provider (IdP) wurde in Java geschrieben und der Service Provider (SP) läuft mit Apache, dem Internet Locator Server (IIS) oder dem Netscape Server Application Programming Interface (NSAPI). Außerdem kann er auf Java und anderen Web Servern abgebildet werden. Es wird u.a. das SAML 2.0 Web Browser SSO Profile, Cardspace, das Shibboleth Profile, SAML 1.1, LDAP, sowie Kerberos unterstützt. Die Client-Software muss für die Verwendung von Shibboleth nicht modifiziert werden.

Login-Prozedur

Szenario

Ein Nutzer möchte auf eine von Sbibboleth geschützte Ressource zugreifen und muss sich dazu erst authentifizieren.

  • Ressource: www.resource.ex

Der Discovery Service stellt eine Web-Seite mit einer Liste aller Heimat-Organisationen zur Verfügung.

  • Discovery service: www.wayf.ex (aka. WAYF - 'Where Are You From')

Über die Loginseite seiner Heimatorganisation kann sich der Nutzer authentifizieren.

  • Heimat-Organisation (Home organization) Login: www.uni.ex

Der Nutzer verbindet sich mit der Ressource und wird zum Discovery Service umgeleitet

(a) Dem Nutzer wird sofort der Zugang zu der Ressource gewährt: Wenn der Nutzer schon eine gültige Shibboleth-Session hat, bekommt er direkten Zugang. Dies kann der Fall sein, wenn er sich früher schon einmal authentifiziert hat.

(b) Der Nutzer wird zu dem Discovery Service weitergeleitet: Wenn der Nutzer versucht auf die Resource zuzugreifen, erkennt der Webserver, dass noch keine Shibboleth-Session erstellt wurde. Daher wird er zum Discovery Service umgeleitet. Nach der Umleitung sendet der Discovery Service dem Web-Browser des Nutzers eine Web-Seite mit einer Liste aller Heimat-Organisationen, die verfügbar sind.

Authentication Request

Der Nutzer überträgt seine Auswahl der Heimat-Organisation und der Discovery Service antwortet mit einer Umleitung zum Session-Initiator der Resource.

Der Session-Initiator erstellt einen Authentication Request für die gewählte Heimatorganisation und überträgt diesen über den Web-Browser des Nutzers zu der Heimatorganisation.

Die Heimatorganisation wertet den Authentication Request aus und antwortet mit der Loginseite.

Authentifizierung und Zugriff

Neben dem Login-Namen und dem Passwort können auch andere Formen der Identifizierung genutzt werden. Zum Beispiel, könnte man biometrische Authentifizierungsmethoden oder eine Chip-Karte für die Authentifizierung verwenden, vorausgesetzt diese erweiterten Authentifizierungsmethoden werden von der Heimat-Organisation zur Verfügung gestellt.

Der Nutzer übergibt seine Identifizierungsdaten der Heimat-Organisation. Die Daten werden Überprüft und eine Assertion, die die Nutzer-Attribute enthält, wird entsprechend der Attribut-Filter-Regeln erstellt.

Diese Assertion wird dann über den Nutzer-Browser zur Ressource übertragen. Mit Hilfe der Nutzer-Attribute kann die Ressource die Autorisierungschecks durchführen. Wenn die Autorisierung erfolgreich ist, wird der Nutzer zur Seite der Ressource umgeleitet, die er zu Beginn angefragt hatte.

Zusammenfassung

Shibboleth kann in bestimmten Anwendungsfällen, wie im Umfeld von Umiversitäten und Bibliotheken, von Nutzen sein. Die Installierung und das Konfiguren von Shibboleth ist allerdings ziemlich aufwendig. Dafür ist ein einmal installiertes System im Gegenzug relativ leicht zu warten. Ein weiterer wichtiger Punkt, der bedacht werden will, ist, dass die Teilnehmer sich auf für alle verbindliche Richtlinien einigen müssen. Zentral für das Funktionieren von Shibboleth und Single-Sign-On im Allgemeinen ist aber vor allem das vorhandene Vertrauen in den Identity Provider.

Quellen

Single Sign-on

  • [1]: Wikipedia-Artikel über Single Sign-on
  • [2] Rummeyer, Oliver; Düsterhaus, Jörg (2006): SSO frei Haus: Einfache Lösungen zur Implementierung von Single Sign-on (SSO)
  • [3] Bruce Sams (2008): Single-Sign-On-Systeme

Shibboleth

  • [4]: Shibboleth-Homepage
  • [5]: Shibboleth-Demo des Schweizer Wissenschaftsnetzwerks SWITCH
  • [6]: Beschreibung der Schwierigkeiten mit Single Logout in der Shibboleth-Dokumentation
  • [7]: Single Logout Lösung des ungarischen National Information Infrastructure Developement Institute (NIIF)
  • [8]: Wikipedia-Artikel über die Bedeutung des Wortes Shibboleth