~~NOTOC~~ ======Upgrade von IdP 3.x====== {{INLINETOC 2}} ===== Hinweise zum Upgrade innerhalb der IdP v3 Produktlinie ===== https://wiki.shibboleth.net/confluence/display/IDP30/Upgrading. Etwas ausführlicher ist die Anleitung von [[https://www.switch.ch/aai/guides/idp/installation/#keepinguptodate|SWITCH]]. \\ Unter Linux ist insbesondere darauf zu achten, dass beim Upgrade die Schreib-/Leseberechtigungen korrekt gesetzt werden (Parameter'' -Didp.conf.filemode=644'' beim Aufruf von ''./bin/install.sh''). Siehe hierzu auch die Anleitung von SWITCH unter [[https://www.switch.ch/aai/guides/idp/installation/#upgrading|8.2. Common upgrade instructions for the Shibboleth IdP 3]]. Für den Fall, dass die deutsche Übersetzung danach fehlt, stellen Sie sicher, dass die [[de:shibidp:config-i18n|Sprachdatei]] unter dem Pfad ''/system/messages/messages_de.properties'' (meist: ''/opt/shibboleth-idp/system/messages/messages_de.properties'') liegt. ===== Überblick über die Konfigurationsänderungen ab IdP v3.4.0 - Vorbereitung auf IdP v4.x ===== Als Voraussetzung für ein erfolgreiches Upgrade auf Version 4.x sollte zuvor mindestens die Version Shib IdP 3.4.6, installiert worden sein. Siehe hierzu im Shibboleth Wiki unter https://wiki.shibboleth.net/confluence/display/IDP4/Upgrading Ab IdP v3.4.0 werden Konfigurationsparameter als veraltet geloggt, die in Version 4.x nicht mehr vorkommen werden. An dieser Stelle sammeln wir fortlaufend die wichtigsten Änderungen. Das erklärte Ziel der Shibboleth-Entwickler*innen ist es, dass eine mitgepflegte Konfiguration nach einem Upgrade auf IdP v4.x fehlerfrei startet. Die jeweiligen vollständigen [[https://wiki.shibboleth.net/confluence/display/IDP30/ReleaseNotes#ReleaseNotes-3.4.0(October10,2018) | Release Notes]] sind wie immer im Shibboleth-Wiki. Dort finden Sie ebenfalls eine vollständige [[https://wiki.shibboleth.net/confluence/display/IDP30/DeprecatedIdPV4|Übersicht über abgekündigte Konfigurationsdirektiven (DeprecatedIdPV4)]]. ==== conf/idp.properties ==== - Sicherstellen, dass ''idp.cookie.secure = true'' gesetzt ist (es sei denn, es soll explizit nicht so sein): idp.cookie.secure = true [...] - Änderung der folgenden zwei Direktiven: * ''idp.consent.userStorageKey'' ersetzen durch ''idp.consent.attribute-release.userStorageKey'' und ''idp.consent.terms-of-use.userStorageKey'' * ''idp.consent.userStorageKeyAttribute'' ersetzen durch ''idp.consent.attribute-release.userStorageKeyAttribute'' und ''idp.consent.terms-of-use.userStorageKeyAttribute'' # Beispiel: [...] idp.consent.attribute-release.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey idp.consent.attribute-release.userStorageKeyAttribute = %{idp.persistentId.sourceAttribute} idp.consent.terms-of-use.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey idp.consent.terms-of-use.userStorageKeyAttribute = %{idp.persistentId.sourceAttribute} [...] ==== conf/c14n/subject-c14n.xml ==== Der LegacyPrincipalConnector wird entfernt (oder zumindest auskommentiert): [...] [...] ==== conf/attribute-resolver.xml ==== - Im Attribute Resolver wird die ''Dependency''-Direktive ersetzt. * **Wenn die Dependency sich auf einen unten definierten Data Connector bezieht**, wird ab IdP v3.4.2 stattdessen ''InputDataConnector'' verwendet. Bei jedem InputDataConnector muss das zu holende Attribut mit ''attributeNames'' mit angegeben werden. Damit wird die ''sourceAttributeID'' ersetzt. # bis IdP v3.3.x: [...] E-mail E-Mail E-Mail address E-Mail Adresse [...] # ab IdP v3.4.x: [...] E-mail E-Mail E-Mail address E-Mail Adresse [...] * **Wenn die Dependency sich auf ein anderes, in dieser Datei definiertes Attribut bezieht**, das in conf/attribute-resolver.xml definiert wird, wird stattdessen ''InputAttributeDefinition'' verwendet. [...] User Name Nutzerkennung Local User Id Nutzerkennung der Heimateinrichtung Principal name Netz-Id A unique identifier for a person, mainly for inter-institutional user identification Eindeutige, einrichtungsübergreifende Nutzerkennung [...] * **Abhängigkeiten in Data Connectors** müssen nach demselben Prinzip angepasst werden: shibboleth.MySQLDataSource ==== metadata/idp-metadata.xml mit Ablaufdatum ==== Ab Shib IdP v3.4.x steht nach einer Neuinstallation ein Ablaufdatum in den IdP-Metadaten (metadata/idp-metadata.xml), das entfernt werden muss. Im folgenden Beispiel muss ''validUntil="2019-05-22T11:01:10.621Z"'' gelöscht werden. [...] ==== conf/ldap.properties ==== Folgende Zeile muss in den LDAP-Einstellungen ab Shibboleth 3.4.4 aktualisiert werden, falls vorhanden: # alt - mit dem Attribut CN als Suchfilter: # idp.attribute.resolver.LDAP.searchFilter = (CN=$requestContext.principalName) # neu - mit dem Attribut CN als Suchfilter: idp.attribute.resolver.LDAP.searchFilter = (CN=$resolutionContext.principal) ===== Betriebssystem-Upgrade auf Debian 10 ===== Debian 10 kommt mit Tomcat9 und Java 11. Das Upgrade besteht grob aus folgenden Schritten. Danke an den Kollegen aus Bremerhaven! * System-Upgrade * Installation der neuen Pakete (tomcat9, mariadb-server, libmariadb-java, libtaglibs-standard-impl-java, default-libmysqlclient-dev bzw. libmariadb-dev) * Anpassen der Default-Java-Version (''update-alternatives --config java'') * Prüfen der [[de:shibidp:prepare-tomcat|Tomcat-Konfiguration]] * Kopieren der Catalina/localhost-Config zu Tomcat9 * "/usr/share/java/" zu ''/etc/tomcat9/catalina.properties'' hinzufügen (common.loader) * Anpassen der /etc/default/tomcat9 * systemctl edit tomcat9: [Unit] After=mariadb.service Wants=mariadb.service [Service] ReadWritePaths=/opt/shibboleth-idp/logs/ ReadWritePaths=/opt/shibboleth-idp/metadata/ * Shibboleth-IdP neu bauen (bin/build.sh) * falls nötig: [[https://doku.tid.dfn.de/de:shibidp3config-idm#java-version|LDAP-Workaround aktivieren]] * Anpassen der Berechtigungen von User/Gruppe ''tomcat8'' zu ''tomcat'' * Deinstallation alter Pakete {{tag>archiv}}