18.11.2013 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!