Lokale Metadaten

Wurde an einer Einrichtung erst einmal ein IdP eingerichtet, entsteht schnell der Wunsch, möglichst viele einrichtungsinterne 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 daher 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“. Außerdem kann der Zugriff auf die lokalen Metadaten auf bestimmte IP-Bereiche eingegrenzt werden.

Beispiel Schaltfläche „Vertragsdaten“:

Die lokalen Metadatensätze werden wie die Metadatensätze der DFN-AAI-Föderationen einmal pro Stunde (außer um 10:00) 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 einrichtungsspezifische 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.g2.pem"/>
    </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.g2.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="Signature" certificate="/etc/ssl/aai/dfn-aai.g2.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/idp/shibboleth">
   SAML2 
</SSO>
  • Zuletzt geändert: vor 8 Monaten