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
Nächste ÜberarbeitungBeide Seiten der Revision
de:shibidp3install [2017/03/17 13:44] Raoul Gunnar Boreniusde:shibidp3install [2019/08/14 10:27] – [IdP Status URL] Silke Meyer
Zeile 1: Zeile 1:
-======Installation Shibboleth IdP 3.x======+======Installation Shibboleth IdP 3.4======
  
 ===== IdP herunterladen ===== ===== IdP herunterladen =====
Zeile 7: Zeile 7:
 root@idp-dev:~# mkdir /opt/install root@idp-dev:~# mkdir /opt/install
 root@idp-dev:~# cd /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.3.1.tar.gz +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.3.1.tar.gz.asc+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# wget https://shibboleth.net/downloads/PGP_KEYS
 root@idp-dev:/opt/install# gpg --import PGP_KEYS root@idp-dev:/opt/install# gpg --import PGP_KEYS
-root@idp-dev:/opt/install# gpg --verify shibboleth-identity-provider-3.3.1.tar.gz.asc shibboleth-identity-provider-3.3.1.tar.gz +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.3.1.tar.gz+root@idp-dev:/opt/install# tar -xzf shibboleth-identity-provider-3.4.4.tar.gz
 </code> </code>
  
Zeile 20: Zeile 20:
  
 <code bash> <code bash>
-root@idp-dev:~# cd /opt/install/shibboleth-identity-provider-3.3.1+root@idp-dev:~# cd /opt/install/shibboleth-identity-provider-3.4.4
 </code> </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]]. 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. 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.wird also nach der Installation nicht mehr gebraucht.+Das Sourceverzeichnis /opt/install/shibboleth-identity-provider-3.3.wird also nach der Installation nicht mehr gebraucht.
  
 <code bash> <code bash>
-root@idp-dev:/opt/install/shibboleth-identity-provider-3.3.1# JAVA_HOME=/usr bin/install.sh  +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.3.0]+Source (Distribution) Directory (press <enter> to accept default: [/opt/install/shibboleth-identity-provider-3.4.4]
  
 Installation Directory: [/opt/shibboleth-idp] Installation Directory: [/opt/shibboleth-idp]
Zeile 42: Zeile 42:
 Cookie Encryption Key Password:  Cookie Encryption Key Password: 
 Re-enter password: Re-enter password:
-Warning: /opt/shibboleth-idp/idp-dev.hochschule-XY.de/bin does not exist. +Warning: /opt/shibboleth-idp/bin does not exist. 
-Warning: /opt/shibboleth-idp/idp-dev.hochschule-XY.de/dist does not exist. +Warning: /opt/shibboleth-idp/dist does not exist. 
-Warning: /opt/shibboleth-idp/idp-dev.hochschule-XY.de/doc does not exist. +Warning: /opt/shibboleth-idp/doc does not exist. 
-Warning: /opt/shibboleth-idp/idp-dev.hochschule-XY.de/system does not exist. +Warning: /opt/shibboleth-idp/system does not exist. 
-Warning: /opt/shibboleth-idp/idp-dev.hochschule-XY.de/webapp 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 ... Generating Signing Key, CN = idp-dev.hochschule-XY.de URI = https://idp-dev.hochschule-XY.de/idp/shibboleth ...
 ...done ...done
Zeile 55: Zeile 55:
 Creating cookie encryption key files... Creating cookie encryption key files...
 ...done ...done
-Rebuilding /opt/shibboleth-idp/idp-dev.hochschule-XY.de/war/idp.war ...+Rebuilding /opt/shibboleth-idp/war/idp.war ...
 ...done ...done
  
Zeile 62: Zeile 62:
 </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 (12 Zeichen aus Ziffern, Gross- und Klein-Buchstaben). Der IdP wird dann im angegebenen Zielverzeichnis installiert.+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 überlicherweise aber erstmal da einige Dateien für den Tomcat-User nicht lesbar abgelegt wurden. Korrigieren Sie dies mit:+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> <code bash>
-root@idp-dev:/opt/install/shibboleth-identity-provider-3.3.1# cd /opt/shibboleth-idp +root@idp-dev:/opt/install/shibboleth-identity-provider-3.4.4# cd /opt/shibboleth-idp 
-root@idp-dev:/opt/shibboleth-idp# chgrp -R tomcat8 conf credentials+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 root@idp-dev:/opt/shibboleth-idp# chmod -R g+r conf credentials
 </code> </code>
  
-Ausserdem müssen Log-Verzeichnis und Metadata-Verzeichnis für den Tomcat-User schreibbar gemacht werden:+Außerdem müssen Log-Verzeichnis und Metadata-Verzeichnis für den Tomcat-User schreibbar gemacht werden:
  
 <code bash> <code bash>
-root@idp-dev:/opt/shibboleth-idp# chown tomcat8:tomcat8 logs metadata+root@idp-dev:/opt/shibboleth-idp# chown $( getent passwd | grep ^tomcat | cut -d ":" -f1 ):$( getent group | grep ^tomcat | cut -d ":" -f1 ) logs metadata
 </code> </code>
- 
-=== Optional: Abweichendes Installationsverzeichnis === 
- 
-Wer den IdP unter einem anderen Pfad als /opt/shibboleth-idp installiert hat (nur in Spezialfällen empfohlen!), der muss noch in web.xml den neuen Pfad angeben. Dazu muss die web.xml erst nach ./edit-webapps kopiert werden und kann dann modifiziert werden: 
- 
-<code bash> 
-root@idp-dev:/opt/shibboleth-idp/idp-dev.hochschule-XY.de# cp ./webapp/WEB-INF/web.xml ./edit-webapp/WEB-INF/web.xml 
-root@idp-dev:/opt/shibboleth-idp/idp-dev.hochschule-XY.de# vi ./edit-webapp/WEB-INF/web.xml 
-</code>  
- 
-<file xml ./edit-webapp/WEB-INF/web.xml> 
-<?xml version="1.0" encoding="UTF-8"?> 
-<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
- 
-    <display-name>Shibboleth Identity Provider</display-name> 
- 
-    <context-param> 
-        <param-name>idp.home</param-name> 
-        <param-value>/opt/shibboleth-idp/idp-dev.hochschule-XY.de</param-value> 
-    </context-param> 
- 
-    <!-- Spring application context files. Files are loaded in the order they appear with subsequent files overwriting 
-         ... 
-</file> 
- 
-Danach muss das Java Web Archive File erzeugt und im Servlet-Container deployed werden: 
- 
-<code bash> 
-root@idp-dev:/opt/shibboleth-idp/idp-dev.hochschule-XY.de# JAVA_HOME=/usr ./bin/build.sh 
-</code> 
- 
 ====IdP Status URL==== ====IdP Status URL====
  
Zeile 114: Zeile 82:
  
   * die Java Server Tag Library (JSTL) im Tomcat bereit stehen (siehe [[de:shibidp3prepare-tomcat#java_server_tag_library_jstl|Vorarbeiten]]).   * 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:+  * 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> <file xml /opt/shibboleth-idp/conf/access-control.xml>
Zeile 121: Zeile 89:
     <util:map id="shibboleth.AccessControlPolicies">     <util:map id="shibboleth.AccessControlPolicies">
         <entry key="AccessByIPAddress">         <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"             <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'} }" />                 p:allowedRanges="#{ {'127.0.0.1/32', '::1/128', 'IHR-NETZ/IHRE-NM', '193.174.247.0/24', '2001:638:206:1::/64'} }" />
Zeile 127: Zeile 99:
    <!-- ... -->    <!-- ... -->
 </beans> </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> </file>
  
 Jetzt kann Tomcat neu gestartet werden: Jetzt kann Tomcat neu gestartet werden:
 <code bash> <code bash>
-root@idp-dev:/opt/shibboleth-idp# systemctl restart tomcat8+root@idp-dev:/opt/shibboleth-idp# systemctl restart tomcat[8|9]
 </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-dev:/opt/shibboleth-idp# tail -f /var/log/tomcat8/catalina.out+root@idp-dev:/opt/shibboleth-idp# tail -f /var/log/tomcat[8|9]/catalina.out
 </code> </code>
  
Zeile 146: Zeile 124:
 </code> </code>
  
-Finden sich dort keine Fehler ist der IdP erfolgreich gestartet. Überprüfen Sie als erstes ob+Finden sich dort keine Fehlerist der IdP erfolgreich gestartet. Überprüfen Sie als erstes ob
 sie die Status-Seite sehen können: sie die Status-Seite sehen können:
  
Zeile 155: Zeile 133:
 ===== Vorbereitung Metadaten ===== ===== 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):+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> <code xml ./metadata/idp-metadata.xml>
Zeile 168: Zeile 146:
                 <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="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 215: Zeile 194:
 </code> </code>
  
-===== IdP in der DFN-AAI-Metadatenverwaltung registrieren ===== +Weiter geht es mit der [[de:shibidp3config|Konfiguration]].
- +
-Nach diesen Anpassungen ist der IdP soweit fertig um in der DFN-AAI-Metadatenverwaltung registriert werden zu können, siehe https://www.aai.dfn.de/verwaltung/+
- +
-Nach erfolgter Registrierung geht es weiter mit der [[de:shibidp3config|Konfiguration]].+