Federační metadata jsou podepsána digitálním certifikátem a pro větší bezpečnost je doporučitelné na straně IdP a SP tento podpis ověřovat. K tomu potřebujeme stáhnout ověřovací certifikát a uložit ho na cílovém systému.
Odkaz na ověřovací certifikát najdete na stránce s technickými detaily.
Příklad:
# cd /etc/ssl/certs # wget http://www.eduid.cz/docs/eduid/metadata/metadata.eduid.cz.crt.pem
Dále je potřeba upravit konfiguraci tak, aby systém při každem stažení metadat ověřoval jejich podpis.
V konfiguračním souboru použijeme u příslušného MetadataProvider elementu filtr typu SignatureValidation:
<MetadataProvider id="eduid-metadata" xsi:type="FileBackedHTTPMetadataProvider" xmlns="urn:mace:shibboleth:2.0:metadata" metadataURL="https://metadata.eduid.cz/entities/eduid+sp" backingFile="/opt/shibboleth-idp/metadata/backup/eduid+sp" cacheDuration="600"> <MetadataFilter xsi:type="SignatureValidation" xmlns="urn:mace:shibboleth:2.0:metadata" trustEngineRef="shibboleth.MetadataTrustEngine" requireSignedMetadata="true" /> </MetadataProvider>
Atribut trustEngineRef musí odkazovat na příslušný element TrustEngine (konkrétně hodnota atributu trustEngineRef odpovída hodnotě atributu id elementu TrustEngine), kde nastavíme cestu k ověřovacímu certifikátu. Předkonfigurovaný element TrustEngine obvykle najdeme zakomentovaný v sekci „Security Configurations“.
<!-- Trust engine used to evaluate the signature on loaded metadata. --> <security:TrustEngine id="shibboleth.MetadataTrustEngine" xsi:type="security:StaticExplicitKeySignature"> <security:Credential id="MyFederation1Credentials" xsi:type="security:X509Filesystem"> <security:Certificate>/etc/ssl/certs/metadata.eduid.cz.crt.pem</security:Certificate> </security:Credential> </security:TrustEngine>
V konfiguračním souboru shibboleth2.xml do příslušného MetadataProvider elementu přidáme MetadataFilter element typu „Signature“ a do atributu certificate zadáme cestu k ověřovacímu certifikátu:
<MetadataProvider type="XML" uri="https://metadata.eduid.cz/entities/eduid+idp" backingFilePath="/etc/shibboleth/backup/eduid+idp" reloadInterval="600"> <MetadataFilter type="Signature" certificate="/etc/ssl/certs/metadata.eduid.cz.crt.pem"/> </MetadataProvider>