Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision |
de:shibeds [2015/11/11 13:37] – Wolfgang Pempe | de:shibeds [2020/04/07 14:48] – Raoul Gunnar Borenius |
---|
====== Shibboleth Embedded Discovery Service (EDS) ====== | ====== Shibboleth Embedded Discovery Service (EDS) ====== |
| |
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. | ===== Konfiguration des EDS für den Produktivbetrieb ==== |
| |
**Die offizielle Dokumentation zum EDS findet sich im [[https://wiki.shibboleth.net/confluence/display/EDS10/Embedded+Discovery+Service|Shibboleth Wiki]].** | * das Layout des EDS muss in /etc/shibboleth-ds/index.html angepasst werden, in der die JavaScript-Aufrufe eingebettet werden, siehe hierzu die Kommentare in dieser Datei. |
| * 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%2Fmyvhost.mydomain.de%2Fshibboleth&return=https%3A%2F%2Fmyvhost.mydpmain.de%2FShibboleth.sso%2FLogin%3FSAMLDS%3D1'' |
| |
**Ergänzend hierzu** einige allgemeine Anmerkungen und Hinweise zur Installation unter Debian: | ===== Eingeschränkte Ausrichtungsliste ===== |
* 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'' | Sofern Ihr SP seinen Service nur gewissen Einrichtungen zur Verfügung stellt, empfehlen wir einen sogenannten Metadata-Filter im SP zu konfigurieren. Dieser sorgt dafür dass der EDS dem User nicht mehr einfach alle IdPs in der Föderation zur Auswahl stellt sondern nur diejenigen von denen die Nutzung des Dienstes möglich ist. |
* 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]] | ==== Beispiel: explizite Angabe der gewünschten IdPs ==== |
* 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]] | <file xml /etc/shibboleth/shibboleth2.xml> |
* Konfiguration des Service Providers, üblicherweise unter ''/etc/shibboleth/shibboleth2.xml'':\\ ''<SSO discoveryProtocol="SAMLDS" discoveryURL="https://sp.uni-beispiel.de/ds/index.html">'' | |
| ... |
| <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.g2.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> |
| ... |
| |
| </MetadataProvider> |
| </file> |
| |
| ==== Beispiel: Positiv-Auswahl anhand einer **Entity Category** ==== |
| |
| siehe Online-Dokumentation des bwIDM-Projekts unter https://www.bwidm.de/teilnahme/dienstanbieter/ (Abschnitt 1.2 - Technische Voraussetzungen) |
| |
| ==== Weiterführende Links ==== |
| |
| [[https://wiki.shibboleth.net/confluence/display/EDS10/Embedded+Discovery+Service|Offizielle Dokumentation zum EDS mit allen Details]] |
| |