====== 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á.