Single Sign-on: Shibboleth
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)
Beispiele: Yahoo!, MSN(Passport), Central Authentication Servie (CAS)
Lokal
Beispiele: Passwort-Manager, Microsoft's Identity Metasystem
Ticketing-Systeme (Circle of Trust)
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)
Shibboleth als Begriff
Shibboleth (deutsch: Schibboleth) stammt von dem hebräischen Wort "shibbólet". Es bedeutet eigentlich wörtlich "Getreideähre", wird aber im Sinne von "Code" oder "Kennwort" verwendet. Shibboleth bezeichnet somit eine sprachliche Besonderheit, durch die man eine Person einer bestimmten sozialen oder regionalen Gruppe zuordnen kann. Fremde, also nicht Zugehörige können auf diese Art entlarvt werden, wie auch durch folgenden Text aus dem Alten Testament (Buch der Richter 12, 5-6) deutlich wird:
"Und die Gileaditer nahmen ein die Furten des Jordans vor Ephraim. Wenn nun die Flüchtigen Ephraims sprachen: Laß mich hinübergehen! so sprachen die Männer von Gilead zu ihm: Bist du ein Ephraimiter? Wenn er dann antwortete: Nein! hießen sie ihn sprechen: Schiboleth; so sprach er: Siboleth und konnte es nicht recht reden; alsdann griffen sie ihn und schlugen ihn an den Furten des Jordans, daß zu der Zeit von Ephraim fielen 42000."
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
- American Chemical Society
- Elsevier ScienceDirect
- H.W. Wilson
- National Science Digital Library (NSDL)
- Online Computer Library Center (OCLC)
- Schweizerisches Bundesgericht
- ...
Learning Management Systems
- Blackboard
- Moodle
- OLAT - Online Learning and Training
- WebAssign
- WebCT
- ...
Andere Systeme
- 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
- Discovery service: www.wayf.ex (aka. WAYF - 'Where Are You From')
- 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 er noch keine Shibboleth-Session hergestellt hat. Daher wird 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. 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 diese über den Web-Browser des Nutzers zu der Heimatorganisation. Die Heimatorganisation wertet den Authentication Request aus und antwortet mit der Loginseite.
Zusammenfassung
Single Logout
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