Shibboleth
Agenda• Shibboleth?• Single-Sign-On• SAML & Co.• Shibboleth
Eigenschaften Architektur & Komponenten Implementierungen Kommunikation Sicherheitsaspekte / Vor- & Nachteile Vergleich & Ausblick
• Zusammenfassung
„Shibboleth“• Bedeutet wörtlich aus dem hebräischen „Getreideähre“
• Ein Wort, Klang oder Gegenstand, welcher von einer nicht vertrauten Person nicht ausgesprochen oder verstanden (verwendet) werden kann
• Im WWII wurde das Wort <lollapaloza> als Shibboleth gegen nicht identifizierte Personen verwendet (Kennwort)
„Shibboleth“• Verfahren zur verteilten
Authentifizierung (Nachweis) Autorisierung (Zustimmung) von Webanwendungen und Services
Web Single-Sign-On – kennen wir alle
Single-Sign-On• Einmalige Authentifizierung für mehrere Dienste• Beschränkt auf einen lokalen „Zugriffspunkt“, z.B. Arbeitsplatz bzw. Organisation
• Vorteile Komfortabel für End Nutzer Leichte Integration Bessere Sicherheit?
• Wichtige Begriffe Web Browser SAML IdP SP WAYF EntityID Metadata Attributes
Single-Sign-On• Verschiedene Typen
Security Assertion Markup Lang.• XML Framework zum Austausch von
Authentifizierung- und Autorisierungsinformationen Verteilte Transaktionen
• Von OASIS entwickelt (2001)• Aktuell Version 2.0• Kern-Eigenschaften
Open Source Robust Sicher Standard
Security Assertion Markup Lang.• Anwendungsfälle
Web Single- Sign-On Attributbasierte Autorisierung Verbessern der Sicherheit von Web Services (vor allem SOAP)
Security Assertion Markup Lang.• Komponenten
SAML Assertion (Aussagen) SAML Protokoll SAML Bindings SAML Profile
• Sicherheit TLS 1.0+ XML Signaturen & XML Encryption
SAML: Assertion• Assertion-Typen
Authentication Statements Attribute Statements Authorization Decision Statements
• Inhalte Issuer Signature Subject Conditions AuthnStatement AttributeStatement
SAML: Assertion• Bsp. Assertion codiert im Prinzip folgende Informationen
The assertion ("b07b804c-7c29-ea16-7300-4f3d6f7928ac") was issued at time "2004-12-05T09:22:05Z" by identity provider (https://idp.example.org/SAML2) regarding subject (3f7b3dcf-1674-4ecd-92c8-1544f346baf8) exclusively for service provider (https://sp.example.com/SAML2).
SAML: Protokoll• Protokolle
Assertion Query and Request Protocol Authentication Request Protocol Artifact Resolution Protocol Name Identifier Management Protocol Single Log-out Protocol Name Identifier Mapping Protocol
• ARP-Beispiel
SAML: Bindings• Bindings
SAML SOAP Binding Reverse SOAP Binding HTTP Redirect Binding HTTP Post Binding HTTP Artifact Binding SAML URI Binding
• HTTP Redirect Binding https://idp.example.org/SAML2/SSO/Redirect?
SAMLRequest=fZFfa8IwFMXfBb9DyXvaJtZ1BqsURRC2bbw95ivc5Am3TJrXPffmmLY3%2FA15Pzuyf33On8XJXBCaxTRmeEhTEJQBdmr%2FRbRp63K3pL5rPhYOpkVdYb%2FCon%2BC9AYfDQRB4WDvRvWWksVoY6ZQTWlbgBBZik9%2FfCR7GorYGTWFK8pu6DknnwKL%2FWEetlxmR8sBHbHJDWZqOKGdsRJM0kfQAjCUJ43KX8s78ctnIz%2Blp5xpYa4dSo1fjOKGM03i8jSeCMzGevHa2%2FBK5MNo1FdgN2JMqPLmHc0b6WTmiVbsGoTf5qv66Zq2t60x0wXZ2RKydiCJXh3CWVV1CWJgqanfl0%2Bin8xutxYOvZL18NKUqPlvZR5el%2BVhYkAgZQdsA6fWVsZXE63W2itrTQ2cVaKV2CjSSqL1v9P%2FAXv4C
SAML: Profile• Profile
SSO Name Identifier Mapping Artifact Resolution SAML Attribute Profile Assertion Query / Request Profile …
Security Assertion Markup Lang.
Service Provider (SP)• Partei, welche den zu nutzenden Dienst bereitstellt• Besitzt (normalerweise) die zu schützenden Ressourcen
Identity Provider (IdP)• Autorisierung Dienst• „Service Provider“ der Identität Profile speichert und Autorisierungs-
Dienst für andere Provider anbietet• Beispiele
Zusammenspiel (einfach)• Vor Autorisierung
• Nach Autorisierung
Shibboleth• Implementierung von SAML
Web Single Sign On „Föderativ“ Konfigurierbarer Austausch von Attributen
• Entwickelt von Internet2/MACE Middleware Architecture Committee for Education non-profit Michigan, USA 500 Mitglieder aus Bildung, Industrie und Forschung
• Erster Release im Jahr 2003• Aktuelle Version: 3.0.0 (2014-12-22)
Shibboleth•“A system for the secure exchange of interoperable authorization information which can be used in access control decisions ”
Shibboleth: Attributes• Informationen (über den Nutzer), die vom Identity Provider
bereitgestellt werden• Informationen (Auszug)
Mail Adresse Telefonnummer Gruppe Rolle Spezifische Privilegien
Shibboleth: Attributes• Konfiguriert in einer attribute-map.xml• Welche Daten mit welchen SP geteilt werden, ist konfigurierbar
“attribute filter policies”
• Beispiel
Shibboleth: Metadata• Grundlage für SAML• Legt fest, wie SP und IdP miteinander kommunizieren• „Konfigurationsdaten“ (XML)• Beschreibt technische Eigenschaften der SPs und IdPs
Enthält die EntityID Lesbaren Namen und Beschreibung URL Mapping
Legt fest, welche Nachrichten an welche URL geschickt werden sollen Legt Sicherheitsmechanismen zum Erstellen und Verifizieren von Nachrichten
fest
Shibboleth: Metadata• Beispiel
Shibboleth: EntityID• URI zum Identifizieren von Applikation und Diensten über mehrere
„Federations“• URI
urn:oasis:names:tc:SAML:2.0:nameid-format:entity
Shibboleth: Architektur• Entspricht dem Standard SSO
Shibboleth: Kommunikation
Discovery Service (WAYF)• Lokalisierungsdienst ist optional• Ziel: „den Nutzer zum IdP schicken“
Shibboleth: Federations• Gruppe von IdP‘s und SP‘s die eine gemeinsame „Regeln“ haben• Wird nicht verpflichtend benötigt• Vereinfacht aber das Zusammenspiel• i.d.R eine „große Datei“ mit allen Metadaten• Wichtiges Merkmal von Shibboleth
Shibboleth: Philosophie & „Goals“• „adherence to standards”• Grenzen einer Organisation überschreiten (Federations)• Kontrolle der Nutzerinformationen
Welche Informationen sind für wenn sichtbar
• Möglichst „Statuslos“ (stateless)
Implementierte Profile & Protokolle
Technik & Systemanforderungen• Shibboleth Service Provider
Web Server Module Unterstützt werden
Apache HTTPD IIS Java System Web Server (Sun)
• Shibboleth Identity Provider Java Web Application Container
Apache Tomcat Mortbay Jetty Jboss
Existierenden Authentifizierung Prozess
Shibboleth Service Provider (SP)• Sessions• Metadata• Attr. Zugriffskontrolle• Komponenten
SHIRE SHAR RM
SP: Metadata• Beispiel
SP: SHIRE• Shibboleth Indexical Reference Establisher
Keine Nutzerinformationen Keine Homepage des Nutzers
• Zuständig für Kontext und Session Initialisierung• Akzeptiert und Validiert Assertion• Interagiert mit WAYF• … oder ist selbst WAYF
Joe surfs the web
UniversityResource Provider
HTTP server
http:www.coolResource.com
SHAR
Attribute Authority
SHIRE
Handle Service
WAYF
#1
#2#3a
AuthenticationSystem
#3b
#3
SP: SHAR• Shibboleth Attribute Requestor• Regelt Zugriff auf die Attribute• Benötigt ein „Handle“ von SHIRE
Joe surfs the web
Joe: Student; English Major
Mary: Faculty; BioChem;...
Sue: staff; IT dept.;...……
UniversityResource Provider
HTTP serverhttp:www.coolResource.com
SHARAttribute Query
(AQM)
Attribute Res ponse(ARM)
Shared Resource
Attribute AuthorityOther Shibboleth
Stuff
SP: SHAR & SHIRE
Joe surfs the web
UniversityResource Provider
HTTP server
http:www.coolResource.com
SHAR
SHIRE
Handle Service
WAYF
#1
#2Attribute Authority
#3
#4
Handle
Attributes
SP: Ressource Manager• Zu schützender Bereich• Akzeptiert Attribute von SHAR• Vergleicht eingehende Attribute mit den Policies
Erlaubt oder verneint Zugriff
SP: Setup1. Shibboleth Package installieren2. Konfigurationen
1. Shibboleth2.xml 2. Attribute-map.xml3. IdP Metadaten importieren
3. Server Konfiguration anpassen1. Security2. Routing3. Rollen
SP: Config• shibboleth2.xml
SP: Config• attribute-map.xml
Shibboleth Identity Provider• „Vertrauenswürdige Parteien“• Sessions• Metadata• Attribute• Komponenten
„Runtime“ AA HS
IdP: Metadata• Beispiel
IdP: Attribute Authority• Erhält Attribut Anfragen von SHAR und gibt Attribute zurück• Prüft, welche Attribute zugreifbar sind• Management Komponente der Zugriffsregeln• Arbeitet wie eine „Datenbank“• Unterschiedliche Regeln für unterschiedliche Ziele und Nutzer
IdP: Handle Server• Regelt die eigentliche Authentifizierung (AA)• Interagiert mit SHIRE des SP• Speichert ein Mapping der „Handles“ zu den Nutzern
IdP: Setup1. Vorbereitung
1. SSL aufsetzen2. SAML Metadaten der SPs sammeln3. Servlet Container aufsetzten
2. IdP Package installieren3. Automatisch werden erstellt
1. IdP EntityID2. Schlüsselpaar und selbstsigniertes Zertifikat (nicht für HTTP
Kommunikation)3. Initiale IdP Metadaten4. Basiskonfigurationsdateien
Big Picture
Big Picture
Praxis: HAW Landshut• „StudiSoft Portal“
SP ist HAW Würzburg IdP ist HAW LA
Praxis: Kommunikation
Praxis: Kommunikation
Praxis: Kommunikation
Praxis: Kommunikation
Praxis: Kommunikation
Praxis: Kommunikation
Praxis: Kommunikation
Praxis: Kommunikation
Praxis: Kommunikation
Praxis: Kommunikation
Praxis: Kommunikation
Praxis: Kommunikation
Praxis: Bereits Autorisiert
Praxis: Bereits Autorisiert
Warum Shibboleth• Robusteste Implementierung• Getestet & Geprüft• Open Source• Einfach• Große Community• Erweiterbarkeit
Sicherheitsaspekte• Session Handling• „Trust Management“• SAML Metadata Problem
Vulnerability Matrix (IdP)
Vulnerability Matrix (SP)
„Kenntnisse“• Technisch
Root Access NTP
• IdP Java (Professional) LDAP Verständnis von SSL, Netzwerk, HTTP und Web-Application im Allgemeinen
• SP Standard OS Verständnis XML und Public Key Kryptographie Verständnis Verständnis von Web Authentifizierung Verständnis von Server Konfiguration
Vorteil• Für End Anwender
Zeitersparnis Muss sich nur ein Passwort merken
• Für Administratoren Sicherheitsgewinn
Passwort wird nur einmal übertragen Phishing wird erschwert (nur an einer Stelle möglich)
Beim Entfernen oder Aktualisierungen muss nur ein Konto betrachtet werden
• „Federations“
Nachteile (Bezug zu SSO)• Bei gestohlener Identität stehen alle Systeme für den Angreifer offen• Akzeptanz der Nutzer nötig• Verfügbarkeit eines Services hängt von zwei Systemen ab (selbst +
SSO)• Sign-off ist oft nicht implementiert• Der SSO Anbieter kann den Verlauf verfolgen• Bei Fehlern im Workflow (oder Benutzerfehleingaben) ist der Nutzer
auf allen Systemen gesperrt• Keine wirkliche Unterstützung von Non-Web/HTTP Protokollen• „Vulnerability Matrix“
Vergleich zu …• OAuth
OAuth für Autorisierung (Zugriff auf Nutzerdaten erlauben) Shibboleth Autorisierung und Authentifizierung (Focus auf Authentifizierung) OAuth ist weniger „standardisiert“ und „offener“ Shibboleth definiert Protokoll und Token Format (OAuth nur Protokoll) „Federations“ nur in SAML/Shibboleth
• OpenID Beide für Authentifizierung Technische Unterschiede bei Authentifizierung Zugriff auf Nutzerdaten unterschiedlich Shibboleth benötigt zwingende Verbindung („Trust“) zwischen SP und IdP, im
Gegensatz zu OpenID Daten in OpenID stammen nicht immer von einem IdP, sondern vom Nutzer
selbst
Vergleich zu …• PKI
Shibboleth benutzt PKI für “Trust Model” Zum “Turst Model”
Shibboleth: collaborative (fexibel, schnell, Privatsphäre) PKI: legal (bindend, hierarchisch, formal)
PKI primär für Identitätsprüfung Shibboleth für Autorisierung PKI kann Shibboleth für Autorisierung nutzen
Aussicht• SP Modul für IIS 7+• Updates
Cache Alternatives IdP Features Java SP
• OpenId Connect Integration• Dokumentation
Zusammenfassung• SSO?• SAML?• Shibboleth?• Funktionsweise?• Vorteile?• Nachteile?
Live Demo• https://www.switch.ch/aai/demo/
Vielen Dank für Ihre Aufmerksamkeithttps://shibboleth.net/
https://wiki.shibboleth.net
https://www.switch.ch/aai/demo/expert/
https://en.wikipedia.org/wiki/SAML_2.0
http://planet.jboss.org/post/saml_behind_the_wheel
https://dev.e-taxonomy.eu/trac/wiki/ShibbolethProtocol