Die Technik des Service Provider 2. Shibboleth-Workshop Freiburg, 23. März Dr. Jochen Lienhard AAR...

Preview:

Citation preview

Die Technik des Service Provider

2. Shibboleth-WorkshopFreiburg, 23. März

Dr. Jochen LienhardAAR ProjektUB Freiburg

Authentifizierung, Autorisierung und Rechteverwaltung

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 2

Was ist ein Service Provider?

• AllgemeinEin Service Provider (SP) ist ein Anbieter von webbasierten Diensten oder Inhalten, die einen eingeschränkten Zugriff benötigen.

• bei Shibboleth „A Service Provider (SP) is a deployment of SAML software that validates assertions issued by Identity Providers (IdP) and uses them to create a security context and assists in the enforcement of access control based on the information.”

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 3

Beispiele für Ressourcen

• HTML-Seiten, PHP- oder CGI-Scripte• e-Learning-Module in LMS• Datenbanken• Elektronische Zeitschriften• Zertifizierungsstelle• ...

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 4

Ohne Shibboleth

Web-Server

Apache oder IIS

httpd.conf

<Location>

Require ....

</Location>

Daten im FilesystemRessource

Manager

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 5

Mit Shibboleth

Web-ServerApache oder IIS

httpd.conf

<Location> AuthType shibboleth ShibRequireSession On

</Location>

Daten im FilesystemRessource

Manager

mod_shib (ACS) shibd

(+ AAP)

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 6

Der Ressource Manager

• RM des Apache– require affiliation member@uni-freiburg.de

• RM als Mischung aus Apache und zusätzlicher Software– require valid_user + ....

• RM nur mit zusätzlicher Software– lazy session

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 7

Aufgaben des Service Providers

• Schutz der Ressourcen• Kontaktaufnahme zum Identity Provider

(via WAYF)• Überprüfung der Zertifikate• Überprüfung der Attribute• Freigabe der Ressource

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 8

Die Shibboleth Komponenten

• mod_shib (Assertion Consumer Service)Apache Modul, das in die httpd.conf eingebunden werden muss.

• shibdShibboleth Dämon

• AAPAttribute Acceptance Policies

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 9

Funktionsweise

1. Zugriff auf Ressource→ Redirect zum WAYF oder IdP durch ACS

2. Authentifizierungsbestätigung des IdPs→ Weiterleitung der SAML vom Apache-Modul

(ACS) zum Shibboleth-Dämon (shibd)→ Anfrage vom Dämon an den AA bzgl Attribute

3. Attribute des AAs→ Verifizierung der Attribute (AAP.xml)→ Freigabe oder Sperrung der Ressource durch RM

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 10

Systemvoraussetzungen

• Betriebssystem– Linux, Solaris, Windows, MAC

• Webserver– Apache oder IIS

• Sicherheit– OpenSSL

• OpenSource• Quellcode: C++

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 11

Zusätzliche Komponenten

Die zusätzlichen Komponenten sind bei Internet2 oder Apache verfügbar:– log4cpp – xerces-c – xml-security-c – opensaml

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 12

Konfigurationsdateien

• apache.config bzw. apache2.configKonfigurationsdatei für das mod_shib

• shibboleth.xmlZentrale XML-Konfigurationsdatei

• AAP.xmlXML Datei zur Konfiguration der Attribute Acceptance Policies

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 13

Was muss man konfigurieren?

• Basiskonfiguration (apache.config + shibboleth.xml)

• Attributes (AAP.xml)• Schutz der Ressoucre

(apache.config + shibboleth.xml + RM)

• Zertifikate (shibboleth.xml)• Föderation und Metadaten (shibboleth.xml)• Logger und Fehlerseiten (shibboleth.xml)

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 14

Basiskonfiguration

• shibboleth.xml editieren– Service Provider ID eintragen– WAYF oder IdP angeben– Metadaten und Audience anpassen– Zertifikate einbinden (Client Zertifikat)

• apache-Konfiguration einbinden.

Anschließend ein Test gegenüber eines existierenden IdP.

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 15

Attribute (AAP.xml)

• „Default-Attribute“: Identity Provider• Empfangene Attribute müssen abgebildet und

gefiltert werden<AttributeRule

Name=“urn:mace:dir:attribute-def:eduPersonAffiliation“

Header=“Shib-EP-Affiliation“ Alias=“affiliation“><AnySite><AnyValue>

</AnySite>

</AttributeRule>

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 16

Schutz der Ressourcen (am Beispiel von Apache)

• Konfiguration des Apache<Location /interna>

AuthType shibbolethShibRequireSession OnRequire EduPersonEntitlement urn:mace:aar:entitlement:ezb:unirb:admin

</Location>• Ressource Manager• Rechteserver

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 17

Zertifikate

• Schlüssel und Zertifikat notwendig• Client-Zertifikat für Requester-Match bei der

ARP des IdP.• Root-CA muss in der metadata.xml enthalten

sein.

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 18

Föderation und Metadaten

• Föderation – als Basis des Vertrauens– als Lieferant der Metadaten– als Rahmen

• Metadaten– notwendig zur Überprüfung der IdPs– Informationen über IdP– Informationen über Zertifikate

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 19

Session Initiator

• default Initiator sollte der WAYF sein• ermöglicht es URLs zu generieren, die einen

Initiator enthalten, so dass der Nutzer direkt zum richtigen IdP geleitet wird ohne über den WAYF zu gehen.

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 20

Logger und Fehlerseiten

• verschiedene Log-Level einstellbar– DEBUG, INFO, WARN, ERROR, OFF

• Fehlerseiten können selbst gestaltet werden:session="/usr/local/etc/shibboleth/sessionError.html“metadata="/usr/local/etc/shibboleth/metadataError.html" rm="/usr/local/etc/shibboleth/rmError.html" access="/usr/local/etc/shibboleth/accessError.html"

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 21

Timeouts

• diverse Timeouts einstellbar– für die Kommunikation– für die Session

• beachten, welche Timeouts die IdPs haben• Gleichgewicht finden!

• Änderung diese Konzepts für Shibboleth 2.x vorgesehen.

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 22

Einbindung in mehrere Föderationen

• notwendig für internationale Anbieter, falls nur länderspezifischen Föderationen existieren.– alternativ: eigene Föderation

• Realisierbar durch mehrere Applications• Verschiedene URLs definieren und schützen• Zugriff auf verschiedene WAYFs

– ein metadata.xml

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 23

WAYF beim SP

• Problem, welcher WAYF verwendet werden soll, wenn der SP mehreren Föderationen angehört.

• Vorteile:– gezielte Weiterleitung zum entsprechenden IdP

möglich (Session Initiator)– nur eigene Kunden sind im WAYF

• Nachteil:– zusätzliche Komponente, die gepflegt werden muss.

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 24

„Migrationscheckliste“

• Wie werden die Ressourcen bisher geschützt (Apache, Tomcat, eigenes Verfahren, ...)?

• Existiert ein Sitzungsmanagement?• Kann dieses weiter verwendet werden, z.B. indem

eine Sitzung über Shibboleth aufgebaut wird?• Existiert eine Rechteverwaltung?• Können die dafür notwendigen Informationen per

Shibboleth über Attribute bereitgestellt werden?• Können die Identity-Provider die Attribute liefern?

Dr. Jochen Lienhard, AAR Projekt, UB Freiburg 25

Beispiele von SP

• Nagios (Überwachungssystem)• Stokat Bibl.Verwaltungssystem• ReDI Regionale Datenbank-Information

Baden-Württemberg

→ Details am Nachmittag

Fragen,Probleme,

Anregungen?

Recommended