Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
de:shibeds [2015/11/11 13:17] Wolfgang Pempede:shibeds [2015/12/08 15:36] Wolfgang Pempe
Zeile 3: Zeile 3:
 Beim EDS handelt es sich um einen Satz von Java Scripts, der sich in beliebige HTML-Seiten einbetten lässt und der mit dem vom Shibboleth SP ab Version 2.4 generierten [[https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPHandler#NativeSPHandler-DiscoveryFeedHandler%28Version2.4andAbove%29|Discovery Feed]] arbeitet (/Shibboleth.sso/DiscoFeed). Hierbei handelt es sich um (IdP-)Daten im JSON-Format, die aus den über ein oder mehrere [[https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPMetadataProvider|MetadataProvider-Elemente]] verfügbaren Metadaten generiert werden - nach Anwendung etwaiger [[https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPMetadataFilter|MetadataFilter]], z.B. einer [[https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPMetadataFilter#NativeSPMetadataFilter-WhitelistMetadataFilter|Whitelist von Entity IDs zugriffsberechtigter IdPs oder einer EntityCategory]]. Auf diese Weise lässt sich mit geringem Aufwand eine Einrichtungsauswahl realisieren, die ausschließlich IdPs von Einrichtungen enthält, deren NutzerInnen Zugriff auf den vom SP geschützten Dienst erhalten sollen. Beim EDS handelt es sich um einen Satz von Java Scripts, der sich in beliebige HTML-Seiten einbetten lässt und der mit dem vom Shibboleth SP ab Version 2.4 generierten [[https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPHandler#NativeSPHandler-DiscoveryFeedHandler%28Version2.4andAbove%29|Discovery Feed]] arbeitet (/Shibboleth.sso/DiscoFeed). Hierbei handelt es sich um (IdP-)Daten im JSON-Format, die aus den über ein oder mehrere [[https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPMetadataProvider|MetadataProvider-Elemente]] verfügbaren Metadaten generiert werden - nach Anwendung etwaiger [[https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPMetadataFilter|MetadataFilter]], z.B. einer [[https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPMetadataFilter#NativeSPMetadataFilter-WhitelistMetadataFilter|Whitelist von Entity IDs zugriffsberechtigter IdPs oder einer EntityCategory]]. Auf diese Weise lässt sich mit geringem Aufwand eine Einrichtungsauswahl realisieren, die ausschließlich IdPs von Einrichtungen enthält, deren NutzerInnen Zugriff auf den vom SP geschützten Dienst erhalten sollen.
  
-**Die offizielle Dokumentation zum EDS findet sich im [[https://wiki.shibboleth.net/confluence/display/EDS10/Embedded+Discovery+Service|Shibboleth Wiki]]. +**Die offizielle Dokumentation zum EDS findet sich im [[https://wiki.shibboleth.net/confluence/display/EDS10/Embedded+Discovery+Service|Shibboleth Wiki]].** 
-**+
 **Ergänzend hierzu** einige allgemeine Anmerkungen und Hinweise zur Installation unter Debian: **Ergänzend hierzu** einige allgemeine Anmerkungen und Hinweise zur Installation unter Debian:
    * Download unter http://shibboleth.net/downloads/embedded-discovery-service/latest/    * Download unter http://shibboleth.net/downloads/embedded-discovery-service/latest/
    * Tatsächlich benötigt werden nur die im Zip-Archiv enthaltenen Dateien ''idpselect_config.js'', ''idpselect.css'', ''idpselect.js'' und ggf. ''index.html'', siehe hierzu auch die enthaltene ''README.txt''    * Tatsächlich benötigt werden nur die im Zip-Archiv enthaltenen Dateien ''idpselect_config.js'', ''idpselect.css'', ''idpselect.js'' und ggf. ''index.html'', siehe hierzu auch die enthaltene ''README.txt''
    * Unter Debian empfiehlt es sich, diese Dateien unter ''/var/www'', ''/var/www/html'' o.ä. abzulegen, z.B.\\ ''/var/www/vhosts/sp.uni-beispiel.de/ds/''    * Unter Debian empfiehlt es sich, diese Dateien unter ''/var/www'', ''/var/www/html'' o.ä. abzulegen, z.B.\\ ''/var/www/vhosts/sp.uni-beispiel.de/ds/''
 +   * Zunächst muss ''index.html'' angepasst oder eine eigene HTML-Seite angelegt werden, in der die JavaScript-Aufrufe eingebettet werden, siehe hierzu die Kommentare in ''index.html'' sowie die [[https://wiki.shibboleth.net/confluence/display/EDS10/2.+Installation#id-2.Installation-2.3WebPageSetup|offizielle Dokumentation]]
 +     * Für das <noscript>-Element empfiehlt sich der Link auf einen zentralen WAYF/DS, z.B.\\ ''https://wayf.aai.dfn.de/DFN-AAI-Basic/wayf?entityID=https%3A%2F%2Fsp.uni-beispiel.de%2Fshibboleth&return=https%3A%2F%2Fsp.uni-beispiel.de%2FShibboleth.sso%2FLogin%3FSAMLDS%3D1''
 +   * Spezifische Anpassungen müssen in ''idpselect_config.js'' und ggf. ''idpselect.css'' vorgenommen werden, siehe hierzu die Kommentare in den betreffenden Dateien sowie die [[https://wiki.shibboleth.net/confluence/display/EDS10/3.+Configuration|offizielle Dokumentation]]
 +
 +**Konfiguration des Service Providers** (üblicherweise unter ''/etc/shibboleth/shibboleth2.xml''):
 +<file xml /etc/shibboleth/shibboleth2.xml>
 +<SSO discoveryProtocol="SAMLDS" discoveryURL="https://sp.uni-beispiel.de/ds/index.html">
 +  SAML2
 +</SSO>
 +
 +<!-- i.d.R. in Kombination mit einem MetadataFilter: -->
 +
 +<MetadataProvider type="Chaining">
 +   <MetadataProvider type="XML" 
 +         uri="https://www.aai.dfn.de/fileadmin/metadata/DFN-AAI-Basic-metadata.xml"
 +         backingFilePath="DFN-AAI-Basic-metadata.xml" 
 +         minRefreshDelay="240" reloadInterval="300">
 +      <MetadataFilter type="RequireValidUntil" maxValidityInterval="604800"/>
 +      <MetadataFilter type="Signature" certificate="/etc/ssl/aai/dfn-aai.pem" />
 +      <MetadataFilter type="Whitelist">
 +         <Include>https://idp.uni-beispiel1.de/idp/shibboleth</Include>
 +         <Include>https://idp.uni-beispiel2.de/idp/shibboleth</Include>
 +         <Include>https://idp.uni-beispiel3.de/idp/shibboleth</Include>
 +      </MetadataFilter>
 +   </MetadataProvider>
 +   <!-- hier ggf. weitere MetadataProvider-Elemente -->
 +</MetadataProvider>
 +</file>
 +Ein Beispiel für eine Positiv-Auswahl anhand einer **Entity Category** findet sich in der Online-Dokumentation des bwIDM-Projekts unter https://www.bwidm.de/teilnahme/dienstanbieter/ (Abschnitt 1.2 - Technische Voraussetzungen)
 +
 +**Konfiguration des Webservers** (Apache 2.4):
 +<file apache /etc/apache2/sites-enabled/sp.uni-beispiel.de.conf>
 +Alias /ds /var/www/vhosts/sp.uni-beispiel.de/ds/
 +<Location /ds>
 +   Require all granted
 +</Location>
 +</file>
 +
 +Der EDS kommt **zum Beispiel** beim DFN Test-SP3 zum Einsatz: https://testsp3.aai.dfn.de/