Integrierter Shibboleth Identity Provider g y auf Basis verteilter ...
Integrierter Shibboleth Identity Provider g y auf Basis verteilter ...
Integrierter Shibboleth Identity Provider g y auf Basis verteilter ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong><br />
<strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten<br />
Sebastian Labitzke, Michael Simon, Jochen Dinger<br />
sebastian.labitzke@kit.edu<br />
Steinbuch Centre for Computing (SCC) und<br />
Institut für Telematik, Dezentrale Systeme und Netzdienste, Prof. Dr. Hannes Hartenstein<br />
STEINBUCH CENTRE FOR COMPUTING - SCC<br />
KIT – Universität des Landes Baden-Württemberg und<br />
nationales Forschungszentrum in der Helmholtz-Gemeinschaft<br />
www.kit.edu
Agenda<br />
Motivation<br />
Bestehende Lösungsansätze<br />
Authentifikationsmodule<br />
JaaS Dispatcher Module<br />
Extended Login Handler<br />
Integrierte Attributprovisionierung<br />
Attribut<strong>auf</strong>bereitung in dedizierter Datenbasis<br />
Bewertung<br />
<strong>Shibboleth</strong> Integration am Karlsruhe Institute of Technology (KIT)<br />
Fazit<br />
2 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Motivation für die Anpassung des <strong>Shibboleth</strong> IdP<br />
<strong>Identity</strong><br />
AAI<br />
Discovery <strong>Provider</strong><br />
Service<br />
OE 1 OE 2 OE n<br />
<strong>Identity</strong> <strong>Identity</strong> <strong>Identity</strong><br />
<strong>Provider</strong> IdM<br />
BV<br />
<strong>Provider</strong> <strong>Provider</strong><br />
<strong>Identity</strong><br />
<strong>Identity</strong><br />
<strong>Identity</strong><br />
Mgmt.<br />
Mgmt.<br />
Mgmt.<br />
Organisation 1<br />
Organisation 2 Organisation 3<br />
Organisation 2<br />
3 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Bestehende Lösungsansätze (1)<br />
Standard Authentifikation mit Username/Password Login Handler (U/P)<br />
JaaS: Java Authentication and Authorization Service<br />
<strong>Identity</strong><br />
<strong>Provider</strong><br />
U/P<br />
Login<br />
Handler<br />
username<br />
password<br />
JaaS<br />
JaaS<br />
JaaS<br />
(+) Verschiedene JaaS Module bereits vorhanden<br />
(+) Eigene JaaS Module implementierbar<br />
(--) Sequentielle Abarbeitung ggf. hohe Latenz für Authentifikation<br />
(--) Keine Unterstützung der Attributlieferung<br />
4 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Bestehende Lösungsansätze (2)<br />
Servlet-Filter<br />
Pre-processing des Authentifikationsvorgangs<br />
Bsp: myLogin (Universitätsbibliothek Freiburg)<br />
Zusätzliche Auswahl der Authentifikationsquelle<br />
nach Auswahl der Heimateinrichtung beim Discovery Service<br />
(+) Nutzer kann frei die Authentifikationsquelle auswählen<br />
(z.B. bei diversen Nutzerkonten)<br />
(--) Weitere Systeminteraktion durch Nutzer vor Authentifikation<br />
(--) Auswahl schwierig, wenn zum Account zugehörige Quelle nicht bekannt<br />
Proprietäre <strong>Shibboleth</strong> Login Handler<br />
Eingriff in den <strong>Shibboleth</strong> Code<br />
(--)) Updatesicherheit h it nicht gewährleistet<br />
t<br />
(--) Aufwändige Implementierung<br />
Meta-/Virtual-Directory<br />
(+) Einzige Schnittstelle für den IdP zur Authentifikation und Attributlieferung<br />
(+) Geringer Aufwand, wenn bereits ein solches Directory existiert<br />
(--) Aufwand für Betrieb und Wartung, wenn Einsatz exklusiv für <strong>Shibboleth</strong><br />
( ) g,<br />
5 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Agenda<br />
Motivation<br />
Bestehende Lösungsansätze<br />
Authentifikationsmodule<br />
JaaS Dispatcher Module<br />
Extended Login Handler<br />
Integrierte Attributprovisionierung<br />
Attribut<strong>auf</strong>bereitung in dedizierter Datenbasis<br />
Bewertung<br />
<strong>Shibboleth</strong> Integration am Karlsruhe Institute of Technology (KIT)<br />
Fazit<br />
6 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Anforderungen für Authentifikation<br />
Flexibilität, Geschwindigkeit und Nutzerkomfort<br />
Wahrung der Autonomie von Organisationseinheiten bezüglich Ihrer Nutzerkonten<br />
(z.B. Sperrung von Konten oder Rechteentzug ohne zusätzliche Mechanismen)<br />
Zugriff <strong>auf</strong> verteilte Identitätsdaten mit minimaler Latenz beim Nutzerlogin<br />
Keine Replikation von Passwörtern in <strong>Shibboleth</strong>-spezifische Datenbanken<br />
(Risiko ik beim Transferieren, technisch h oft nur <strong>auf</strong>wändig umsetzbar)<br />
Ein IdP, der alle abzudeckenden Nutzergruppen authentifizieren kann<br />
Automatisierte, konfigurierbare Identifikation der zum Nutzer gehörigen Quelle<br />
Einbezug der Nutzer IP-Adresse in die Authentifikationsentscheidung tifik ti t h id (optional)<br />
7 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Authentifikationsmodule (JaaS Dispatcher Module)<br />
<strong>Identity</strong><br />
<strong>Provider</strong><br />
Login<br />
Handler<br />
username<br />
password<br />
JaaS<br />
JaaS<br />
Dispatcher<br />
JaaS<br />
JaaS<br />
JaaS<br />
Direkte Auswahl des passendes JaaS Moduls<br />
Auswahl des JaaS Moduls über reguläre Ausdrücke<br />
Keine sequentielle Abarbeitung konfigurierter Authentifikationsschnittstellen<br />
Keine erhöhte Latenz durch „Fehlauthentifikationen“<br />
JaaS Dispatcher ist ebenfalls ein JaaS Modul<br />
Konfiguration des Moduls in login.config<br />
Kein Eingriff in <strong>Shibboleth</strong>-Code<br />
8 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Authentifikationsmodule (JaaS Dispatcher Module)<br />
Einfache Installation<br />
Kopieren der JaaSDispatcher.jar in .war-Datei des IdP (WEB-INF/lib)<br />
Anpassung der Datei login.config<br />
login.config (Beispiel):<br />
ShibUserPassAuth {<br />
edu.kit...jaas.handler.Dispatcher sufficient<br />
regExp.0=".*@kit.edu"<br />
jaasContext.0="mail.kit.edu"<br />
regExp.1="[a-zA-Z]{2}[0-9]{4}“ jaasContext.1="sam.kit.edu"<br />
edu"<br />
regExp.2="[0-9]{8}"<br />
jaasContext.2="bib.kit.edu"<br />
;<br />
};<br />
mail.kit.edu {<br />
edu.vt.middleware.ldap.jaas.LdapLoginModule required<br />
};<br />
...<br />
host=""<br />
......;<br />
9 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Authentifikationsmodule (Extended Login Handler)<br />
<strong>Identity</strong><br />
<strong>Provider</strong><br />
Login<br />
Handler<br />
username<br />
+ weitere password Attribute<br />
JaaS<br />
JaaS<br />
JaaS<br />
Schnittstelle X<br />
Einbezug weiterer Parameter für Authentifikation (bspw. IP-Adresse)<br />
Kombination mit JaaS Dispatcher<br />
Direkte Integration von Schnittstellen (optional)<br />
10 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Übersicht Authentifikationsmodule<br />
JaaS Dispatcher Module<br />
Auswahl des passenden JaaS Moduls durch Schema<br />
Keine sequentielle Abarbeitung konfigurierter Quellen<br />
Modular: Kein Eingriff in <strong>Shibboleth</strong>-Code<br />
JaaS Dispatcher ist unabhängig von <strong>Shibboleth</strong><br />
Einsatz für jede JaaS Authentifikation möglich<br />
Extended d Login Handler<br />
Einbringen zusätzlicher Restriktoren für die Authentifikation<br />
Direktes Anbinden der Schnittstellen (optional)<br />
Kombination aus JaaS Dispatcher und Extended Login Handler<br />
Erweiterung des Login Handlers um Weitergabe zusätzlicher Parameter<br />
(z.B. IP-Adresse über eigenen/erweiterten JaaS Callback Handler)<br />
Weitere Handhabung der Authentifikation über JaaS Dispatcher<br />
11 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Agenda<br />
Motivation<br />
Bestehende Lösungsansätze<br />
Authentifikationsmodule<br />
JaaS Dispatcher Module<br />
Extended Login Handler<br />
Integrierte Attributprovisionierung<br />
Attribut<strong>auf</strong>bereitung in dedizierter Datenbasis<br />
Bewertung<br />
<strong>Shibboleth</strong> Integration am Karlsruhe Institute of Technology (KIT)<br />
Fazit<br />
12 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Integrierte Attributprovisionierung<br />
Dedizierte Datenbasis für <strong>Shibboleth</strong> Attribute<br />
<strong>Identity</strong> Management<br />
Software<br />
Attribut Provisionierung<br />
Attribut Abfrage<br />
-Attributabfrage<br />
-Schema-Mapping<br />
-Attributberechnung<br />
-Attributprovisionierung<br />
<strong>Shibboleth</strong><br />
Attribut<br />
Datenbank<br />
<strong>Identity</strong><br />
<strong>Provider</strong><br />
OE 1 OE 2<br />
13 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Bewertung<br />
Authentifikation <strong>auf</strong> verteilten Daten<br />
Autonomie von Organisationseinheiten<br />
Sperrung/Rechteentzug sofort wirksam<br />
Keine Replikation von Passwörtern<br />
Automatisierte, i konfigurierbare i Identifikation i der Datenquelle<br />
Authentifikation <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Daten <strong>auf</strong> Geschwindigkeit optimiert<br />
Bezug von Attributen <strong>auf</strong> zentraler Datenbasis<br />
Schema-Mapping durch <strong>Identity</strong> Management:<br />
- Reduzierung der Komplexität der IdP-Konfiguration<br />
- Nutzung des flexibleren und besonders geeigneten IdM-Systems<br />
Einfaches Handling von lediglich implizit bekannten Attributen<br />
Vorberechnung von Attributen<br />
Einsparung teurer Rechenoperationen zur L<strong>auf</strong>zeit<br />
Aufwand zum Aufbau und Betrieb der Datenbasis gering<br />
Attributlieferung <strong>auf</strong> Geschwindigkeit optimiert<br />
14 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
<strong>Shibboleth</strong> Integration KIT<br />
KIT<br />
<strong>Identity</strong> Management<br />
Attribut Provisionierung<br />
Sub - IdM<br />
Sub - IdM<br />
Attribut<br />
Datenbank<br />
OE 1 OE 2 JaaS<br />
<strong>Identity</strong><br />
JaaS<br />
<strong>Provider</strong><br />
JaaS<br />
JaaS<br />
JaaS<br />
Nutzername<br />
Passwort<br />
IP-Adresse<br />
JaaS<br />
JaaS<br />
Dispatcher<br />
Login<br />
Handler<br />
15 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Fazit<br />
<strong>Shibboleth</strong> bietet mit der Möglichkeit JaaS zu nutzen für viele<br />
Anwendungsfälle bereits ausreichende Möglichkeiten<br />
Anpassung der Authentifikation zur Anbindung mehrerer IdM-Systeme<br />
an einen <strong>Shibboleth</strong> IdP mit minimaler Latenz beim Login-Vorgang<br />
JaaS Dispatcher Module<br />
Vorauswahl des JaaS Moduls zur Authentifikation<br />
http://dsn.tm.kit.edu/misc_2853.php<br />
Extended <strong>Shibboleth</strong> Login Handler<br />
Alternativ einzusetzen<br />
Als Zusatz zum JaaS Dispatcher Modul mit angepasstem Callback Handler<br />
Weitergabe von Nutzername, Passwort und weiterer Attribute<br />
Attribut<strong>auf</strong>bereitung durch IdM-Software<br />
Vorbereitung der Attribute zur Weitergabe an die Service <strong>Provider</strong><br />
16 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
17 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
Herkunft „<strong>Shibboleth</strong>”<br />
Bibel (Luther), Richter 12, Vers 5 und 6:<br />
„und die Gileaditer besetzten die Furten des Jordans vor<br />
Ephraim. Wenn nun einer von den Flüchtlingen Ephraims sprach: Lass<br />
mich hinübergehen!, so sprachen die Männer von Gilead zu ihm: Bist du<br />
ein Ephraimiter? Wenn er dann antwortete: Nein!,<br />
ließen sie ihn sprechen: Schibbolet. Sprach er aber: Sibbolet, weil er's<br />
nicht richtig aussprechen konnte, dann ergriffen sie ihn und erschlugen<br />
ihn an den Furten des Jordans, sodass zu der Zeit von Ephraim fielen<br />
zweiundvierzigtausend.“<br />
18 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
<strong>Shibboleth</strong> „in a nutshell“<br />
Zentralisierte Authentifikation und Attributlieferung<br />
https://intra.kit.edu<br />
Discovery<br />
Service<br />
<strong>Identity</strong> <strong>Provider</strong><br />
Auswahl Login<br />
Browser<br />
AuthN +<br />
Attribute<br />
<strong>Identity</strong><br />
<strong>Provider</strong><br />
Service <strong>Provider</strong><br />
(Webseite)<br />
19 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
<strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong><br />
Unterteilung in Authentifikation und Attributlieferung<br />
<strong>Identity</strong><br />
<strong>Provider</strong><br />
<strong>Identity</strong><br />
Management<br />
Authentifikation<br />
Attributlieferung<br />
20 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten
<strong>Shibboleth</strong> IdM-Integration am KIT<br />
Mitarbeiter<br />
Campus Nord<br />
Autoritative Quellen<br />
Mitarbeiter<br />
Studierende<br />
Campus Süd<br />
Gäste<br />
KIT<br />
<strong>Identity</strong> Management<br />
Sub - IdM<br />
Sub - IdM<br />
…<br />
…<br />
OE 1 OE 2<br />
Non-OE-spezifische Services,<br />
auch: KIT-Services<br />
21 27.05.2010 Sebastian Labitzke<br />
Steinbuch Centre for Computing<br />
<strong>Integrierter</strong> <strong>Shibboleth</strong> <strong>Identity</strong> <strong>Provider</strong> <strong>auf</strong> <strong>Basis</strong> <strong>verteilter</strong> Identitätsdaten