Anwendungen schützen mit Shibboleth

Slides:



Advertisements
Ähnliche Präsentationen
Ausblick auf Shibboleth 2.0
Advertisements

Erstellen von Raumgrundrissen mit Vorlagen
Was gibt´s neues im Bereich Sicherheit
ReDI als Pilotanwendung für Shibboleth
Prof. Dr. W. Conen 15. November 2004
Systemverwaltung wie es Ihnen gefällt.
Die Elektronische Zeitschriftenbibliothek
Pflege der Internetdienste
Das Projekt AAR Authentifizierung, Autorisierung und Rechteverwaltung Vorstellung des Projektes und Informationsaustausch Mannheim, 13. Juni 2006 Franck.
Verteilte Authentifizierung mit Open Source Software – Integrationsplattform für Wissenschaft und Wirtschaft Kommunales Daten- und Identitätsmanagement.
Das Projekt AAR ReDI als Pilotanwendung für die Shibboleth-Authentifizierung vascoda AG Betrieb und Weiterentwicklung Köln, 24. August 2005 Bernd Oberknapp,
Das Projekt AAR Authentifizierung, Autorisierung und Rechteverwaltung
1 Allgemeine Fragestellung Suche nach wissenschaftlicher Information im Internet Quelle wird gefunden, aber… …Zugang nur gegen Passwort oder Zahlung Wiss.
Bernd Oberknapp, UB Freiburg
Authentifizierung, Autorisierung und Rechteverwaltung Einsatz und Funktion des Rechteservers 2. Shibboleth-Workshop Freiburg, 23. März 2006 Gerald Schupfner,
Föderationen: Richtlinien, Zertifikate und Attribute
Bernd Oberknapp, UB Freiburg
Einführung in den Identity Provider
Ulrich Kähler, DFN-Verein
Ulrich Kähler, DFN-Verein
DFN-AAI Stand des Testsystems Raoul Borenius, DFN-AAI-Team
Einbindung des Service Providers: Einfache Web-Applikation, Überwachungssystem NAGIOS 2. Shibboleth-Workshop, Freiburg, Franck Borel, UB Freiburg.
Technische Übersicht zu Shibboleth
Datenbankzugriff im WWW (Kommerzielle Systeme)
Erweiterung B2B Usermanagement / LDAP-Anbindung
Daniel Höfler Markus Thurner XMLApplicationPlatform Siemens OpenStage 60/80.
Passwörter.
Testgetriebene Entwicklung
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Webserver, © Till Hänisch 2002 Apache The open way.
Information und Technik Nordrhein-Westfalen Single Sign On mit CAS Düsseldorf, Single Sign On für Webanwendungen am Beispiel von CAS.
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Treffen mit Siemens Siemens: Werner Ahrens Volkmar Morisse Projektgruppe: Ludger Lecke Christian Platta Florian Pepping Themen:
Universität Heidelberg Rechenzentrum Hartmuth Heldt Sicherheitskonzept - Netzwerk 1.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
PHP Pakete und Beispiele Webengineering Robert Lemke.
Mailserver-Installation mit LDAP-Schnittstelle für die Firma XYZ GmbH
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Zum Stand der Literatursuche: Zeitschriftenartikel
Hyperlinks und Anker Links notieren
Zum Stand der Literatursuche: Zeitschriftenartikel Einstiegsseite: freiburg.de/bibliothekchirurgie.
2007 Office - Bestellung Backup Medium -Schritt für Schritt Anleitung- Hinweis: Die Bildausschnitte wurden mit Windows Vista Ultimate (Aero Oberfläche)
Warum brauche ich ein CMS – Content Management System?
Mark Bendix | 02. Juli 2007 | Prüf.-Nr
Client-Server Systeme
1 Universitätsbibliothek Johann Christian Senckenberg Das Angebot E lektronischer M edien eLearning Netzwerktag am 30. Juni 2008 Subtitel Dr. Klaus Junkes-Kirchen.
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
CGI (Common Gateway Interface)
HORIZONT 1 XINFO ® Das IT - Informationssystem HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
Computer-Zeitkontrolle und Überwachung der Aktivitäten
Copyright © 2007, SAS Institute Inc. All rights reserved. SAS Activity-Based Management Survey Kit (ASK): Benutzerverwaltung & Sicherheit.
Dokumenten- und Publikationsserver
VPN – Virtual Private Network
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Positionspapier Arbeitsgruppe Software-Wartung Diane König.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
User Mode Linux Sven Wölfel 1. Juni User Mode Inhalt  Was ist UML?  Wofür kann man UML benutzen?
Installation und Konfiguration des Identity Provider Shibboleth Workshop Freiburg, Franck Borel, AAR-Projekt, UB Freiburg.
Neue Shibboleth-Entwicklungen: Shibboleth 2.0 und SAML 2.0 VO-Management Workshop Schloss Birlinghoven, 19. Dezember 2006 Bernd Oberknapp Universitätsbibliothek.
Die Technik des Service Provider 2. Shibboleth-Workshop Freiburg, 23. März Dr. Jochen Lienhard AAR Projekt UB Freiburg Authentifizierung, Autorisierung.
1 Allgemeine Fragestellung Suche nach wissenschaftlicher Information im Internet Quelle wird gefunden, aber… …Zugang nur gegen Passwort oder Zahlung Wiss.
Verteilte Authentifizierung, Autorisierung und Rechteverwaltung (AAR) beim elektronischen Publizieren Forum Innovation Buchmesse Frankfurt, 20. Oktober.
MyCoRe in einem in einem Detlev Degenhardt Jena, den Umfeld - Umfeld.
Remoting DEVOP PART II: WINDOWS POWERSHELL. Remoting  Ermöglicht es, alle CMDlets auch per Remote auf einem anderen Server auszuführen  Dafür gibt es.
242/102/49 0/51/59 181/172/166 Primary colors 248/152/29 PMS 172 PMS 137 PMS 546 PMS /206/ /227/ /129/123 Secondary colors 114/181/204.
Shibboleth. Agenda Shibboleth? Single-Sign-On SAML & Co. Shibboleth  Eigenschaften  Architektur & Komponenten  Implementierungen  Kommunikation 
Identity Management.  Zentrale Begriffe und Probleme  Modellbildung  Methoden zur Authentisierung über HTTP  Technische Aspekte  Compliance  Hindernisse,
 Präsentation transkript:

Anwendungen schützen mit Shibboleth 4. Shibboleth-Workshop Berlin, 28. Februar 2007 Bernd Oberknapp Universitätsbibliothek Freiburg E-Mail: bo@ub.uni-freiburg.de

Übersicht Unterstützte Plattformen Nutzungsvarianten SessionInitiator (Teil1) Beispiele: Autorisierung über Attribute Bereitstellung des REMOTE_USER Kombination mit IP-Kontrolle optionale Attribute SessionInitiator (Teil 2) LazySession: Beispiele Umstellung von Anwendungen Empfehlungen Bernd Oberknapp, Universitätsbibliothek Freiburg

Unterstützte Plattformen Für den Schutz von Anwendungen wird der Shibboleth Service Provider (SP) benötigt. Der C++ SP (aktuell Version 1.3f) steht zur Verfügung für Apache (Linux/Unix, Windows) IIS (Windows) weitere Webserver eventuell über FastCGI (z.B. lighttpd) Bei Shibboleth 2.0 wird es auch einen Java SP geben. Die Beispiele im Folgenden verwenden den C++ SP unter Apache, die Konfiguration erfolgt über die HtAccessControl, d.h. die Apache-Konfiguration. Beim Apache ist die XMLAccessControl, d.h. die Konfiguration über die shibboleth.xml des SP, eine Alternative, beim IIS gibt es nur diese Variante. Bernd Oberknapp, Universitätsbibliothek Freiburg

Nutzungsvarianten Der Shibboleth SP bietet zwei Möglichkeiten, die auch kombiniert werden können: Apache Authentication und Access Control, d.h. Shibboleth löst die Authentifizierung beim ersten Zugriffsversuch aus und kontrolliert den Zugriff auf die Ressourcen. LazySession, d.h. die Anwendung muss bei Bedarf selbst die Authentifizierung auslösen und selbst den Zugriff auf die Ressourcen kontrollieren. Bei beiden Varianten können die Informationen über den Nutzer (Attribute), die der Shibboleth Identity Provider (IdP) übermittelt hat, der Anwendung über HTTP-Header zur Verfügung gestellt werden (über die Attribute Acceptance Policy in AAP.xml konfiguriert). Bernd Oberknapp, Universitätsbibliothek Freiburg

SessionInitiator Was „löst die Authentifizierung aus“? Antwort: Aufruf eines SessionInitiator! Ein SessionInitiator definiert eine lokale URL, die aufgerufen werden kann, wenn eine Authentifizierung erfolgen soll verweist auf einen WAYF oder direkt auf einen IdP kann über seine ID angesprochen werden. Soll die Authentifizierung ausgelöst werden, wird der per ID angegebene oder der Default-SessionInitiator aufgerufen, der den Nutzer zu einem WAYF oder direkt zu einem IdP leitet. Bernd Oberknapp, Universitätsbibliothek Freiburg

SessionInitiator Beispiel SessionInitiator-Konfiguration des SP auf dem AAR-Webserver (in shibboleth.xml): <SessionInitiator id="AAR" isDefault="true" Location="/WAYF/DEMOaar" Binding="urn:mace:shibboleth:sp:1.3:SessionInit" wayfURL="https://aar.vascoda.de/DEMOaar/WAYF" wayfBinding="urn:mace:shibboleth:1.0:profiles:AuthnRequest"/> <SessionInitiator id="unifr" Location="/WAYF/unifr" wayfURL="https://www-fr.redi-bw.de/idp/unifr/SSO" Bernd Oberknapp, Universitätsbibliothek Freiburg

beliebige authentifizierte Sitzung Beispiel 1 Im einfachsten Fall erfolgt nur eine Authentifizierung für die Anwendung (HTML-Dateien, Skripte, ...) ohne Zugriffskontrolle über Attribute. Beispiel AAR-Demoseite: <Location /demo> AuthType Shibboleth ShibRequireSession On require valid-user </Location> Achtung: Ohne weitere Absicherung des SP ist eine solche Konfiguration gefährlich, da sich alle Nutzer von allen IdPs einloggen können, von denen der SP SAML Authentication Assertions akzeptiert! löst beim Zugriff die Authentifizierung über den Default-SessionInitiator aus beliebige authentifizierte Sitzung Bernd Oberknapp, Universitätsbibliothek Freiburg

Beispiel 2 Der Zugriff kann durch eine „require user“-Regel auf bestimmte Nutzer eingeschränkt werden. Beispiel interne AAR-Webseite mit Zugriff nur für das Freiburger AAR-Team: <Location /interna> AuthType Shibboleth ShibRequireSessionWith unifr ShibRedirectToSSL 443 require user fb91@uni-freiburg.de \ hu25@uni-freiburg.de \ lienhard@uni-freiburg.de \ oberknap@uni-freiburg.de \ ruppert@uni-freiburg.de </Location> SessionInitiator mit der ID unifr verwenden, Redirect direkt zum Freiburger IdP bei Zugriff über Port 80/http Redirect auf Port 443/https eduPerson- PrincipalNames des Freiburger AAR-Teams Bernd Oberknapp, Universitätsbibliothek Freiburg

Beispiel 3 Statt die Nutzer explizit einzutragen, kann auch ein Attribut verwendet werden, das genau den zugriffs-berechtigten Nutzern über das Identity Management zugewiesen wird – das ist in vielen Fällen die bessere Alternative. Beispiel interne AAR-Webseiten (vgl. Beispiel 2): <Location /interna> AuthType Shibboleth ShibRequireSessionWith unifr ShibRedirectToSSL 443 require entitlement \ urn:mace:ub.uni-freiburg.de:entitlement:aar:team </Location> Zugriff wird nur gestattet, wenn der IdP dieses eduPersonEntitlement für den Nutzer übermittelt Achtung: Jeder IdP kann dieses Entitlement liefern, wenn dies nicht über die AAP eingeschränkt wird! Bernd Oberknapp, Universitätsbibliothek Freiburg

REMOTE_USER Viele Anwendungen benötigen eine Benutzerkennung, da die Rechte in der Anwendung darüber gesteuert werden. Shibboleth kann eine Benutzerkennung genau wie die Apache (Basic) Authentication im REMOTE_USER zur Verfügung stellen. Damit kann jede Anwendung, die über Apache (Basic) Authentication und Access Control geschützt werden kann, auch über Shibboleth geschützt werden – ohne Änderungen an der Anwendung vorzunehmen! Beispiele: Nagios, BackupPC, WebSVN, ... Bernd Oberknapp, Universitätsbibliothek Freiburg

REMOTE_USER Per Default wird der Attributwert von eduPerson-PrincipalName (ePPN) als REMOTE_USER verwendet (siehe Default AAP.xml). Falls eine Anwendung Probleme mit dem Scope beim ePPN hat, kann alternativ auch die uid (Principal ohne Scope: user statt user@domain) verwendet werden – aber nur, wenn die Anwendung nur innerhalb einer Einrichtung genutzt wird, sonst ist die Eindeutigkeit der uid nicht gewährleistet! Wenn der Nutzer wiedererkannt werden muss, die Identität aber nicht bekannt sein muss, sollte aus Datenschutzgründen die eduPersonTargetedID (Pseudonym für den Nutzer) verwendet werden. Bernd Oberknapp, Universitätsbibliothek Freiburg

und-Verknüpfung, beide Require-Regeln müssen erfüllt sein Beispiel 4 Wenn der IdP das entsprechende Attribut nicht liefert, ist der REMOTE_USER zwar definiert, aber leer! Mit einer entsprechenden „require user“-Regel kann dies abgefangen werden: <Location /backuppc> AuthType Shibboleth ShibRequireSession On ShibRequireAll On Require user ~ ^.+$ Require entitlement \ urn:mace:ub.uni-freiburg.de:entitlement:unifr:backup:admin </Location> und-Verknüpfung, beide Require-Regeln müssen erfüllt sein regulärer Ausdruck stellt sicher, dass REMOTE_USER mindestens aus einem Zeichen besteht URNs dürfen nur verwendet werden, wenn der entsprechende Namensraum registriert ist! Bernd Oberknapp, Universitätsbibliothek Freiburg

Beispiel 5 Shibboleth kann mit IP-Kontrolle kombiniert werden. Beispiel Zugriff auf CILP (PDF- und Text-Dateien): <Location /data/base/cilp> AuthType Shibboleth ShibRequireSessionWith unifr ShibRequireAll On Require affiliation ~ ^.+@uni-freiburg\.de$ Require entitlement \ urn:mace:dir:entitlement:common-lib-terms Order allow,deny Allow from 132.230.21.21 132.230.21.22 132.230.21.23 \ 132.230.21.24 132.230.21.25 132.230.21.27 \ 132.230.21.29 132.230.21.30 Satisfy any </Location> Zugriff nur für berechtigte Nutzer der Uni Freiburg von den öffentlichen Rechercheplätzen in der UB Freiburg oder Bernd Oberknapp, Universitätsbibliothek Freiburg

Empfehlungen Es sollten nur die Attribute über eine require-Regel verlangt werden, die für den Schutz der Anwendung unbedingt notwendig sind. Weitere, optionale Attribute können aus den HTTP-Headern ausgelesen und genutzt werden, wenn sie vom IdP geliefert werden. Falls nur ein Teil der Anwendung (bestimmte URLs) geschützt werden muss, so sollten nur für diesen entsprechende require-Regeln definiert werden. Dies gilt insbesondere für Anwendungen mit eigenem Session-Management – hier genügt es häufig, nur den Teil der Anwendung zu schützen, der für den Aufbau der Anwendungssession zuständig ist. Bernd Oberknapp, Universitätsbibliothek Freiburg

Beispiel 6 Beispiel Schnellsuchportal der UB Freiburg (IPS): Geschützt wird nur die URL /shiblogin, unter der das Login-Skript liegt, das die IPS eigene Session aufbaut. urn:mace:dir:entitlement:common-lib-terms wird über eine Regel in der AAP nur vom IdP der Uni Freiburg akzeptiert, so dass nur berechtigte Nutzer der Uni Freiburg Zugriff auf die lizenzpflichtigen Datenbanken haben. Wird vom IdP auch die Benutzerkennung (momentan noch uid, zukünftig eduPersonTargetedID) übermittelt, kann der Nutzer Suchstrategien und Zitate persistent speichern. <Location /shiblogin> AuthType Shibboleth ShibRequireSession On Require entitlement urn:mace:dir:entitlement:common-lib-terms </Location> Bernd Oberknapp, Universitätsbibliothek Freiburg

SessionInitiator Ein SessionInitiator kann auch direkt mit folgenden optionalen Parametern aufgerufen werden: providerId: schickt den Nutzer direkt zum angegebenen IdP, egal welche wayfURL im SessionInitiator angegeben ist target: URL, zu der der Nutzer nach der Authentifizierung (Default: Application/@homeURL) weitergeleitet wird acsIndex: Endpunkt für die SAML-Antwort Durch Aufruf eines SessionInitiators mit providerId- und target-Parametern kann eine Anwendung selbst steuern, welcher IdP angesprochen wird und welche Seite nach Rückkehr vom IdP aufgerufen wird! Beispiel Testseite auf dem ReDI-Webserver Bernd Oberknapp, Universitätsbibliothek Freiburg

LazySession Bei LazySession muss die Anwendung selbst die Kontrolle darüber übernehmen, wann eine Authentifizierung ausgelöst wird, welcher WAYF oder IdP dabei angesprochen wird, welche URL nach der Authentifizierung aufgerufen wird und wie die von Shibboleth über HTTP-Header zur Verfügung gestellten Attribute ausgewertet und für die Zugriffskontrolle verwendet werden. Konfiguration für LazySession: <Location /lazy> AuthType Shibboleth Require Shibboleth </Location> Achtung! Beim Zugriff auf /lazy wird keine Authentifizierung ausgelöst (kein ShibRequireSession!) und es werden keine Attribute geprüft (keine „require <Attribut>”-Regel!) – das muss die Anwendung selbst übernehmen! Bernd Oberknapp, Universitätsbibliothek Freiburg

Beispiele mit LazySession Standortkatalog der Universität Freiburg: LazySession für gesamte Anwendung unter /stk, externer WAYF ReDI: LazySession nur für Login-Skript zum Aufbau der ReDI eigenen Session unter /shib, integrierter eigener WAYF WISO (GENIOS-GBI): Homepage direkter Aufruf einer Zeitung (wie z.B. aus der EZB) ScienceDirect (Elsevier) JSTOR Shibboleth-Wiki Bernd Oberknapp, Universitätsbibliothek Freiburg

Umstellung von Anwendungen auf Shibboleth mit LazySession Für die Umstellung von Anwendungen auf Shibboleth mit LazySession gibt es kein „Kochrezept“! Folgende Punkte sind u.a. für die Umstellung relevant: Wie werden die Ressourcen bisher geschützt (Apache, Tomcat, eigenes Verfahren, ...)? Existiert ein eigenes Session-Management? Kann dieses weiter verwendet werden, z.B. indem eine Sitzung über Shibboleth aufgebaut wird? Existiert eine eigene Rechteverwaltung? Können die dafür notwendigen Informationen per Shibboleth über Attribute bereitgestellt werden? Können die Identity-Provider die Attribute liefern? Bernd Oberknapp, Universitätsbibliothek Freiburg

Der schnellste Weg zu einem funktionierenden Test-SP Setzen Sie keinen eigenen IdP auf (der IdP ist deutlich komplexer als der SP!), sondern verwenden Sie einen vorhandenen IdP, z.B. den AAR oder DFN Test-IdP oder TestShib.org. Verwenden Sie eine gut unterstützte Plattform, am besten Apache unter einer gängigen Linux-Distribution. Verwenden Sie die angebotenen Binärpakete (Fedora, Red Hat, Ubuntu) oder die Source RPMs (SuSE) für die Installation! Testen Sie den SP zunächst mit einem Testskript (z.B. von der Uni Leuven) um sicherzustellen, dass der SP funktioniert und die gewünschten Attribute ankommen! Testen Sie dann die Anwendung. Bernd Oberknapp, Universitätsbibliothek Freiburg

Aufbau einer kompletten Shibboleth-Umgebung Für eine komplette Shibboleth-Umgebung sind mindestens ein IdP und ein SP notwendig – zwei SPs, wenn das Single Sign-On mit Shibboleth genutzt oder demonstriert werden soll. Falls es in Ihrer Einrichtung bereits einen IdP gibt, verwenden Sie diesen oder sprechen Sie sich mit dem Betreiber ab – es sollte in jeder Einrichtung möglichst nur einen IdP geben! Empfehlung: Fangen Sie mit der Umstellung auf Shibboleth bei internen Anwendungen an, die bisher per Apache Basic Authentication und Access Control geschützt werden – das erfordert keine Änderungen an den Anwendungen und minimiert die Außenwirkung, wenn am Anfang mal etwas nicht funktioniert. Bernd Oberknapp, Universitätsbibliothek Freiburg

Und zum Schluss... noch eine Bitte: Warten Sie mit dem Aufbau eigener Shibboleth-Systeme noch bis nach dem Shibboleth 2.0-Vortrag am Ende des Workshops , aber: Warten Sie nicht auf Shibboleth 2.0! Vielen Dank für Ihre Aufmerksamkeit! Bernd Oberknapp, Universitätsbibliothek Freiburg