14
Neuerungen im Shibboleth IdP 3.2.x 64. DFN-Betriebstagung, 2./3. März 2016, Berlin Wolfgang Pempe, DFN-Verein [email protected]

Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

Neuerungen im Shibboleth IdP 3.2.x

64. DFN-Betriebstagung,2./3. März 2016, Berlin

Wolfgang Pempe, [email protected]

Page 2: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 2

Shibboleth IdP Version 3.x

● Roadmap für Version 2.4.x: Critical security bugs / EOL: 31.07.2016

http://shibboleth.net/pipermail/announce/2015-May/000112.html

● Release IdP v3.0 am 10.3.2015 hatte noch nicht alle geplanten Features implementiert(eingeschränkter Funktionsumfang gegenüber IdP 2.4.x)

● Release IdP v3.2.0 am 8.11.2015 (voller Funktionsumfang)

● Umstieg lohnt mittlerweile (Funktionalität, Dokumentation)

● Dokumentation für IdPv3 im neuen DFN-AAI Wiki:https://wiki.aai.dfn.de/de:shibidp3

● Überblick über die Neuerungen in Version 3.2:https://wiki.shibboleth.net/confluence/display/IDP30/ReleaseNotes

Page 3: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3

Neuerungen in 3.2 (Auswahl)

● Neue Implementierung für Client-Side Storage (HTML5)https://wiki.shibboleth.net/confluence/x/lYEgAQ

● (Single) Logouthttps://wiki.shibboleth.net/confluence/x/AAJSAQ

● Vereinfachte Syntax für Attribute Filter Konfigurationhttps://wiki.shibboleth.net/confluence/x/VIBKAQ

● SPNEGO-basierte Authentisierung via Kerberoshttps://wiki.shibboleth.net/confluence/x/v4FKAQ

● Steuerung und Datenmodell Persistent Name IDhttps://wiki.shibboleth.net/confluence/x/DYAEAQ

undhttps://wiki.shibboleth.net/confluence/x/ZYFKAQ

sowiehttps://wiki.aai.dfn.de/de:shibidp3storage

Page 4: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 4

Client-side HTML Storage

● Zwei neue Beans für Client-side Storage (cookie oder HTML[5] local Storage)

shibboleth.ClientSessionStorageService shibboleth.ClientPersistentStorageService

● Relevant für verschiedene Properties (/conf/idp.properties) idp.session.StorageService idp.consent.StorageService u.a.m.

● Erleichtert Clustering

● Datenschutzrechtlich interessant, da personenbezogene Daten (User Consent) nicht mehr serverseitig vorgehalten werden müssen (juristisch problematisch → Nachweis)

● Aber: ”only support a subset of use cases”https://wiki.shibboleth.net/confluence/x/lYEgAQ

Page 5: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 5

(Single) Logout

● Bisher (< 3.2) kein SAML-Logout, sondern eigene Implementierung (/idp/profile/Logout)

● Ab Version 3.2 werden nun auch wieder die Bindings unterstützt, die in Version 2.4 verfügbar waren

● Front-Channel Single Logout (iframes)

● Relevante Properties: idp.session.trackSPSessions = true idp.session.secondaryServiceIndex = true idp.logout.elaboration = true

● Apache Konfiguration (obacht, iframes!):Header always append X-FRAME-OPTIONS "SAMEORIGIN"

● Referenzen: https://wiki.shibboleth.net/confluence/x/AAJSAQ Interessanter Thread zum Thema (Shibboleth-Users)

Page 6: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 6

Single Logout● Kleiner Bug (IDP-924): In den Templates werden die meisten <iframe>-

Elemente nicht geschlossen (</iframe>) → Darstellungsprobleme

● Nacharbeit in /views und /system/views/logout

?

?

Page 7: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 7

Attribute Filter Konfiguration (1)

● Die gewohnten Namespace-Prefixes können entfallen

● Vereinfachung des Vokabulars für xsi:type

● AttributeInMetadata: Attribut onlyIfRequired nun per Default ”true” (betrifft v.a. AFPs nach Entity Attributen)

● Übersicht im Shibboleth Wiki:https://wiki.shibboleth.net/confluence/x/lwAnAQ

● Mapping alt-neu:https://wiki.shibboleth.net/confluence/x/VIBKAQ

● Beispiel auf nächster Folie

Page 8: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 8

Attribute Filter Konfiguration (2)IdP 2.4.x:

IdP 3.2:

Page 9: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 9

SPNEGO* und Kerberos

● authn/SPNEGO Login Flow: SPNEGO-basierte Authentisierung via Kerberos-Ticket

● Aktivierung unproblematisch und in wenigen Konfigurationsschritten erledigt, Anleitung ”Extending the Password Login Flow” unter https://wiki.shibboleth.net/confluence/x/v4FKAQ

● Zwei Punkte beachten:

1) Client-seitige Unterstützung (Browser), siehehttps://wiki.shibboleth.net/confluence/x/C4BC

2) Linux: Tomcat User muss Leserecht auf keytab haben d.h. zur entsprechenden Gruppe hinzugefügt werden/etc/apache2/apache-krb5.keytab

* Simple and Protected GSSAPI Negotiation Mechanism

Page 10: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 10

Kerberos Login – Beispiel

Page 11: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 11

Persistent NameID (1)● Mit IdP 3.x wird Persistent NameID (korrekterweise) nicht

mehr wie ein Attribut behandelt, d.h. die Weitergabe wird nicht mehr direkt über Attribute Filter Policies gesteuert

● Bis 3.1.x musste das zur PID-Generierung verwendete Quell-Attribut (idp.persistentId.sourceAttribute) für den Ziel-SP freigegeben werden → frickelige Konfiguration

● Ab IdP 3.2 ist dieses Verhalten standardmäßig abgeschaltet:idp.persistentId.useUnfilteredAttributes=true

● Zur Übermittlung müssen zwei Bedingungen erfüllt sein:

1) Relying Party Konfiguration (IdP-seitig, PID als default)

2) NameIDFormat in Metadaten oder AuthnRequest (SP-seitig)

Page 12: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 12

Persistent NameID (2)

Änderungen und Bug Fixes in der Behandlung von Stored IDs erforderten eine Änderung der Tabellen-Definition.Unter Umständen genügt es, im (MySQL)Dump die Definition für den Primary Key einzufügen und den Dump zurückzuspielen (ohne Gewähr!)

Vorher:

Nachher:

Page 13: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 13

GUI-Kleinkram

● Internationalisierung: Lokalisierte properties Files auch für Deutsch erhältlich: https://wiki.shibboleth.net/confluence/x/doFKAQ

● SWITCHaai bietet vorgefertigte Templates und Stylesheets an, die sich leicht den eigenen Bedürfnissen anpassen lassen

● Änderungen an Stylesheets, web.xml etc. Nicht direkt unter /webapp vornehmen (Verlust bei Update!), sondern immer unter /edit-webapp

● Änderungen an Templates /views/*.vm sind sofort aktiv, während bei modifizierten Stylesheets und/oder JSPs (unter /edit-webapp) das WAR File neu gebaut werden muss (bin/build.sh)

Page 14: Neuerungen im Shibboleth IdP 3.2 - dfn.de · 64. DFN-Betriebstagung 2./3. März 2016 Berlin, Wolfgang Pempe 3 Neuerungen in 3.2 (Auswahl) Neue Implementierung für Client-Side Storage

Kontakt

www: https://www.aai.dfn.de

eMail: [email protected]

Tel.: +49 711 63314 215

Vielen Dank für Ihre Aufmerksamkeit!

Fragen? Anmerkungen?