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:shibidp3install [2019/08/14 10:21] – [IdP installieren] Silke Meyerde:shibidp3install [2021/05/03 13:47] (aktuell) – veralteten Inhalt gelöscht Silke Meyer
Zeile 1: Zeile 1:
-======Installation Shibboleth IdP 3.4====== 
  
-===== IdP herunterladen ===== 
- 
-Shib IdP herunterladen, Signatur überprüfen und entpacken. Die aktuelle IdP-Version findet sich stets unter http://shibboleth.net/downloads/identity-provider/latest/ 
-<code bash> 
-root@idp-dev:~# mkdir /opt/install 
-root@idp-dev:~# cd /opt/install 
-root@idp-dev:/opt/install# wget https://shibboleth.net/downloads/identity-provider/latest/shibboleth-identity-provider-3.4.4.tar.gz 
-root@idp-dev:/opt/install# wget https://shibboleth.net/downloads/identity-provider/latest/shibboleth-identity-provider-3.4.4.tar.gz.asc 
-root@idp-dev:/opt/install# wget https://shibboleth.net/downloads/PGP_KEYS 
-root@idp-dev:/opt/install# gpg --import PGP_KEYS 
-root@idp-dev:/opt/install# gpg --verify shibboleth-identity-provider-3.4.4.tar.gz.asc shibboleth-identity-provider-3.4.4.tar.gz 
-root@idp-dev:/opt/install# tar -xzf shibboleth-identity-provider-3.4.4.tar.gz 
-</code> 
- 
-Wer von einer ältere IdP 3.x-Version updated sollte einen Blick in die [[https://wiki.shibboleth.net/confluence/display/IDP30/ReleaseNotes|Release Notes]] werfen. 
- 
-==== IdP installieren ==== 
- 
-<code bash> 
-root@idp-dev:~# cd /opt/install/shibboleth-identity-provider-3.4.4 
-</code> 
-Das Installationsskript findet sich unter 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. Falls abweichend, muss der Pfad z.B. als idp.home Parameter beim Tomcat-Start angegeben werden, Details siehe  [[https://wiki.shibboleth.net/confluence/display/IDP30/ApacheTomcat8#ApacheTomcat8-RequiredConfigurationChanges|Dokumentation im Shibboleth Wiki]]. 
- 
-Im Gegensatz zum IdP 2.x werden alle Anpassungen (IdP-Layout oder Einstellungen in der web.xml) lokal im Installationsverzeichnis gemacht und danach das build.sh-Script aufgerufen um das WAR-File zu aktualisieren. 
-Das Sourceverzeichnis /opt/install/shibboleth-identity-provider-3.3.x wird also nach der Installation nicht mehr gebraucht. 
- 
-<code bash> 
-root@idp-dev:/opt/install/shibboleth-identity-provider-3.4.4# JAVA_HOME=/usr bin/install.sh  
-Source (Distribution) Directory (press <enter> to accept default: [/opt/install/shibboleth-identity-provider-3.4.4] 
- 
-Installation Directory: [/opt/shibboleth-idp] 
-Hostname: [idp-dev.hochschule-XY.de] 
- 
-SAML EntityID: [https://idp-dev.hochschule-XY.de/idp/shibboleth] 
- 
-Attribute Scope: [hochschule-XY.de] 
- 
-Backchannel PKCS12 Password:  
-Re-enter password:  
-Cookie Encryption Key Password:  
-Re-enter password: 
-Warning: /opt/shibboleth-idp/bin does not exist. 
-Warning: /opt/shibboleth-idp/dist does not exist. 
-Warning: /opt/shibboleth-idp/doc does not exist. 
-Warning: /opt/shibboleth-idp/system does not exist. 
-Warning: /opt/shibboleth-idp/webapp does not exist. 
-Generating Signing Key, CN = idp-dev.hochschule-XY.de URI = https://idp-dev.hochschule-XY.de/idp/shibboleth ... 
-...done 
-Creating Encryption Key, CN = idp-dev.hochschule-XY.de URI = https://idp-dev.hochschule-XY.de/idp/shibboleth ... 
-...done 
-Creating Backchannel keystore, CN = idp-dev.hochschule-XY.de URI = https://idp-dev.hochschule-XY.de/idp/shibboleth ... 
-...done 
-Creating cookie encryption key files... 
-...done 
-Rebuilding /opt/shibboleth-idp/war/idp.war ... 
-...done 
- 
-BUILD SUCCESSFUL 
-Total time: 1 minute 12 seconds 
-</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 (12 Zeichen aus Ziffern, Groß- und Klein-Buchstaben). Der IdP wird dann im angegebenen Zielverzeichnis installiert. 
- 
-Nachdem die IdP-Files installiert sind, versucht der Tomcat das Servlet automatisch zu starten (siehe Tomcat-Log). Das scheitert üblicherweise aber erstmal da einige Dateien für den Tomcat-User nicht lesbar abgelegt wurden. Korrigieren Sie dies mit: 
- 
-<code bash> 
-root@idp-dev:/opt/install/shibboleth-identity-provider-3.4.4# cd /opt/shibboleth-idp 
-root@idp-dev:/opt/shibboleth-idp# chgrp -R $( getent group | grep ^tomcat | cut -d ":" -f1 ) conf credentials 
-root@idp-dev:/opt/shibboleth-idp# chmod -R g+r conf credentials 
-</code> 
- 
-Außerdem müssen Log-Verzeichnis und Metadata-Verzeichnis für den Tomcat-User schreibbar gemacht werden: 
- 
-<code bash> 
-root@idp-dev:/opt/shibboleth-idp# chown $( getent passwd | grep ^tomcat | cut -d ":" -f1 ):$( getent group | grep ^tomcat | cut -d ":" -f1 ) logs metadata 
-</code> 
-====IdP Status URL==== 
- 
-Zur Darstellung der Status-Seite muss 
- 
-  * die Java Server Tag Library (JSTL) im Tomcat bereit stehen (siehe [[de:shibidp3prepare-tomcat#java_server_tag_library_jstl|Vorarbeiten]]). 
-  * 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'':  
- 
-<file xml /opt/shibboleth-idp/conf/access-control.xml> 
-<beans ...> 
-   <!-- ... --> 
-    <util:map id="shibboleth.AccessControlPolicies"> 
-        <entry key="AccessByIPAddress"> 
-            <bean parent="shibboleth.IPRangeAccessControl" 
-                p:allowedRanges="#{ {'127.0.0.1/32', '::1/128', 'IHR-NETZ/IHRE-NM'} }" /> 
-        </entry> 
-        <entry key="StatusAccessByIPAddress"> 
-            <bean parent="shibboleth.IPRangeAccessControl" 
-                p:allowedRanges="#{ {'127.0.0.1/32', '::1/128', 'IHR-NETZ/IHRE-NM', '193.174.247.0/24', '2001:638:206:1::/64'} }" /> 
-        </entry> 
-    </util:map> 
-   <!-- ... --> 
-</beans> 
-</file> 
- 
-Dieser Eintrag muss dann noch in ''idp.properties'' der Status-Seite zugewiesen werden: 
- 
-<file properties ./conf/idp.properties> 
-idp.status.accessPolicy=StatusAccessByIPAddress 
-</file> 
- 
-Jetzt kann Tomcat neu gestartet werden: 
-<code bash> 
-root@idp-dev:/opt/shibboleth-idp# systemctl restart tomcat8 
-</code> 
-Dabei lassen Sie am besten in drei Terminalfenstern den Tomcat- und die beiden relevanten IdP-Logs mitlaufen: 
- 
-<code bash> 
-root@idp-dev:/opt/shibboleth-idp# tail -f /var/log/tomcat8/catalina.out 
-</code> 
- 
-<code bash> 
-root@idp-dev:/opt/shibboleth-idp# tail -f logs/idp-process.log 
-</code> 
-<code bash> 
-root@idp-dev:/opt/shibboleth-idp# tail -f logs/idp-warn.log 
-</code> 
- 
-Finden sich dort keine Fehler, ist der IdP erfolgreich gestartet. Überprüfen Sie als erstes ob 
-sie die Status-Seite sehen können: 
- 
-<code> 
-https://idp-dev.hochschule-XY.de/idp/status 
-</code> 
- 
-===== Vorbereitung Metadaten ===== 
- 
-Um den Aufwand beim Eintragen der IdP-Metadaten in der DFN-AAI Metadatenverwaltung zu reduzieren, empfiehlt es sich vor dem initialen Registrieren des IdPs in ./metadata/idp-metadata.xml die noch fehlenden Einträge zu aktivieren. Es handelt sich dabei um IdP-Features die in der DFN-AAI empfohlen sind und deren Konfiguration  in diesem Wiki zu finden sind. Im Folgenden sind nur die relevanten Abschnitte angegben (mit "..." ist gemeint dass hier Zeilen und Abschnitte vorhanden sind, diese aber der Übersichtlichkeit halber hier nicht aufgeführt sind). Details zum Speichern und Einbindung der Logos Ihrer Einrichtung finden Sie [[de:shibidp3logos|hier]]. 
- 
-<code xml ./metadata/idp-metadata.xml> 
-... 
- 
-    <!-- Beschreibung und Logo aktivieren --> 
-        <Extensions> 
-            <shibmd:Scope regexp="false">hochschule-XY.de</shibmd:Scope> 
-            <mdui:UIInfo> 
-                <mdui:DisplayName xml:lang="en">XY University (Development)</mdui:DisplayName> 
-                <mdui:DisplayName xml:lang="de">Hochschule XY (Development)</mdui:DisplayName> 
-                <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:Logo height="16" width="16">https://idp-dev.hochschule-XY.de/favicon.ico</mdui:Logo> 
-                <mdui:Logo height="80" width="80">https://idp-dev.hochschule-XY.de/idp/images/logo.png</mdui:Logo> 
-            </mdui:UIInfo> 
-        </Extensions> 
-         
-        ... 
-         
-        <ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="..."/> 
-         
-        <!-- vier Single-Logout-Services aktiveren --> 
-        <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="..."/> 
-        <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="..."/> 
-        <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="..."/> 
-        <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="..."/> 
-         
-        <SingleSignOnService Binding="urn:mace:... 
-        <SingleSignOnService Binding="urn:oasis:... 
-        <SingleSignOnService Binding="urn:oasis:... 
-        <SingleSignOnService Binding="urn:oasis:... 
-        <!-- den fehlenden ECP-Endpoint hinzufügen --> 
-        <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://idp.hochschule-XY.de/idp/profile/SAML2/SOAP/ECP"/> 
-         
-        <!-- die fehlenden NameID-Formate hinzufügen --> 
-        <NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat> 
-        <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat> 
-        <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat> 
-... 
-    </IDPSSODescriptor> 
-     
-    <!-- Protocol-Support für SAML2-Queries im AA-Descriptor aktivieren --> 
-    <AttributeAuthorityDescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol"> 
-     
-        ... 
-         
-        <AttributeService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="..."/> 
-        <!-- SAML2-Attribute-Service aktivieren --> 
-        <AttributeService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="..."/> 
- 
-        <!-- die fehlenden NameID-Formate hinzufügen --> 
-        <NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat> 
-        <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat> 
-        <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat> 
- 
-    </AttributeAuthorityDescriptor> 
- 
-</EntityDescriptor> 
-</code> 
- 
-Weiter geht es mit der [[de:shibidp3config|Konfiguration]].