Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

Konfigurationerna under denna sida fungerar endast för Shibboleth 3 eller senare. För simpleSAMLphp och ADFS kan konfigurationsexemplen endast användas som inspiration.

relying-party.xml

SWAMID är en en multilateral identitetsfederation där alla identitetsutgivare pratar direkt med alla tjänster. Detta innebär att en identitetsutgivare måste ha tillgång till tjänsternas metadata när en användare vill logga in i tjänsten. I princip finns två sätt att göra detta, dels genom att med jämna mellanrum hämta metadata för alla tjänster och dels genom att dynamiskt hämta metadata vid behov. Traditionellt har SWAMID endast tillhandahållit den fulla nedladdningen men från och med våren 2023 går det även använda den dynamiska metoden.

När identitetsutgivaren hämtar hem metadata från SWAMID ska den verifiera att det är metadata signerat av SWAMID som hämtas hem och används. För denna signering använder SWAMID en PKI-baserad krypteringsnyckel. För att genomföra denna kontroll behöver SWAMIDs signeringscertfikat laddas ner, installeras och konfigureras i identitetsutgivaren. 

Hämta och spara certifikatet från SAML Metadata and Trust

Hämta certifkatsfilen md-signer2.crt från https://mds.swamid.se/md/md-signer2.crt och verifiera att det är rätt nyckel genom att kontrollera fingerprint. Spara sedan certfikatsfilen på den plats i filsystemet som anges nedan om du gjort standardinstallation av Shibboleth IdP.Stoppa in följande 2 block XML på relevant plats i relying-party.xml. Spara certifikatet från SAML Metadata and Trust i filen

Code Block
titleLinux
/opt/shibboleth-idp/credentials/md-signersigner2.crt


Code Block
titleWindows
C:/Program Files (x86)/Shibboleth/IdP/metadatacredentials/md-signersigner2.crt

Definera att det nedladdade certifikatet ska användas för kontroll av signatur av Swamids metadata:

Konfigurera hur metadata hämtas och sparas av Shibboleth IdP

Om du väljer att hämta full eller dynamisk metadata från SWAMID är en riskbedömning. Fördelen med att automatiskt hämta det fulla metadatat är att du alltid har en färsk kopia av SWAMIDs metadata men det betyder också att tjänsten förbrukar mycket mer ramminne eftersom IdPn håller allt metadata i primärminnet. En annan effekt av att hämta och använda det fulla metadatat från SWAMID är att det tar mycket längre tid att starta IdP-tjänsten. För att minska minnesåtgången har SWAMID stöd för att IdPn dynamiskt hämta metadata  när en användare ska logga in i tjänsten. För att detta ska vara snabbt cachar IdP använd metadata under en period så att den inte behöver hämtas varje gång. Nackdelen med den dynamiska hämtningen av metadata är att SWAMIDs metadata tjänst alltid måste vara tillgänglig och detta har löst via en feltollerant teknisk lösning.

Dynamiskt hämta metadata från SWAMID

Stoppa in följande block XML på relevant plats i metadata-providers.xml dynamiskt hämta SWAMIDs metadata inklusive SP:s från eduGAIN.

Code Block
languagexml
Code Block
titleLinux
<!-- SWAMID-METADATA-Trustengine andMDQ SWAMID-TESTING-METADATA-TrustengineMETADATA PROVIDER -->
<security:TrustEngine<MetadataProvider id="swamid-metadata-signerDynamicEntityMetadata" xsi:type="security:StaticExplicitKeySignatureDynamicHTTPMetadataProvider">
     <security:Credential id="MyFederation1Credentials" xsi:type="security:X509Filesystem">
    connectionRequestTimeout="PT2S"
         <security:Certificate>/opt/shibboleth-idp/credentials/md-signer.crt</security:Certificate>connectionTimeout="PT2S"
   </security:Credential>
</security:TrustEngine>
Code Block
titleWindows
<!-- SWAMID-METADATA-Trustengine and SWAMID-TESTING-METADATA-Trustengine -->
<security:TrustEngine id="swamid-metadata-signer" xsi:type="security:StaticExplicitKeySignature socketTimeout="PT4S">
     <MetadataFilter <securityxsi:Credential idtype="MyFederation1CredentialsSignatureValidation" xsi:typerequireSignedRoot="security:X509Filesystemtrue">
        <security:Certificate>C:/Program Files (x86)/Internet2/Shib2Idp/metadata	 certificateFile="%{idp.home}/credentials/md-signer.crt</security:Certificate>
   </security:Credential>
</security:TrustEngine>

Hämta metadata för SWAMID 2.0 med följande konfiguration:

Code Block
titleLinux
<!-- SWAMID 2.0 METADATA PROVIDER -->
<MetadataProvider id="Swamid2MD"signer2.crt" />
     <MetadataFilter xsi:type="FileBackedHTTPMetadataProviderRequiredValidUntil" xmlnsmaxValidityInterval="urn:mace:shibboleth:2.0:metadata"
                  metadataURL="httpP14D"/>
 	 <MetadataQueryProtocol>https://mdmds.swamid.se/md/swamid-2.0.xml"
                  backingFile="/opt/shibboleth-idp/metadata/swamid-2.0.xml">
   <MetadataFilter xsi:type="ChainingFilter" xmlns="urn:mace:shibboleth:2.0:metadata">
      <MetadataFilter xsi:type="SignatureValidation" xmlns="urn:mace:shibboleth:2.0:metadata"
                      trustEngineRef="swamid-metadata-signer"
                      requireSignedMetadata="true" />
   </MetadataFilter>
</MetadataProvider>
Code Block
</MetadataQueryProtocol>
</MetadataProvider>

Hämta metadata aggregat över alla registrerade tjänster automatiskt från SWAMID

Stoppa in följande block XML på relevant plats i metadata-providers.xml för att hämta SWAMIDs metadata över alla registrerade tjänster i SWAMID och från interfederationssamarbeten.

Hämta metadata för SWAMID 2.0 med följande konfiguration:

Code Block
languagexmltitleWindows
<!-- SWAMID 2.0 METADATA PROVIDER -->
<MetadataProvider id="Swamid2MD" xsi:type="FileBackedHTTPMetadataProvider" xmlns="urn:mace:shibboleth:2.0:metadata"
                  		metadataURL="http://mdmds.swamid.se/entities/md/swamid-2.0.xml"
                  		backingFile="C:/Program Files (x86)/Internet2/Shib2Idp/%{idp.home}/metadata/swamid-2.0.xml">
   	<MetadataFilter xsi:type="ChainingFilterSignatureValidation" xmlns="urn:mace:shibboleth:2.0:metadata">
      requireSignedMetadata="true"
			certificateFile="%{idp.home}/credentials/md-signer2.crt" />
	<MetadataFilter xsi:type="SignatureValidation" xmlns="urn:mace:shibboleth:2.0:metadata"
                      trustEngineRef="swamid-metadata-signer"
                      requireSignedMetadata="true" />
   EntityRoleWhiteList">
		<RetainedRole>md:SPSSODescriptor</RetainedRole>
	</MetadataFilter>
</MetadataProvider>

Hämta och använda metadata från SWAMIDs testfederation

Info

Använd endast denna konfiguration om du planerar att registrera din IdP i SWAMIDs testfederation.


Vid behov så kan även Ni behöver även hämta metadata för SWAMIDs testfederation läggas till för att tillåta realistiska tester för ej driftsatta tjänsteleverantörer (SP):

Code Block
titlelanguageLinuxxml
<!-- SWAMID TEST METADATA PROVIDER -->
<MetadataProvider id="SwamidTestMDSwamid2MD" xsi:type="FileBackedHTTPMetadataProvider" xmlns="urn:mace:shibboleth:2.0:metadata"
                  		metadataURL="http://md.swamid.se/md/swamid-testing-1.0.xml"
                  		backingFile="/opt/shibboleth-idp%{idp.home}/metadata/swamid-testing-1.0.xml">
   <MetadataFilter xsi:type="ChainingFilter" xmlns="urn:mace:shibboleth:2.0:metadata">
      	<MetadataFilter xsi:type="SignatureValidation" xmlns="urn:mace:shibboleth:2.0:metadata"
                      trustEngineRef="swamid-metadata-signer"
                      requireSignedMetadata="true" />
   </MetadataFilter>
</MetadataProvider>
Code Block
titleWindows
<!-- SWAMID TEST METADATA PROVIDER -->
<MetadataProvider id="SwamidTestMD" xsi:type="FileBackedHTTPMetadataProvider" xmlns="urn:mace:shibboleth:2.0:metadata"
                  metadataURL="http://md.swamid.se/md/swamid-testing-1.0.xml"
                  backingFile="C:/Program Files (x86)/Internet2/Shib2Idp/metadata/swamid-testing-1.0.xml">
   
			certificateFile="%{idp.home}/credentials/md-signer2.crt" />
	<MetadataFilter xsi:type="ChainingFilter" xmlns="urn:mace:shibboleth:2.0:metadata">
      <MetadataFilter xsi:type="SignatureValidation" xmlns="urn:mace:shibboleth:2.0:metadata"
                      trustEngineRef="swamid-metadata-signer"
                      requireSignedMetadata="true" />
   EntityRoleWhiteList">
		<RetainedRole>md:SPSSODescriptor</RetainedRole>
	</MetadataFilter>
</MetadataProvider>

...