cs:tech:idp:online-migration

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

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énoJelikož 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ž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) 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 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 ​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>​.
-