Single Sign-on: Shibboleth: Difference between revisions
(19 intermediate revisions by the same user not shown) | |||
Line 23: | Line 23: | ||
====Portal (Zentraler Sign-on Server)==== |
====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) |
Beispiele: Yahoo!, MSN(Passport), Central Authentication Servie (CAS) |
||
====Lokal==== |
====Lokal==== |
||
Lokales Programm, dass Loginmasken sofort mit dem richtigen Benutzernamen und dem richtigen Passwort automatisch ausfüllt. |
|||
Beispiele: Passwort-Manager, Microsoft's Identity Metasystem |
Beispiele: Passwort-Manager, Microsoft's Identity Metasystem |
||
====Ticketing-Systeme (Circle of Trust)==== |
====Ticketing-Systeme (Circle of Trust)==== |
||
Der eingeloggte Nutzer wird über ein virtuelles Ticket identifiziert. |
|||
Beispiele: Kerberos, Liberty Alliance Project |
Beispiele: Kerberos, Liberty Alliance Project |
||
Line 36: | Line 42: | ||
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 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=== |
||
Line 59: | Line 58: | ||
Im Folgenden sind einige ausgewählte Beispiele für Systeme, die Shibboleth verwenden oder Schnittstellen für Shibboleth anbieten, aufgelistet. |
Im Folgenden sind einige ausgewählte Beispiele für Systeme, die Shibboleth verwenden oder Schnittstellen für Shibboleth anbieten, aufgelistet. |
||
{| |
|||
|- |
|||
= |
|width="250"| '''Informationsanbieter''' |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
|- |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
... <br /> |
|||
| |
|||
Blackboard <br /> |
|||
* Moodle |
|||
Moodle <br /> |
|||
OLAT - Online Learning and Training <br /> |
|||
WebAssign <br /> |
|||
* WebCT |
|||
WebCT <br /> |
|||
* ... |
|||
...<br /> <br /> <br /> |
|||
| |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
Horde <br /> |
|||
⚫ | |||
⚫ | |||
* Horde |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
|} |
|||
* ... |
|||
===Anforderungen und Spezifikationen=== |
===Anforderungen und Spezifikationen=== |
||
Line 98: | Line 97: | ||
====Szenario==== |
====Szenario==== |
||
Ein Nutzer möchte auf eine von Sbibboleth geschützte Ressource zugreifen und muss sich dazu erst authentifizieren. |
Ein Nutzer möchte auf eine von Sbibboleth geschützte Ressource zugreifen und muss sich dazu erst authentifizieren. |
||
⚫ | |||
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') |
* Discovery service: www.wayf.ex (aka. WAYF - 'Where Are You From') |
||
⚫ | |||
Über die Loginseite seiner Heimatorganisation kann sich der Nutzer authentifizieren. |
|||
⚫ | |||
====Der Nutzer verbindet sich mit der Ressource und wird zum Discovery Service umgeleitet==== |
====Der Nutzer verbindet sich mit der Ressource und wird zum Discovery Service umgeleitet==== |
||
Line 108: | Line 110: | ||
(b) Der Nutzer wird zu dem Discovery Service weitergeleitet: |
(b) Der Nutzer wird zu dem Discovery Service weitergeleitet: |
||
Wenn der Nutzer versucht auf die Resource zuzugreifen, erkennt der Webserver, dass |
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. |
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==== |
|||
====Authentisierung, Attribute-Statement und Zugriff==== |
|||
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==== |
|||
=== |
===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== |
==Quellen== |
Latest revision as of 20:02, 18 April 2010
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 |
Blackboard |
DokuWiki |
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