Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze | Následující verze Obě strany příští revize | ||
cs:tech:idp:online-migration [2018/02/22 14:53] jop@cesnet.cz [Přepnutí] |
cs:tech:idp:online-migration [2018/02/22 18:16] jop@cesnet.cz |
||
---|---|---|---|
Řádek 19: | Řádek 19: | ||
==== Nový server ==== | ==== Nový server ==== | ||
- | * DNS: ''%%idp-new.example.org%%'' | + | * DNS: není třeba, pro instalaci stačí přístup přes IP adresu |
* IPv4: ''%%192.0.2.20%%'' | * IPv4: ''%%192.0.2.20%%'' | ||
* IPv6: ''%%2001:db8::20%%'' | * IPv6: ''%%2001:db8::20%%'' | ||
Řádek 27: | Řádek 27: | ||
===== Postup ===== | ===== Postup ===== | ||
- | Nainstalujeme a nakonfigurujeme nový server dostupný jako ''%%idp-new.example.org%%'' jako kdyby se jednalo o server ''%%idp.example.org%%''. //Pouze v DNS vedeme server jako// ''%%idp-new.example.org%%''. | + | Nainstalujeme a nakonfigurujeme nový server jako kdyby se jednalo o stávající server ''%%idp.example.org%%''. |
- | Při konfiguraci Shibboleth IdP na novém serveru použijeme //entityID// stávajícího serveru, tedy ''%%https://idp.example.org/idp/shibboleth%%'', a nezapomeneme použít stávající "ceritifikáty" (ve skutečnosti páry veřejných a odpovídajících soukromých klíčů) ''%%idp-encryption.{crt,key}%%'' a ''%%idp-signing.{crt,key}%%'', které se standardně nacházejí v adresáři ''%%/opt/shibboleth-idp/credentials/%%''. S největší pravděpodobností můžeme zapomenout na "certifikáty" takzvaného backchannelu, tedy ''%%backchannel.{crt,p12}%%'', jelikož ho v dnešní době již téměř nikdo nepoužívá. | + | Při konfiguraci Shibboleth IdP na novém serveru použijeme //entityID// stávajícího serveru, tedy ''%%https://idp.example.org/idp/shibboleth%%'', použijeme také stávající "ceritifikáty" (ve skutečnosti páry veřejných a odpovídajících soukromých klíčů) ''%%idp-encryption.{crt,key}%%'' a ''%%idp-signing.{crt,key}%%'', které se standardně nachází v adresáři ''%%/opt/shibboleth-idp/credentials/%%''. S největší pravděpodobností můžeme zapomenout na "certifikáty" takzvaného backchannelu, tedy ''%%backchannel.{crt,p12}%%'', jelikož ho v dnešní době již téměř nikdo nepoužívá. |
Samozřejmostí je identická konfigurace např. atributů (''%%attribute-resolver.xml%%''), ale i pravidel jejich uvolňování (''%%attribute-filter.xml%%'') a tak dále. Nezapomeneme ani na přenos databáze s persistentními identifikátory a samozřejmě použít stejnou sůl. | Samozřejmostí je identická konfigurace např. atributů (''%%attribute-resolver.xml%%''), ale i pravidel jejich uvolňování (''%%attribute-filter.xml%%'') a tak dále. Nezapomeneme ani na přenos databáze s persistentními identifikátory a samozřejmě použít stejnou sůl. | ||
Řádek 41: | Řádek 41: | ||
2001:db8::20 idp.example.org | 2001:db8::20 idp.example.org | ||
</code> | </code> | ||
- | Tím jsme docílili toho, že při zadání adresy ''%%https://idp.example.org%%'' do webového prohlížeče budeme ve skutečnosti komunikovat se serverem ''%%idp-new.example.org%%''. Nicméně jelikož tento nový server zná privátní klíče k veřejným klíčům uvedených v metadatech federace, bude ''%%idp-new.example.org%%'' vystupovat v rámci federace jako stávající server ''%%idp.example.org%%''. | + | Tím jsme docílili toho, že při zadání adresy ''%%https://idp.example.org%%'' do webového prohlížeče budeme ve skutečnosti komunikovat s novým serverem, kterému jsme v DNS zatím nedali žádné jméno. Jelikož tento server zná privátní klíče k veřejným klíčům uvedených v metadatech federace, bude vystupovat v rámci federace jako stávající server ''%%idp.example.org%%''. |
- | Tento trik funguje, jelikož již není potřeba používat "backchannel" a veškerá komunikace (přihlášení, atributy, ...) jde přes cookies webového prohlížeče. | + | Tento trik funguje, protože již není potřeba používat "backchannel" a veškerá komunikace (přihlášení, atributy, ...) funguje pomocí cookies webového prohlížeče. |
- | Můžeme se tedy přihlásit na libovolnou službu ve federaci a otestovat, zda služba běží i s nově nakonfigurovaným IdP. | + | Můžeme se tedy přihlásit na libovolnou službu ve federaci a otestovat, zda služba funguje správně i s nově nakonfigurovaným IdP. |
===== Přepnutí ===== | ===== Přepnutí ===== | ||
- | Po úspěšném otestování můžeme přistoupit k samotnému přepnutí. To provedeme ve třech krocích pomocí změn DNS záznamů. | + | Po úspěšném otestování můžeme přistoupit k samotnému přepnutí. To provedeme ve třech krocích pomocí změn DNS záznamů: |
- | V prvním kroku nejprve snížíme TTL hodnoty pro obě domény (''%%idp.example.org%%'' i ''%%idp-new.example.org%%'') na co nejnižší hodnotu, která je možná, abychom dokázali přepnout uživatele co nejrychleji po vymazání keší DNS serverů. V našem případě to bylo z 60 minut na 5 minut. Nyní vyčkáme, až se staré nakešované DNS záznamy nahradí novými záznamy. | + | - Snížíme TTL hodnoty u DNS záznamů A (IPv4) i AAAA (IPv6) pro ''%%idp.example.org%%'' na co nejnižší hodnotu, která je možná, abychom dokázali přepnout uživatele co nejrychleji po vypršení platnosti nakešovaných DNS záznamů. Nyní vyčkáme, až se staré nakešované DNS záznamy nahradí novými záznamy. |
- | + | - Necháme starý server v DNS přejmenovat z ''%%idp.example.org%%'' na ''%%idp-old.example.org%%'' a nový server následně pojmenujeme jako ''%%idp.example.org%%''. TTL ponecháme na snížených hodnotách, abychom se v případě potřeby mohli změnou DNS záznamů vrátit zpět a používat i nadále IdP na původním serveru. Ten, kdo má stále nakešované staré DNS záznamy, se připojí na staré IdP, přihlásí se a vše funguje. Ten, kdo má již nové DNS záznamy, se připojí na nové IdP, přihlásí se a také vše funguje. | |
- | Ve druhém kroku necháme starý server v DNS přejmenovat z ''%%idp.example.org%%'' na ''%%idp-old.example.org%%'' a nový server přejmenovat z ''%%idp-new.example.org%%'' na ''%%idp.example.org%%''. TTL ponecháme na snížených hodnotách, abychom v se případě potřeby mohli změnou DNS vrátit zpět k původním hodnotám a používat i nadále IdP na původním serveru. | + | - Nyní již jen necháme zvýšit hodnoty TTL na standardní úroveň a migrace je hotova. Starý server (včetně DNS záznamu ''%%idp-old.example.org%%'' a alokované IP adresy) můžeme zrušit. Samozřejmostí je také odebrání záznamů z ''%%/etc/hosts%%'' pro doménu ''%%idp.example.org%%''. |
- | + | ||
- | Ten, kdo má stále nakešované staré DNS záznamy, se připojí na staré IdP, přihlásí se a vše funguje. Ten, kdo má již nové DNS záznamy, se připojí na nové IdP, přihlásí se a také vše funguje. | + | |
- | + | ||
- | Ve třetím kroku necháme zvýšit hodnoty TTL na standardní úroveň a migrace je hotova. Starý server (včetně DNS záznamu ''%%idp-old.example.org%%'' a alokované IP adresy) můžeme zrušit. Samozřejmostí je také odebrání záznamů z ''/etc/hosts''. | + | |
===== Kontakt ===== | ===== Kontakt ===== | ||
V případě jakýchkoliv nejasností, dotazů či tipů, pište na e-mail <info@eduid.cz>. | V případě jakýchkoliv nejasností, dotazů či tipů, pište na e-mail <info@eduid.cz>. | ||
- | |||