Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:shibidp:install [2023/12/05 10:10] Wolfgang Pempede:shibidp:install [2025/03/10 11:52] (aktuell) – Tag geändert Doreen Liebenau
Zeile 1: Zeile 1:
 <- de:shibidp:prepare-http| Vorarbeiten: Webserver ^ de:shibidp:uebersicht|Überblick: Tutorial zur IdP-Inbetriebnahme ^ de:shibidp:config|Start IdP-Konfiguration -> <- de:shibidp:prepare-http| Vorarbeiten: Webserver ^ de:shibidp:uebersicht|Überblick: Tutorial zur IdP-Inbetriebnahme ^ de:shibidp:config|Start IdP-Konfiguration ->
  
-====== Installation Shibboleth IdP 4.x ======+====== Installation Shibboleth IdP 5.x ======
  
 ===== IdP herunterladen ===== ===== IdP herunterladen =====
  
-Laden Sie den Shibboleth IdP herunter, prüfen Sie die Signatur und entpacken Sie das Archiv. Die aktuelle IdP-Version findet sich stets unter https://shibboleth.net/downloads/identity-provider/latest/. Es empfiehlt sich, die [[https://wiki.shibboleth.net/confluence/display/IDP4/ReleaseNotes|Release Notes]] zu studieren.+Laden Sie den Shibboleth IdP herunter, prüfen Sie die Signatur und entpacken Sie das Archiv. Die aktuelle IdP-Version findet sich stets unter https://shibboleth.net/downloads/identity-provider/latest/. Es empfiehlt sich, die [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199500367/ReleaseNotes|Release Notes]] zu studieren.
  
 +Herunterladen des Shibboleth IdP, der Signatur, der Prüfsumme und der PGP-Keys:
 <code bash> <code bash>
 root@idp:~# mkdir /opt/install root@idp:~# mkdir /opt/install
-root@idp:~# wget -P /opt/install https://shibboleth.net/downloads/identity-provider/latest/shibboleth-identity-provider-4.x.x.tar.gz +root@idp:~# wget -P /opt/install https://shibboleth.net/downloads/identity-provider/latest/shibboleth-identity-provider-5.x.x.tar.gz 
-root@idp:~# wget -P /opt/install https://shibboleth.net/downloads/identity-provider/latest/shibboleth-identity-provider-4.x.x.tar.gz.asc+root@idp:~# wget -P /opt/install https://shibboleth.net/downloads/identity-provider/latest/shibboleth-identity-provider-5.x.x.tar.gz.asc 
 +root@idp:~# wget -P /opt/install https://shibboleth.net/downloads/identity-provider/archive/5.1.2/shibboleth-identity-provider-5.x.x.tar.gz.sha256
 root@idp:~# wget -P /opt/install https://shibboleth.net/downloads/PGP_KEYS root@idp:~# wget -P /opt/install https://shibboleth.net/downloads/PGP_KEYS
 +</code>
 +
 +Die Korrektheit des Downloads lässt sich mit Hilfe einer Prüfsumme überprüfen. Über die Prüfsumme wird festgestellt, ob. z.B. Übertragungsfehler aufgetreten sind. 
 +
 +Prüfsumme checken: 
 +<code bash>
 +root@idp:~# cd /opt/install && sha256sum -c shibboleth-identity-provider-5.x.x.tar.gz.sha256
 +shibboleth-identity-provider-5.x.x.tar.gz: OK
 +</code>
 +
 +Importieren der öffentlichen Schlüssel und verifizieren der Signatur: 
 +<code bash>
 root@idp:~# gpg --import /opt/install/PGP_KEYS root@idp:~# gpg --import /opt/install/PGP_KEYS
-root@idp:~# gpg --verify /opt/install/shibboleth-identity-provider-4.x.x.tar.gz.asc /opt/install/shibboleth-identity-provider-4.x.x.tar.gz +root@idp:~# gpg --verify /opt/install/shibboleth-identity-provider-5.x.x.tar.gz.asc /opt/install/shibboleth-identity-provider-5.x.x.tar.gz 
-root@idp:~# tar -xzf /opt/install/shibboleth-identity-provider-4.x.x.tar.gz -C /opt/install+gpg: Signature made Mon 15 Apr 2024 06:03:42 PM CEST 
 +gpg:                using RSA key 7D27E610B8A3DC52 
 +gpg: Good signature from "Philip David Smart <philip.smart@jisc.ac.uk>" [unknown] 
 +gpg:                 aka "[jpeg image of size 9378]" [unknown] 
 +gpg: WARNING: This key is not certified with a trusted signature! 
 +gpg:          There is no indication that the signature belongs to the owner. 
 +Primary key fingerprint: B5B5 DD33 2142 AD65 7E8D  87AC 7D27 E610 B8A3 DC52
 </code> </code>
 +Entscheiden ist hier "Good signature". Die Warnung "This key is not certified with a trusted signature!" können Sie ignorieren. 
  
 +Entpacken des Archivs
 +<code bash>
 +root@idp:~# tar -xzf /opt/install/shibboleth-identity-provider-5.x.x.tar.gz -C /opt/install
 +</code>
 ===== Wahl der Entity ID ===== ===== Wahl der Entity ID =====
  
Zeile 26: Zeile 51:
 ===== Interaktiven Installer aufrufen ===== ===== Interaktiven Installer aufrufen =====
  
-Das Installationsskript findet sich unter ''/opt/install/shibboleth-identity-provider-4.x.x/bin/install.sh''. Beim Ausführen werden die wichtigsten Angaben zum IdP abgefragt, wie der FQDN und das Zielverzeichnis, in das der IdP installiert werden soll. Der Default hierfür ist ''/opt/shibboleth-idp''.+Das Installationsskript findet sich unter ''/opt/install/shibboleth-identity-provider-5.x.x/bin/install.sh''. Beim Ausführen werden die wichtigsten Angaben zum IdP abgefragt, wie der FQDN und das Zielverzeichnis, in das der IdP installiert werden soll. Der Default hierfür ist ''/opt/shibboleth-idp''.
  
 <code bash> <code bash>
-root@idp:~# JAVA_HOME=/usr /opt/install/shibboleth-identity-provider-4.x.x/bin/install.sh  +root@idp:~# JAVA_HOME=/usr /opt/install/shibboleth-identity-provider-5.x.x/bin/install.sh  
-Buildfile: /opt/install/shibboleth-identity-provider-4.x.x/bin/build.xml +Installation Directory: [/opt/shibboleth-idp] ?  
- +INFO  - New Install.  Version: 5.x.x
-install: +
-Source (Distribution) Directory (press <enter> to accept default): [/opt/install/shibboleth-identity-provider-4.x.x] ?  +
- +
-Installation Directory: [/opt/shibboleth-idp] ?  +
- +
-INFO [net.shibboleth.idp.installer.V4Install:151] - New Install.  Version: 4.x.x+
 Host Name: [192.168.0.5] ?  Host Name: [192.168.0.5] ? 
 idp-dev.hochschule-XY.de idp-dev.hochschule-XY.de
-INFO [net.shibboleth.idp.installer.V4Install:549] - Creating idp-signing, CN = idp-dev.hochschule-XY.de URI = https://idp-dev.hochschule-XY.de/idp/shibboleth, keySize=3072 +INFO  - Creating idp-signing, CN = idp-dev.hochschule-XY.de URI = https://idp-dev.hochschule-XY.de/idp/shibboleth, keySize=3072 
-INFO [net.shibboleth.idp.installer.V4Install:549] - Creating idp-encryption, CN = idp-dev.hochschule-XY.de URI = https://idp-dev.hochschule-XY.de/idp/shibboleth, keySize=3072 +INFO  - Creating idp-encryption, CN = idp-dev.hochschule-XY.de URI = https://idp-dev.hochschule-XY.de/idp/shibboleth, keySize=3072 
-Backchannel PKCS12 Password: +INFO  - Creating backchannel keystore, CN = idp-dev.hochschule-XY.de URI = https://idp-dev.hochschule-XY.de/idp/shibboleth, keySize=3072 
-Re-enter password:  +INFO  - Creating Sealer KeyStore 
-INFO [net.shibboleth.idp.installer.V4Install:592] - Creating backchannel keystore, CN = idp-dev.hochschule-XY.de URI = https://idp-dev.hochschule-XY.de/idp/shibboleth, keySize=3072 +INFO  - No existing versioning property, initializing...
-Cookie Encryption Key Password: +
-Re-enter password:  +
-INFO [net.shibboleth.idp.installer.V4Install:633] - Creating backchannel keystore, CN = idp-dev.hochschule-XY.de URI = https://idp-dev.hochschule-XY.de/idp/shibboleth, keySize=3072 +
-INFO [net.shibboleth.utilities.java.support.security.BasicKeystoreKeyStrategyTool:166] - No existing versioning property, initializing...+
 SAML EntityID: [https://idp-dev.hochschule-XY.de/idp/shibboleth] ?  SAML EntityID: [https://idp-dev.hochschule-XY.de/idp/shibboleth] ? 
  
-Attribute Scope: [hochschule-XY.de] ? +Attribute Scope: [idp-dev.hochschule-XY.de] ? 
  
-INFO [net.shibboleth.idp.installer.V4Install:433] Creating Metadata to /opt/shibboleth-idp/metadata/idp-metadata.xml +INFO  - Initializing OpenSAML using the Java Services API 
-INFO [net.shibboleth.idp.installer.BuildWar:71] Rebuilding /opt/shibboleth-idp/war/idp.war, Version 4.x.x +INFO  - Algorithm failed runtime support check, will not be usable: http://www.w3.org/2001/04/xmlenc#ripemd160 
-INFO [net.shibboleth.idp.installer.BuildWar:80] - Initial populate from /opt/shibboleth-idp/dist/webapp to /opt/shibboleth-idp/webpapp.tmp +INFO  - Algorithm failed runtime support check, will not be usable: http://www.w3.org/2001/04/xmldsig-more#hmac-ripemd160 
-INFO [net.shibboleth.idp.installer.BuildWar:89] - Overlay from /opt/shibboleth-idp/edit-webapp to /opt/shibboleth-idp/webpapp.tmp +INFO  - Algorithm failed runtime support check, will not be usablehttp://www.w3.org/2001/04/xmldsig-more#rsa-ripemd160 
-INFO [net.shibboleth.idp.installer.BuildWar:94] - Creating war file /opt/shibboleth-idp/war/idp.war +INFO  - Including auto-located properties in /opt/shibboleth-idp/conf/ldap.properties 
- +INFO  - Including auto-located properties in /opt/shibboleth-idp/conf/services.properties 
-BUILD SUCCESSFUL +INFO  Including auto-located properties in /opt/shibboleth-idp/conf/admin/admin.properties 
-Total time: 52 seconds+INFO  - Including auto-located properties in /opt/shibboleth-idp/conf/saml-nameid.properties 
 +INFO  - Including auto-located properties in /opt/shibboleth-idp/conf/authn/authn.properties 
 +INFO  - Including auto-located properties in /opt/shibboleth-idp/conf/c14n/subject-c14n.properties 
 +INFO  Creating Metadata to /opt/shibboleth-idp/metadata/idp-metadata.xml 
 +INFO  - Rebuilding /opt/test/war/idp.war, Version 5.x.x 
 +INFO  - Initial populate from /opt/shibboleth-idp/dist/webapp to /opt/test/webpapp.tmp 
 +INFO  - Overlay from /opt/shibboleth-idp/edit-webapp to /opt/test/webpapp.tmp 
 +INFO  - Creating war file /opt/shibboleth-idp/war/idp.war
 </code> </code>
- 
-Die beiden abgefragten Passwörter werden in die IdP-Config geschrieben, müssen also nicht notiert oder gemerkt werden. Wählen Sie daher möglichst starke Passwörter. Der IdP wird dann im angegebenen Zielverzeichnis installiert. 
  
 ===== Leserechte für Tomcat-User korrigieren ===== ===== Leserechte für Tomcat-User korrigieren =====
Zeile 86: Zeile 106:
 </callout> </callout>
  
-Zur Darstellung der Status-Seite muss +Zur Darstellung der Status-Seite muss eine aktuelle Version der Jakarta JSTL eingebunden werden: 
- +<code bash> 
-  * die Java Standard Tag Library (JSTL) im Tomcat bereit stehen (siehe [[de:shibidp:prepare-tomcat#java_standard_tag_library_jstl|Vorarbeiten]])+# Download 
-  * die IdP Status URL für Ihr eigenes Netz und das Monitoring-Netz des DFN freigegeben werden. Damit das DFN-AAI-Monitoring nur auf die Status-Seite zugreifen kann, erstellen Sie eine separates ''<entry>'' Element mit der id ''StatusAccessByIPAddress'': +root@idp:~# wget -P /opt/shibboleth-idp/edit-webapp/WEB-INF/lib/ https://repo.maven.apache.org/maven2/org/glassfish/web/jakarta.servlet.jsp.jstl/3.0.1/jakarta.servlet.jsp.jstl-3.0.1.jar 
 +root@idp:~wget -P /opt/shibboleth-idp/edit-webapp/WEB-INF/lib/ https://repo.maven.apache.org/maven2/jakarta/servlet/jsp/jstl/jakarta.servlet.jsp.jstl-api/3.0.2/jakarta.servlet.jsp.jstl-api-3.0.2.jar 
 +# build erneut ausführen 
 +root@idp:~# sudo /opt/shibboleth-idp/bin/build.sh -Didp.target.dir=/opt/shibboleth-idp   
 +# Neustart Tomcat 
 +root@idp:~# sudo systemctl restart tomcat10.service  
 +</code> 
 +  * die IdP Status URL für Ihr eigenes Netz und das Monitoring-Netz des DFN freigegeben werden. Damit das DFN-AAI-Monitoring nur auf die Status-Seite zugreifen kann, erstellen Sie eine separates ''<entry>'' Element mit der id ''**Status**AccessByIPAddress'': 
  
 <file xml /opt/shibboleth-idp/conf/access-control.xml> <file xml /opt/shibboleth-idp/conf/access-control.xml>
Zeile 108: Zeile 135:
 </file> </file>
  
-Dieser Eintrag muss dann noch in ''conf/admin/admin.properties'' der Status-Seite zugewiesen werden:+Das default-''<entry>'' Element mit der id ''AccessByIPAddress'' (ohne "Status") bleibt bestehen. Mit diesem regeln Sie den Zugriff auf die Authentifizierungsdienste des IdP. Welche Properties dies betrifft, wird in ''conf/admin/admin.properties'' festgelegt. 
 + 
 +Der Eintrag des separaten ''<entry>'' Elements muss dann noch in ''conf/admin/admin.properties'' der Status-Seite zugewiesen werden:
  
 <file properties ./conf/admin/admin.properties> <file properties ./conf/admin/admin.properties>
 idp.status.accessPolicy=StatusAccessByIPAddress idp.status.accessPolicy=StatusAccessByIPAddress
 </file> </file>
 +
 +\\
 +
  
 ===== Tomcat-Neustart und erster Test ===== ===== Tomcat-Neustart und erster Test =====
Zeile 118: Zeile 150:
 Jetzt kann Tomcat neu gestartet werden: Jetzt kann Tomcat neu gestartet werden:
 <code bash> <code bash>
-root@idp:# systemctl restart tomcat9+root@idp:# systemctl restart tomcat10
 </code> </code>
 Dabei lassen Sie am besten in drei Terminalfenstern den Tomcat- und die beiden relevanten IdP-Logs mitlaufen: Dabei lassen Sie am besten in drei Terminalfenstern den Tomcat- und die beiden relevanten IdP-Logs mitlaufen:
  
 <code bash> <code bash>
-root@idp:# tail -f /var/log/tomcat9/catalina.DATUM.log /var/log/tomcat9/localhost.DATUM.log+root@idp:# tail -f /var/log/tomcat10/catalina.DATUM.log /var/log/tomcat9/localhost.DATUM.log
 </code> </code>
  
Zeile 142: Zeile 174:
 ====== Vorbereitung der IdP-Metadaten ====== ====== Vorbereitung der IdP-Metadaten ======
  
-Die Metadatenverwaltung der DFN-AAI kann die Metadaten Ihres IdP einlesen. Das verringert den Aufwand beim Eintragen der IdP-Metadaten. Wir empfehlen, vor dem initialen Registrieren des IdPs in ''./metadata/idp-metadata.xml'' die fehlenden Einträge zu aktivieren, damit die Felder in der Metadatenverwaltung ausgefüllt werden können. Im Folgenden sind nur die relevanten Ausschnitte angegeben:+Die Metadatenverwaltung der DFN-AAI kann die Metadaten Ihres IdP einlesen. Das verringert den Aufwand beim Eintragen der IdP-Metadaten. Ein Nachtragen, z.B. des Logos ist jedoch auch im Nachhinein in der Metadatenverwaltung möglich. Weitere Hilfe zum Ausfüllen der Metadaten finden Sie in unserer [[de:checklist|Checkliste]]. Wir empfehlen, vor dem initialen Registrieren des IdPs in ''./metadata/idp-metadata.xml'' die fehlenden Einträge zu aktivieren, damit die Felder in der Metadatenverwaltung ausgefüllt werden können. Im Folgenden sind nur die relevanten Ausschnitte angegeben:
  
 <code xml ./metadata/idp-metadata.xml> <code xml ./metadata/idp-metadata.xml>
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
-<!-- In der folgenden Zeile muss das Ablaufdatum dieses Metadatensatz entfernt werden, z.B. validUntil="2020-04-06T13:35:26.645Z". --> 
 <EntityDescriptor  xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:shibmd="urn:mace:shibboleth:metadata:1.0" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui" xmlns:req-attr="urn:oasis:names:tc:SAML:protocol:ext:req-attr" entityID="https://idp.hochschule-XY.de/idp/shibboleth"> <EntityDescriptor  xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:shibmd="urn:mace:shibboleth:metadata:1.0" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui" xmlns:req-attr="urn:oasis:names:tc:SAML:protocol:ext:req-attr" entityID="https://idp.hochschule-XY.de/idp/shibboleth">
  
Zeile 159: Zeile 190:
                 <mdui:Description xml:lang="en">Identity Provider of XY University</mdui:Description>                 <mdui:Description xml:lang="en">Identity Provider of XY University</mdui:Description>
                 <mdui:Description xml:lang="de">Identity Provider der Hochschule XY</mdui:Description>                 <mdui:Description xml:lang="de">Identity Provider der Hochschule XY</mdui:Description>
-                <mdui:Logo height="16" width="16">https://idp-dev.hochschule-XY.de/favicon.ico</mdui:Logo>+                <mdui:Logo height="16" width="16">https://idp-dev.hochschule-XY.de/idp/images/favicon.ico</mdui:Logo>
                 <mdui:Logo height="80" width="80">https://idp-dev.hochschule-XY.de/idp/images/logo.png</mdui:Logo>                 <mdui:Logo height="80" width="80">https://idp-dev.hochschule-XY.de/idp/images/logo.png</mdui:Logo>
             </mdui:UIInfo>             </mdui:UIInfo>
Zeile 198: Zeile 229:
 </code> </code>
  
-<callout color="#ff9900" title="Einmalige Verwendung der idp-metadata.xml">+<callout type="danger" title="Einmalige Verwendung der idp-metadata.xml">
 Die Datei ''./metadata/idp-metadata.xml'' wird in der DFN-AAI nicht verwendet. Sie wird später weder vom IdP aktualisiert, noch von anderen Teilnehmern benötigt. Sie wird hier **ausschließlich für das initiale Einlesen in die Metadatenverwaltung** editiert und verwendet! Die Datei ''./metadata/idp-metadata.xml'' wird in der DFN-AAI nicht verwendet. Sie wird später weder vom IdP aktualisiert, noch von anderen Teilnehmern benötigt. Sie wird hier **ausschließlich für das initiale Einlesen in die Metadatenverwaltung** editiert und verwendet!
  
Zeile 210: Zeile 241:
 </callout> </callout>
  
-{{tag>idp4 tutorial included-in-ansible}}+{{tag>idp5 tutorial included-in-ansible}}
  • Zuletzt geändert: vor 15 Monaten