Agregátor metadat byl přepnut a na stávajících URL adresách se již generují metadata podepsaná novým certifikátem.
URL adresy uvedené níže (tedy s 2021 v názvu) jsou však stále platné.
Tato stránka zde zůstává z informačních důvodů.
V neděli 14. února 2021 vyprší podpisový certifikát pro metadata federací spravovaných sdružením CESNET, která jsou dostupná na serveru metadata.eduid.cz.
Nově vygenerovaný certifikát obsahuje stejný veřejný klíč, jiná je tedy pouze platnost a otisk.
Implementace protokolu SAML by s platností certifikátu neměly nijak nakládat a měly by ji ignorovat. To je důvod, proč ve většině případů expirovaný certifikát (např. v metadatech) nijak neohrožuje funkčnost. Jsou však implementace, které platnost kontrolují navzdory standardům a doporučením, proto je vhodné tuto změnu provést.
Narazíte-li na nějaký problém, nebo budete-li mít nějaký dotaz, neváhejte a napište na adresu info@eduid.cz.
Již nyní generujeme nejen metadata podepsaná stávajícím certifikátem (na stávajících URL adresách), ale i metadata podepsaná novým certifikátem (na nových dočasných URL adresách).
V průběhu čtvrtka 11. února začneme metadata podepsaná novým certifikátem umísťovat na stávající URL adresy a nové dočasné URL adresy budou fungovat jako přesměrování.
Čili pokud změníte kvůli otestování svou konfiguraci, nebudete muset následně už nic dělat.
Jelikož nově vygenerovaný podpisový certifikát obsahuje stejný veřejný klíč jako brzy expirující certifikát, tak v případě, že máte implementaci odpovídající standardům a doporučení, není víceméně nutné tento podpisový certifikát měnit.
Při testování Shibboleth IdP a Shibboleth SP jsme posunuli čas tak, aby současný podpisový certifikát byl expirovaný a následně jsme ověřovali stávající (i nová) metadata a to pomocí jak expirovaného, tak nového certifikátu. Shibboleth IdP i Shibboleth SP si korektně stáhl metadata (stará i nová) a bez problémů je ověřil jak novým, tak expirovaným certifikátem (právě kvůli stejnému veřejnému klíči).
Při testování SimpleSAMLphp, které používalo pro ověření metadat certifikát, vše fungovalo úplně stejně jako v případě Shibbolethu. Nicméně pokud SimpleSAMLphp používalo namísto certifikátu jen jeho otisk, tak ověření samozřejmě selhalo, protože nový certifikát má logicky otisk jiný.
Následující tabulka shrnuje výsledky testování Shibboleth IdP, Shibboleth SP a SimpleSAMLphp (jako SP) při ověřování platnosti metadat pomocí podpisového certifikátu.
Expirovaný certifikát | Nový certifikát | |
---|---|---|
Stávající metadata | V pořádku | V pořádku |
Nová metadata | V pořádku | V pořádku |
Přesto však důrazně doporučujeme na výsledky našeho testování nespoléhat a to zejména při použití jiné implementace než Shibboleth anebo SimpleSAMLphp s certifikátem.
Nový certifikát je již k dispozici na webu:
Pomocí tohoto certifikátu již podepisujeme metadata, která jsou však umístěna na jiných URL adresách. Kdo chce mít 100% jistotu, že jeho služba nebude nijak postižena po přepnutí, ať si vyzkouší stahovat nová metadata a kontrolovat jejich podpis novým certifikátem.
Nová metadata mají oproti těm stávajícím v názvu přidán současný rok, tedy „2021“, vizte následující tabulky:
Starý certifikát | Nový certifikát |
---|---|
eduid | eduid2021 |
eduid+idp | eduid2021+idp |
eduid+idp+avcr | eduid2021+idp+avcr |
eduid+idp+cesnet | eduid2021+idp+cesnet |
eduid+idp+hospital | eduid2021+idp+hospital |
eduid+idp+library | eduid2021+idp+library |
eduid+idp+other | eduid2021+idp+other |
eduid+idp+university | eduid2021+idp+university |
eduid+sp | eduid2021+sp |
Starý certifikát | Nový certifikát |
---|---|
edugain | edugain2021 |
edugain+idp | edugain2021+idp |
edugain+sp | edugain2021+sp |
Starý certifikát | Nový certifikát |
---|---|
socialidps | socialidps2021 |
Starý certifikát | Nový certifikát |
---|---|
standaloneidps | standaloneidps2021 |
Starý certifikát | Nový certifikát |
---|---|
cesnet-int | cesnet-int2021 |
cesnet-int+idp | cesnet-int2021+idp |
cesnet-int+sp | cesnet-int2021+sp |
Shibboleth IdP by měl nadále fungovat bez jakéhokoliv konfiguračního zásahu. Nicméně i tak doporučujeme provést změnu zdroje metadat a certifikátu. Tím otestujete, že až přestaneme generovat stará metadata, vše bude fungovat.
Předpokládáme, že máte Shibboleth IdP nainstalován dle našeho návodu v adresáři /opt/shibboleth-idp/
.
V souboru conf/metadata-providers.xml
musíte u elementu <MetadataProvider>
změnit atribut metadataURL
dle výše uvedených „převodních tabulek“ a také v elementu <MetadataFilter>
upravit atribut certificateFile
.
<!-- eduID.cz --> <MetadataProvider id="eduidcz" xsi:type="FileBackedHTTPMetadataProvider" backingFile="%{idp.home}/metadata/eduidcz.xml" metadataURL="https://metadata.eduid.cz/entities/eduid2021+sp" maxRefreshDelay="PT30M"> <MetadataFilter xsi:type="SignatureValidation" requireSignedRoot="true" certificateFile="%{idp.home}/credentials/metadata2021.eduid.cz.crt.pem" /> <MetadataFilter xsi:type="RequiredValidUntil" maxValidityInterval="P30D" /> </MetadataProvider>
Musíte také stáhnout nový podpisový certifikát, např. následujícím příkazem:
# Stažení nového podpisového certifikátu metadata2021.eduid.cz.crt.pem wget -P /opt/shibboleth-idp/credentials \ https://www.eduid.cz/docs/metadata2021.eduid.cz.crt.pem
Můžete též smazat keš metadat v adresáři /opt/shibboleth-idp/metadata/
, ale nemažte soubor idp-metadata.xml
obsahující metadata vašeho IdP, která jsou dostupná na https://HOSTNAME/idp/shibboleth.
Po provedení výše uvedených změn nezapomeňte restartovat Jetty:
# Restart Jetty
systemctl restart jetty9
Shibboleth SP by měl nadále fungovat bez jakéhokoliv konfiguračního zásahu. Nicméně i tak doporučujeme provést změnu zdroje metadat a certifikátu. Tím otestujete, že až přestaneme generovat stará metadata, vše bude fungovat.
Předpokládáme, že máte Shibboleth SP nainstalován z distribučního balíčku dle našeho návodu v adresáři /etc/shibboleth/
.
V souboru shibboleth2.xml
musíte u elementu <MetadataProvider>
změnit atribut url
dle výše uvedených „převodních tabulek“ a také v elementu <MetadataFilter>
upravit atribut certificate
.
<!-- eduID.cz --> <MetadataProvider type="XML" validate="true" url="https://metadata.eduid.cz/entities/eduid2021+idp" backingFilePath="eduid+idp.xml" maxRefreshDelay="900"> <MetadataFilter type="RequireValidUntil" maxValidityInterval="2419200"/> <MetadataFilter type="Signature" certificate="metadata2021.eduid.cz.crt.pem" verifyBackup="false"/> </MetadataProvider>
Musíte také stáhnout nový podpisový certifikát, např. následujícím příkazem:
# Stažení nového podpisového certifikátu metadata2021.eduid.cz.crt.pem wget -P /etc/shibboleth/ \ https://www.eduid.cz/docs/metadata2021.eduid.cz.crt.pem
Můžete též smazat keš metadat v adresáři /var/cache/shibboleth/
.
Po provedení výše uvedených změn nezapomeňte restartovat Shibboleth SP:
# Restart Shibboleth démona
systemctl restart shibd
U SimpleSAMLphp jsme dříve doporučovali používat ke kontrole metadat pouze otisk podpisového certifikátu. To se v konfiguračním souboru config-metarefresh.php
konfigurovalo pomocí volby validateFingerprint
následovně.
# Dřívější nastavení v konfiguračním souboru config/config-metarefresh.php # Starý metadata feed # Používá pouze otisk podpisového certifikátu $config = [ 'sets' => [ # eduID.cz 'eduidcz' => [ 'cron' => ['hourly'], 'sources' => [ [ 'src' => 'https://metadata.eduid.cz/entities/eduid+idp', 'validateFingerprint' => '2E:51:FC:08:CF:15:C5:15:48:28:AF:64:A7:97:50:80:B4:AB:5D:24', ], ], 'expireAfter' => 60*60*24*4, // Maximum 4 days cache time. 'outputDir' => 'metadata/eduidcz/', 'outputFormat' => 'flatfile', ], ], ];
Nyní je však nutné tuto volbu opravit, protože metadata jsou podepisována novým certifikátem, který má jiný otisk. Současná konfigurace tedy způsobí, že nově stažená metadata nebudou považována za platná a přestanou se tak aktualizovat. Až vyprší jejich platnost (atribut validUntil
v elementu <EntitiesDescriptor>
v metadatech), služba nebude fungovat.
Buď můžete upravit otisk (to bude fungovat, ale není to optimální) anebo začít používat ke kontrole certifikát (to je optimální).
Smažte (nebo zakomentujte) volbu validateFingerprint
a přidejte certificates
dle ukázky níže:
# Nové nastavení v konfiguračním souboru config/config-metarefresh.php # Nový metadata feed # Používá se podpisový certifikát, nikoliv jen jeho otisk $config = [ 'sets' => [ # eduID.cz 'eduidcz' => [ 'cron' => ['hourly'], 'sources' => [ [ 'src' => 'https://metadata.eduid.cz/entities/eduid2021+idp', 'certificates' => [ 'metadata2021.eduid.cz.crt.pem', ], ], ], 'expireAfter' => 60*60*24*4, // Maximum 4 days cache time. 'outputDir' => 'metadata/eduidcz/', 'outputFormat' => 'flatfile', ], ], ];
Je také potřeba mít stažený podpisový certifikát a to v podadresáři cert/
uvnitř adresáře se SimpleSAMLphp. V případě, že máte SimpleSAMLphp v adresáři /opt/simplesamlphp/
, stáhněte nový podpisový certifikát následujícím příkazem:
# Stažení certifikátu pro ověření metadat federace wget -P /opt/simplesamlphp/cert/ \ https://www.eduid.cz/docs/metadata2021.eduid.cz.crt.pem
Můžete též smazat keš metadat v adresáři /opt/simplesamlphp/metadata/<ODPOVÍDAJÍCÍ_ADRESÁŘ_DLE_VAŠÍ_KONFIGURACE>
.
Následně aktualizujte metadata tak, jak jste obyčejně zvyklí, nebo se přihlaste do webového administračního rozhraní SimpleSAMLphp a v záložce Federation zvolte v sekci Tools odkaz pro aktualizaci metadat nazvaný Metarefresh: fetch metadata.
Doporučuji, abyste ve svém vlastním zájmu aktualizovali zdroj metadat (dle výše uvedené „převodní tabulky“), stáhli si nový podpisový certifikát, smazali keš metadat a ověřili, že si vaše implementace stáhne bez problémů nová metadata a ověří je.
CESNET, z. s. p. o.
Generála Píky 26
16000 Praha 6
info@cesnet.cz
Tel: +420 234 680 222
GSM: +420 602 252 531
support@cesnet.cz