Single Sign-on: Shibboleth: Difference between revisions

From
Jump to navigation Jump to search
 
(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.
{|

|-
====Informationsanbieter====
|width="250"| '''Informationsanbieter'''

|width="250"| '''Learning Management Systems'''
* American Chemical Society
|width="250"| '''Andere Systeme'''
* Elsevier ScienceDirect
|-
* H.W. Wilson
|American Chemical Society <br />
* National Science Digital Library (NSDL)
Elsevier ScienceDirect <br />
* Online Computer Library Center (OCLC)
H.W. Wilson <br />
* Schweizerisches Bundesgericht
National Science Digital Library (NSDL) <br />
* ...
Online Computer Library Center (OCLC) <br />

Schweizerisches Bundesgericht<br />
====Learning Management Systems====
... <br />

|
* Blackboard
Blackboard <br />
* Moodle
Moodle <br />
* OLAT - Online Learning and Training
OLAT - Online Learning and Training <br />
* WebAssign
WebAssign <br />
* WebCT
WebCT <br />
* ...
...<br /> <br /> <br />

|
====Andere Systeme====
DokuWiki <br />

Google Apps/Email <br />
* DokuWiki
GridShib <br />
* Google Apps/Email
Horde <br />
* GridShib
Microsoft <br />
* Horde
Napster <br />
* Microsoft
WordPress <br />
* Napster
...
* WordPress
|}
* ...


===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.
* Ressource: www.resource.ex


Der Discovery Service stellt eine Web-Seite mit einer Liste aller Heimat-Organisationen zur Verfügung.
* Ressource: www.resource.ex
* Discovery service: www.wayf.ex (aka. WAYF - 'Where Are You From')
* Discovery service: www.wayf.ex (aka. WAYF - 'Where Are You From')

* Home organization login: www.uni.ex
Ü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====
====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 er noch keine Shibboleth-Session hergestellt hat. Daher wird zum Discovery Service umgeleitet.
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====


===Single Logout===
===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
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