Local Metadata

Local Metadata?

Each home institution can have a specific metadata file generated and signed by us. With such a file you connect in-house SPs to your IdP without adding those SPs to the whole federation.

Once a university or a research institution has an Identity Provider up and running, it makes sense to protect as many in-house services as possible with an SP software for a unified login experience. Here is a few examples for possible applications:

  • monitoring
  • local certification authority for students
  • in-house library applications
  • in-house data center applications
  • in-house adminstrative application
  • protected web servers of the institution

These services shall in general not be accessible for members of other home institutions. That is why you do not let them join DFN-AAI or DFN-AAI-Basic. The Metadata Administration Tool offers a different solution: You can activate the automatic generation of a so-called local metadata file that will only contain your IdP and your in-house SPs. It is thus specific to your institution. All local metadata files are generated hourly: They can be fetched from static URLs to make sure that the IdP and all local SPs always have up-to-date and valid metadata. The big advantage: Metadata can be maintained in a single place. Changes will then propagate to all participating systems (that fetch the local metadata regularly) automatically. If you maintain your in-house SPs als local SPs you will be informed about expiring certificates by us as if those systems were taking part in DFN-AAI.

You can activate the generation of local metadata for your institution in the Metadata administration tool, in the section “Contracts” (via the tool symbol). You can optionally limit access to the download URL of your metadata file to certain IP address ranges.

After activation you can add your IdP and as many SPs as needed: Just edit each of them and select “local metadata” instead of a big federation at the very bottom of the page.

The download URL has the following format https://www.aai.dfn.de/fileadmin/metadata/dfn-aai-local-999-metadata.xml (where “999” has to be replaced for each institution). Go back to the start page and hover your mouse over the download link to see it.

Configuration

Add an additional <MetadataProvider> element to ./conf/metadata-providers.xml.

Replace the institution number!

Please replace the number “999” from this example with your institution number from the link above.
/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">
            <MetadataFilter xsi:type="SignatureValidation" requireSignedRoot="true"
                    certificateFile="/etc/ssl/aai/dfn-aai.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.pem"/>
            <MetadataFilter xsi:type="EntityRoleWhiteList">
                    <RetainedRole>md:SPSSODescriptor</RetainedRole>
            </MetadataFilter>
    </MetadataProvider>
 
</MetadataProvider>

Add an additional metadata provider in /etc/shibboleth/shibboleth2.xml:

/etc/shibboleth/shibboleth2.xml
    ...
   <MetadataProvider type="XML" url="http://www.aai.dfn.de/fileadmin/metadata/dfn-aai-local-999-metadata.xml"
         validate="true" backingFilePath="dfn-aai-local-999-metadata.xml" reloadInterval="3600">
       <MetadataFilter type="Signature" certificate="/etc/ssl/aai/dfn-aai.pem"/>
   </MetadataProvider>
    ...
  • Last modified: 4 months ago