Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
de:shibidp:install [2024/06/10 14:00] – [IdP Status URL freigeben] Doreen Liebenau | de:shibidp:install [2025/03/10 11:52] (aktuell) – Tag geändert Doreen Liebenau |
---|
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. | 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-5.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-5.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-5.x.x.tar.gz.asc /opt/install/shibboleth-identity-provider-5.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-5.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 ===== |
| |
</callout> | </callout> |
| |
Zur Darstellung der Status-Seite muss | Zur Darstellung der Status-Seite muss eine aktuelle Version der Jakarta JSTL eingebunden werden: |
| |
* die Java Standard Tag Library (JSTL) im Tomcat bereit stehen (siehe [[de:shibidp:prepare-tomcat#java_standard_tag_library_jstl|Vorarbeiten]]). | |
* eine aktuelle Version der Jakarta JSTL eingebunden werden: | |
<code bash> | <code bash> |
# Download | # Download |
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/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.0/jakarta.servlet.jsp.jstl-api-3.0.0.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 | # build erneut ausführen |
root@idp:~# sudo /opt/shibboleth-idp/bin/build.sh -Didp.target.dir=/opt/shibboleth-idp | root@idp:~# sudo /opt/shibboleth-idp/bin/build.sh -Didp.target.dir=/opt/shibboleth-idp |
root@idp:~# sudo systemctl restart tomcat10.service | root@idp:~# sudo systemctl restart tomcat10.service |
</code> | </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 ''StatusAccessByIPAddress'': | * 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> |
</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 ===== |
====== 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"> |
| |
<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> |
</callout> | </callout> |
| |
{{tag>idp4 tutorial included-in-ansible}} | {{tag>idp5 tutorial included-in-ansible}} |