Mehrere SPs in einer Shibboleth-Instanz: ApplicationOverride

Da es sich beim Shibboleth SP (u.a.) um ein Apache Modul handelt, kann pro Server bzw. virtueller Maschine nur eine Shibboleth-Instanz betrieben werden. Damit für unterschiedliche VHosts und/oder Pfade separate Service Provider definiert werden können, müssen in der Konfigurationsdatei ./etc/shibboleth/shibboleth2.xml sog. ApplicationOverrides definiert werden. Siehe hierzu die ausführliche Dokumentation im Shibboleth Wiki.

Im folgenden ein einfaches, auf die relevanten Passagen gekürztes Beispiel aus der Konfiguration zweier vom DFN betriebener Test-SPs. In RequestMap werden die diversen VHosts registriert und über die applicationId dem entsprechenden ApplicationOverride zugeordnet:

/etc/shibboleth/shibboleth2.xml
<RequestMapper type="Native">
   <RequestMap  applicationId="default">
       <Host name="testsp2.aai.dfn.de" authType="shibboleth" requireSession="true"/>
       <Host name="testsp.aai.dfn.de" applicationId="testsp" authType="shibboleth"
requireSession="true"/>
   </RequestMap>
</RequestMapper>
 
<ApplicationDefaults entityID="https://testsp2.aai.dfn.de/shibboleth"
       REMOTE_USER="eppn persistent-id targeted-id">
....
 
   <ApplicationOverride id="testsp" entityID="https://testsp.aai.dfn.de/shibboleth"
     REMOTE_USER="eppn persistent-id targeted-id" homeURL="https://testsp.aai.dfn.de">
   ....
   </ApplicationOverride>
 
</ApplicationDefaults>