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 [2020/04/06 15:45]
Silke Meyer
de:shibidp-install [2020/04/07 14:05]
Silke Meyer gelöscht
Zeile 3: Zeile 3:
 ===== 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 http://​shibboleth.net/​downloads/​identity-provider/​latest/​.+Laden Sie den Shibboleth IdP herunter, prüfen Sie die Signatur und entpacken Sie das Archiv. Die aktuelle IdP-Version findet sich stets unter http://​shibboleth.net/​downloads/​identity-provider/​latest/​. ​Es empfiehlt sich, die [[https://​wiki.shibboleth.net/​confluence/​display/​IDP4/​ReleaseNotes|Release Notes]] zu studieren. 
 <code bash> <code bash>
 root@idp:~# mkdir /​opt/​install root@idp:~# mkdir /​opt/​install
-root@idp:​~# ​cd /​opt/​install +root@idp:​~# ​wget -P /​opt/​install https://​shibboleth.net/​downloads/​identity-provider/​latest/​shibboleth-identity-provider-4.0.0.tar.gz 
-root@idp:/​opt/​install#​ wget https://​shibboleth.net/​downloads/​identity-provider/​latest/​shibboleth-identity-provider-4.0.0.tar.gz +root@idp:~# wget -P /​opt/​install https://​shibboleth.net/​downloads/​identity-provider/​latest/​shibboleth-identity-provider-4.0.0.tar.gz.asc 
-root@idp:/​opt/​install# wget https://​shibboleth.net/​downloads/​identity-provider/​latest/​shibboleth-identity-provider-4.0.0.tar.gz.asc +root@idp:~# wget -P /​opt/​install https://​shibboleth.net/​downloads/​PGP_KEYS 
-root@idp:/​opt/​install# wget https://​shibboleth.net/​downloads/​PGP_KEYS +root@idp:~# gpg --import ​/​opt/​install/​PGP_KEYS 
-root@idp:/​opt/​install# gpg --import PGP_KEYS +root@idp:~# gpg --verify ​/​opt/​install/​shibboleth-identity-provider-4.0.0.tar.gz.asc ​/​opt/​install/​shibboleth-identity-provider-4.0.0.tar.gz 
-root@idp:/​opt/​install# gpg --verify shibboleth-identity-provider-4.0.0.tar.gz.asc shibboleth-identity-provider-4.0.0.tar.gz +root@idp:~# tar -xzf /​opt/​install/​shibboleth-identity-provider-4.0.0.tar.gz ​-C /​opt/​install
-root@idp:/​opt/​install# tar -xzf shibboleth-identity-provider-4.0.0.tar.gz+
 </​code>​ </​code>​
  
 ===== Interaktiven Installer aufrufen ===== ===== Interaktiven Installer aufrufen =====
  
-<code bash> +Das Installationsskript findet sich unter ''​/​opt/​install/​shibboleth-identity-provider-4.0.0/​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''​.
-root@idp:~# cd /​opt/​install/​shibboleth-identity-provider-4.0.0 +
-</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.+
  
 <code bash> <code bash>
-root@idp:/​opt/​install/​shibboleth-identity-provider-4.0.0# JAVA_HOME=/usr bin/​install.sh ​+root@idp:~# JAVA_HOME=/​usr ​/​opt/​install/​shibboleth-identity-provider-4.0.0/​bin/​install.sh ​
 Buildfile: /​opt/​install/​shibboleth-identity-provider-4.0.0/​bin/​build.xml Buildfile: /​opt/​install/​shibboleth-identity-provider-4.0.0/​bin/​build.xml
  
Zeile 62: Zeile 58:
 ===== Leserechte für Tomcat-User korrigieren ===== ===== Leserechte für Tomcat-User korrigieren =====
  
-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:+Nachdem die IdP-Files installiert sind, versucht der Tomcat, das Servlet automatisch zu starten (siehe Tomcat-Log). Das scheitert üblicherweise ​zunächst, ​da einige Dateien für den Tomcat-User nicht lesbar abgelegt wurden. Korrigieren Sie dies mit:
  
 <code bash> <code bash>
 root@idp:/​opt/​install/​shibboleth-identity-provider-4.0.0#​ cd /​opt/​shibboleth-idp root@idp:/​opt/​install/​shibboleth-identity-provider-4.0.0#​ cd /​opt/​shibboleth-idp
-root@idp:/​opt/​shibboleth-idp# chgrp -R $( getent group | grep ^tomcat | cut -d ":"​ -f1 ) conf credentials +root@idp:~# chgrp -R $( getent group | grep ^tomcat | cut -d ":"​ -f1 ) /​opt/​shibboleth-idp/conf /​opt/​shibboleth-idp/​credentials 
-root@idp:/​opt/​shibboleth-idp#​ chmod -R g+r conf credentials+root@idp:~# chmod -R g+r /​opt/​shibboleth-idp/​conf /​opt/​shibboleth-idp/​credentials
 </​code>​ </​code>​
  
Zeile 73: Zeile 69:
  
 <code bash> <code bash>
-root@idp:/​opt/​shibboleth-idp# chown $( getent passwd | grep ^tomcat | cut -d ":"​ -f1 ):$( getent group | grep ^tomcat | cut -d ":"​ -f1 ) logs metadata+root@idp:~# chown $( getent passwd | grep ^tomcat | cut -d ":"​ -f1 ):$( getent group | grep ^tomcat | cut -d ":"​ -f1 ) /​opt/​shibboleth-idp/​logs /​opt/​shibboleth-idp/​metadata
 </​code>​ </​code>​
  
Zeile 80: Zeile 76:
 Zur Darstellung der Status-Seite muss Zur Darstellung der Status-Seite muss
  
-  * die Java Standard Tag Library (JSTL) im Tomcat bereit stehen (siehe [[de:​shibidp:​prepare-tomcat#​java_server_tag_library_jstl|Vorarbeiten]]).+  * die Java Standard Tag Library (JSTL) im Tomcat bereit stehen (siehe [[de:​shibidp:​prepare-tomcat#​java_standard_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'': ​   * 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'': ​
  
Zeile 99: Zeile 95:
 </​beans>​ </​beans>​
 </​file>​ </​file>​
 +
 +FIXME Prüfen!
  
 Dieser Eintrag muss dann noch in ''​idp.properties''​ der Status-Seite zugewiesen werden: Dieser Eintrag muss dann noch in ''​idp.properties''​ der Status-Seite zugewiesen werden:
Zeile 110: Zeile 108:
 Jetzt kann Tomcat neu gestartet werden: Jetzt kann Tomcat neu gestartet werden:
 <code bash> <code bash>
-root@idp:/​opt/​shibboleth-idp# systemctl restart tomcat9+root@idp:# systemctl restart tomcat9
 </​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:/​opt/​shibboleth-idp# tail -f /​var/​log/​tomcat9/​catalina.out+root@idp:# tail -f /​var/​log/​tomcat9/​catalina.DATUM.log
 </​code>​ </​code>​
  
 <code bash> <code bash>
-root@idp:/​opt/​shibboleth-idp# tail -f logs/​idp-process.log+root@idp:# tail -f /​opt/​shibboleth-idp/logs/​idp-process.log
 </​code>​ </​code>​
  
 <code bash> <code bash>
-root@idp:/​opt/​shibboleth-idp# tail -f logs/​idp-warn.log+root@idp:# tail -f /​opt/​shibboleth-idp/logs/​idp-warn.log
 </​code>​ </​code>​
  
 Finden sich dort keine Fehler, ist der IdP erfolgreich gestartet. Überprüfen Sie als erstes, ob Sie die Status-Seite sehen können: Finden sich dort keine Fehler, ist der IdP erfolgreich gestartet. Überprüfen Sie als erstes, ob Sie die Status-Seite sehen können:
  
-<​code>​ +<​code ​bash
-curl https://​idp.hochschule-XY.de/​idp/​status+root@idp:# ​curl https://​idp.hochschule-XY.de/​idp/​status
 </​code>​ </​code>​
  
Zeile 135: Zeile 133:
  
 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 Ausschnitte angegeben. 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 Ausschnitte angegeben.
 +
 +<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!
 +</​callout>​
  
 <code xml ./​metadata/​idp-metadata.xml>​ <code xml ./​metadata/​idp-metadata.xml>​
 +<?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://​web1.in.dfn.de/​idp/​shibboleth">​
 +
 ... ...
  
Zeile 166: Zeile 172:
         <​SingleSignOnService Binding="​urn:​oasis:​...         <​SingleSignOnService Binding="​urn:​oasis:​...
         <​SingleSignOnService Binding="​urn:​oasis:​...         <​SingleSignOnService Binding="​urn:​oasis:​...
 +        ​
         <!-- den fehlenden ECP-Endpoint hinzufügen -->         <!-- 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"/>​         <​SingleSignOnService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​SOAP"​ Location="​https://​idp.hochschule-XY.de/​idp/​profile/​SAML2/​SOAP/​ECP"/>​
Zeile 176: Zeile 183:
     </​IDPSSODescriptor>​     </​IDPSSODescriptor>​
     ​     ​
-    <!-- Protocol-Support für SAML2-Queries im AA-Descriptor aktivieren -->+    <!-- Protocol-Support für SAML2-Queries im Attribute Authority-Descriptor aktivieren -->
     <​AttributeAuthorityDescriptor protocolSupportEnumeration="​urn:​oasis:​names:​tc:​SAML:​1.1:​protocol urn:​oasis:​names:​tc:​SAML:​2.0:​protocol">​     <​AttributeAuthorityDescriptor protocolSupportEnumeration="​urn:​oasis:​names:​tc:​SAML:​1.1:​protocol urn:​oasis:​names:​tc:​SAML:​2.0:​protocol">​
     ​     ​
Zeile 182: Zeile 189:
         ​         ​
         <​AttributeService Binding="​urn:​oasis:​names:​tc:​SAML:​1.0:​bindings:​SOAP-binding"​ Location="​..."/>​         <​AttributeService Binding="​urn:​oasis:​names:​tc:​SAML:​1.0:​bindings:​SOAP-binding"​ Location="​..."/>​
-        <!-- SAML2-Attribute-Service ​aktivieren ​-->+        <!-- SAML2-Attribute-Service ​einkommentieren ​-->
         <​AttributeService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​SOAP"​ Location="​..."/>​         <​AttributeService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​SOAP"​ Location="​..."/>​
  
Zeile 195: Zeile 202:
 </​code>​ </​code>​
  
-Weiter geht es mit der [[de:shibidp3config|Konfiguration]].+Weiter geht es mit der [[de:shibidp:​config|Konfiguration]].