Dies ist eine alte Version des Dokuments!


Lokale Metadaten

Wurde an einer Einrichtung erst einmal ein IdP eingerichtet, entsteht schnell der Wunsch, möglichst viele einrichtungs-internen Dienste mit Service Providern auszustatten, um ebenfalls in den Genuss des vereinfachten User-/Passwort-Managements zu kommen. Beispiele für solche Anwendungen sind:

  • Überwachungstools (NAGIOS)
  • lokale Zertfizierungsstelle für Studenten
  • interne Bibliotheksanwendungen
  • interne Rechenzentrumsanwendungen
  • interne Verwaltungsanwendungen
  • geschützte Webserver der Hochschule

Diese Dienste aber nun einfach in einen der föderationsweiten Metadatensätze („DFN-AAI“ bzw. „DFN-AAI-Basic“) aufzunehmen, kommt in der Regel nicht in Frage. Diese sind explizit nur für SPs vorgesehen, die von mehreren Einrichtungen genutzt werden. Um das o.g. Szenario zu unterstützen, bietet die Metadatenverwaltung die Möglichkeit, einen lokalen Metadatensatz pro Einrichtung anzulegen, in den der jeweilige IdP und alle lokalen SPs aufgenommen werden.

Diese Option kann in der Metadatenverwaltung unter dem Punkt „Vertragsdaten“ aktiviert werden, allerdings erst, wenn der entsprechende Vertrag („Dienstvereinbarung DFN-AAI“) vorliegt. Nach der Aktivierung erscheint dann in der Übersicht eine zusätzliche Spalte „lokale Metadaten“.

Beispiel Schaltfläche „Vertragsdaten“:

Die lokalen Metadatensätze werden wie die Metadatensätze der DFN-AAI-Föderationen einmal pro Stunde neu erzeugt und sind ebenfalls über feste URLs abrufbar. Damit ist zugleich gewährleistet, dass die lokalen SPs stets aktuelle und gültige Metadaten besitzen.

Der URL für die lokalen Metadaten einer Einrichtung hat das Format:
https://www.aai.dfn.de/fileadmin/metadata/DFN-AAI-Local-999-metadata.xml - wobei „999“ durch eine einrichtungs-spezifische Nummer zu ersetzen ist. Der korrekte URL kann in der Metadatenverwaltung auf der jeweiligen Übersichtsseite unter „lokale Metadaten“ abgerufen werden:


Konfiguration

Für die lokalen Metadaten muss in /conf/metadata-providers.xml (siehe hier) ein weiteres <MetadataProvider> Element hinzugefügt werden. Bitte nicht vergessen, „999“ durch die korrekte Einrichtungsnummer (s.o.) zu ersetzen. Hier ein Beispiel:

/opt/shibboleth-idp/conf/metadata-providers.xml
<MetadataProvider id="ShibbolethMetadata" xsi:type="ChainingMetadataProvider" ...>
 
    <!-- ... -->
 
    <MetadataProvider id="DFN_AAI"
            xsi:type="FileBackedHTTPMetadataProvider"
            backingFile="%{idp.home}/metadata/DFN-AAI-sp-metadata.xml"
            metadataURL="http://www.aai.dfn.de/fileadmin/metadata/DFN-AAI-sp-metadata.xml"
            maxRefreshDelay="PT2H">
            <!-- auf den Download der Metadaten via https kann verzichtet werden, da hier 
                 die Signatur überprüft wird -->
            <MetadataFilter xsi:type="SignatureValidation" requireSignedRoot="true"
                    certificateFile="/etc/ssl/aai/dfn-aai.pem"/>
            <MetadataFilter xsi:type="EntityRoleWhiteList">
                    <RetainedRole>md:SPSSODescriptor</RetainedRole>
            </MetadataFilter>
 
    </MetadataProvider>
 
    <MetadataProvider id="DFN_AAI_Local"
            xsi:type="FileBackedHTTPMetadataProvider"
            backingFile="%{idp.home}/metadata/DFN-AAI-Local-999-metadata.xml"
            metadataURL="http://www.aai.dfn.de/fileadmin/metadata/DFN-AAI-Local-999-metadata.xml"
            maxRefreshDelay="PT2H">
            <MetadataFilter xsi:type="SignatureValidation" requireSignedRoot="true"
                    certificateFile="/etc/ssl/aai/dfn-aai.pem"/>
            <MetadataFilter xsi:type="EntityRoleWhiteList">
                    <RetainedRole>md:SPSSODescriptor</RetainedRole>
            </MetadataFilter>
    </MetadataProvider>
 
</MetadataProvider>

Auch hier muss in der Konfiguration (z.B. /etc/shibboleth/shibboleth2.xml) ein entsprechendes <MetadataProvider> Element hinzugefügt werden - in der Regel (d.h. im Produktivbetrieb) ist dies auch das einzige. (Auch hier nicht vergessen, „999“ durch die korrekte Einrichtungsnummer [s.o.] zu ersetzen)

/etc/shibboleth/shibboleth2.xml
<MetadataProvider type="Chaining">
    <!-- ... -->
    <MetadataProvider type="XML" validate="true"
          uri="https://www.aai.dfn.de/fileadmin/metadata/DFN-AAI-Local-999-metadata.xml"
          backingFilePath="DFN-AAI-Local-999-metadata.xml" 
          reloadInterval="3600">
       <MetadataFilter type="RequireValidUntil" maxValidityInterval="604800"/>
       <MetadataFilter type="Signature" certificate="/etc/ssl/aai/dfn-aai.pem" />
    </MetadataProvider>
</MetadataProvider>

Da in den lokalen Metadaten nur ein einziger IdP enthalten ist, benötigt man für diesen Fall gar keinen Lokalisierungsdienst, sondern kann direkt in der Konfiguration des SP den eigenen IdP als Endpunkt für den SessionInitiator verwenden:

/etc/shibboleth/shibboleth2.xml
<SSO entityID="https://idp.beispiel-uni.de/shibboleth">
   SAML2 
</SSO>
  • Zuletzt geändert: vor 8 Jahren