====== Aktualizace Shibboleth IdP V4 ====== Dne 3. dubna 2020 byl tento návod doplněn o odstranění nadbytečných knihoven //commons-dbcp2.jar// a //commons-pool2.jar//. Na této stránce se nachází návod, jak aktualizovat Shibboleth IdP řady 3 na řadu 4. **Důrazně doporučuji před aktualizací zálohovat databázi i konfigurace samotného Shibboleth IdP a Jetty a pročíst poznámky k vydání (ChangeLog)!** Předešlý návod pro IdP řady 3 i [[..|aktuální návod]] pro IdP řady 4 počítá se skutečností, že //IdP běží na Debianu 10 (Buster) a používá Jetty 9.4.15 z distribučních balíčků Debianu//. V případě použití staší verze systému anebo nepoužívání Jetty z balíčků distribuce, je vhodné nejprve aktualizovat systém a/nebo Jetty. V takovém případě se může hodit návod na tzv. [[cs:tech:idp:shibboleth:migration|online migraci]]. Provozování Shibboleth IdP na jiném operačním systému anebo v jiném kontejneru (např. Tomcat) není z naší strany podporováno. ===== Shibboleth IdP 3 -> Shibboleth IdP 4 ===== Pokud provozujeme Shibboleth IdP řady 3 dle návodů na webu [[:|eduID.cz]], pak je aktualizace na novou řadu 4 otázka čtyř kroků: - Aktualizovat na poslední verzi řady 3. - Aktualizovat na verzi 4.0.0. - Změnit JDBC ovladač. - Smazat nadbytečné knihovny. ==== Aktualizace na poslední verzi Shibboleth IdP řady 3 ==== Abychom mohli nejsnazším způsobem [[https://wiki.shibboleth.net/confluence/display/IDP4/Upgrading|aktualizovat na Shibboleth IdP řady 4]], musíme nejprve [[https://wiki.shibboleth.net/confluence/display/IDP30/Upgrading|aktualizovat na poslední verzi řady 3]], kterou je ke dni 30. 3. 2020 verze 3.4.6. ==== Aktualizace na Shibboleth IdP 4.0.0 ==== Před [[https://wiki.shibboleth.net/confluence/display/IDP4/Upgrading |aktualizací na řadu 4]] si pečlivě přečteme [[https://wiki.shibboleth.net/confluence/display/IDP4/ReleaseNotes#ReleaseNotes-4.0.0(March11,2020)|poznámky k vydání]]. Následně [[https://shibboleth.net/downloads/identity-provider/4.0.0/|ze stránky projektu]] stáhneme zdrojové kódy a umístíme je do adresáře ''/opt'' např. pomocí programu //wget// následujícím způsobem. Nezapomeneme ověřit SHA256 otisk a případně i GPG podpis. # Stažení zdrojového kódu Shibboleth IdP wget -P /opt \ https://shibboleth.net/downloads/identity-provider/4.0.0/shibboleth-identity-provider-4.0.0.tar.gz \ https://shibboleth.net/downloads/identity-provider/4.0.0/shibboleth-identity-provider-4.0.0.tar.gz.asc \ https://shibboleth.net/downloads/identity-provider/4.0.0/shibboleth-identity-provider-4.0.0.tar.gz.sha256 Nyní přistoupíme k samotné instalaci. # Instalace Shibboleth IdP cd /opt tar -xzf shibboleth-identity-provider-4.0.0.tar.gz cd shibboleth-identity-provider-4.0.0/ ./bin/install.sh Během instalace potvrdíme pouze zdrojový a cílový adresář, průběh vypadá následovně: Buildfile: /opt/shibboleth-identity-provider-4.0.0/bin/build.xml install: Source (Distribution) Directory (press to accept default): [/opt/shibboleth-identity-provider-4.0.0] ? Installation Directory: [/opt/shibboleth-idp] ? INFO [net.shibboleth.idp.installer.V4Install:155] - Update from version 3 to version 4.0.0 INFO [net.shibboleth.idp.installer.BuildWar:71] - Rebuilding /opt/shibboleth-idp/war/idp.war, Version 4.0.0 INFO [net.shibboleth.idp.installer.BuildWar:80] - Initial populate from /opt/shibboleth-idp/dist/webapp to /opt/shibboleth-idp/webpapp.tmp INFO [net.shibboleth.idp.installer.BuildWar:89] - Overlay from /opt/shibboleth-idp/edit-webapp to /opt/shibboleth-idp/webpapp.tmp INFO [net.shibboleth.idp.installer.BuildWar:94] - Creating war file /opt/shibboleth-idp/war/idp.war BUILD SUCCESSFUL Total time: 6 seconds Nyní restartujeme Jetty: # Restart Jetty systemctl restart jetty9 ==== Změna JDBC ovladače ==== V návodech pro Shibboleth IdP jsme historicky doporučovali používat //MySQL// pro ukládání persistentních identifikátorů a JDBC ovladač pro MySQL. Debian ale postupně přešel na //MariaDB//, kterou jsme tedy začali doporučovat namísto MySQL, avšak JDBC ovladač zůstal nadále stejný. Nyní je však možné v Debianu 10 (Buster) nainstalovat balíček s JDBC ovladačem pro MariaDB a není tak nutné stahovat zdrojové kódy z //dev.mysql.com// a ručně je hlídat aktuální — o aktualizaci se teď postará správce balíčku v Debianu. Nejprve nainstalujeme balíček s JDBC ovladačem pro MariaDB: apt install libmariadb-java Nalinkujeme právě nainstalovaný JDBC ovladač do knihoven Jetty: # Vytvoření symbolického odkazu na nový JDBC ovladač ln -s /usr/share/java/mariadb-java-client.jar \ /usr/share/jetty9/lib/ext/mariadb-java-client.jar A smažeme starý JDBC ovladač: # Smazání starého JDBC ovladače rm /usr/share/jetty9/lib/ext/mysql-connector-java-5*-bin.jar Zbývá ještě upravit konfigurační soubor Shibbolethu IdP ''conf/global.xml'', kde musíme změnit atributy ''p:driverClassName'' a ''p:databasePlatform'', vše ostatní zůstává netknuté: # Úpravy v konfiguračním souboru global.xml vim /opt/shibboleth-idp/conf/global.xml ==== Smazání nadbytečných knihoven ==== Shibboleth IdP 4.0.0 bez viditelných oznámení — podobně jako řada 3 od verze 3.4.0 — obsahuje //commons-dbcp2.jar// a //commons-pool2.jar//, takže není nutné tyto knihovny dodávat do Jetty. Můžeme je proto odstranit. # Smazání nadbytečných knihoven rm -i /usr/share/jetty9/lib/ext/commons-dbcp2-*.jar \ /usr/share/jetty9/lib/ext/commons-pool2-*.jar Zbývá přegenerovat WAR soubor a restartovat Jetty: /opt/shibboleth-idp/bin/build.sh systemctl restart jetty9 Aktualizace Shibboleth IdP na verzi 4.0.0 včetně aktualizace JDBC ovladače a odebrání nadbytečných knihoven je hotova. ===== Shibboleth IdP V4.0.0 -> Shibboleth IdP V4.0.1 ===== Před aktualizací na V4.0.1 si pečlivě přečteme [[https://wiki.shibboleth.net/confluence/display/IDP4/ReleaseNotes#ReleaseNotes-4.0.1(June3,2020)|poznámky k vydání]]. Jedná se o opravné vydání. Následně [[https://shibboleth.net/downloads/identity-provider/4.0.1/|ze stránky projektu]] stáhneme zdrojové kódy a umístíme je do adresáře ''/opt'' např. pomocí programu //wget// následujícím způsobem. Nezapomeneme ověřit SHA256 otisk a případně i GPG podpis. # Stažení zdrojového kódu Shibboleth IdP wget -P /opt \ https://shibboleth.net/downloads/identity-provider/4.0.1/shibboleth-identity-provider-4.0.1.tar.gz \ https://shibboleth.net/downloads/identity-provider/4.0.1/shibboleth-identity-provider-4.0.1.tar.gz.asc \ https://shibboleth.net/downloads/identity-provider/4.0.1/shibboleth-identity-provider-4.0.1.tar.gz.sha256 Nyní přistoupíme k samotné instalaci. # Instalace Shibboleth IdP cd /opt tar -xzf shibboleth-identity-provider-4.0.1.tar.gz cd shibboleth-identity-provider-4.0.1/ ./bin/install.sh Během instalace potvrdíme pouze zdrojový a cílový adresář, průběh vypadá následovně: Buildfile: /opt/shibboleth-identity-provider-4.0.1/bin/build.xml install: Source (Distribution) Directory (press to accept default): [/opt/shibboleth-identity-provider-4.0.1] ? Installation Directory: [/opt/shibboleth-idp] ? INFO [net.shibboleth.idp.installer.V4Install:155] - Update from version 4.0.0 to version 4.0.1 INFO [net.shibboleth.idp.installer.BuildWar:71] - Rebuilding /opt/shibboleth-idp/war/idp.war, Version 4.0.1 INFO [net.shibboleth.idp.installer.BuildWar:80] - Initial populate from /opt/shibboleth-idp/dist/webapp to /opt/shibboleth-idp/webpapp.tmp INFO [net.shibboleth.idp.installer.BuildWar:89] - Overlay from /opt/shibboleth-idp/edit-webapp to /opt/shibboleth-idp/webpapp.tmp INFO [net.shibboleth.idp.installer.BuildWar:94] - Creating war file /opt/shibboleth-idp/war/idp.war BUILD SUCCESSFUL Total time: 6 seconds Nyní restartujeme Jetty: # Restart Jetty systemctl restart jetty9 Aktualizace na V4.0.1 je hotová.