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/16 08:50] Silke Meyerde:shibidp:install [2023/12/05 10:11] (aktuell) – [Vorbereitung der IdP-Metadaten] Wolfgang Pempe
Zeile 1: Zeile 1:
 +<- 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 4.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 http://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://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:~# wget -P /opt/install 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.x.x.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:~# 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/PGP_KEYS root@idp:~# wget -P /opt/install https://shibboleth.net/downloads/PGP_KEYS
 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.0.0.tar.gz.asc /opt/install/shibboleth-identity-provider-4.0.0.tar.gz +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:~# tar -xzf /opt/install/shibboleth-identity-provider-4.0.0.tar.gz -C /opt/install+root@idp:~# tar -xzf /opt/install/shibboleth-identity-provider-4.x.x.tar.gz -C /opt/install
 </code> </code>
 +
 +===== Wahl der Entity ID =====
 +
 +Die Entity ID ist der global eindeutige Identifier Ihres IdP. Sie sollte sich später möglichst nie wieder ändern. Bei der Installation generiert der Installer sie automatisch anhand des Hostnames nach dem Schema ''https://example.org/idp/shibboleth''. Die Entity ID muss von Typ URI sein und ihre Heimateinrichtung muss die Rechte an der verwendeten Domain besitzen. Sie muss jedoch nicht mit dem aktuellen virtuellen Host übereinstimmen. Sie können sie vor Inbetriebnahme des IdP in der Datei ''conf/idp.properties'' auch noch anpassen. **Wählen Sie eine Entity ID, die möglichst langlebig und versionsunabängig ist.** Oft verwendet werden:
 +  * ''https://idp.example.org/idp/shibboleth''
 +  * ''https://login.example.org/idp/shibboleth''
 +Nicht zu empfehlen sind Werte, die die IdP-Version enthalten, z.B. ''https://idp4.example.org/idp/shibboleth'', da die Entity ID dann erfahrungsgemäß oft nach ein paar Jahren doch geändert werden soll (obwohl Nutzer*innen Ihres IdP sie nicht zu sehen bekommen). Sie können auch bei der Entity ID ''https://idp.example.org/idp/shibboleth'' einen VHost namens idp4.example.org verwenden. Dies wird über die Webserver-Konfiguration bzw. die IdP-Metadaten bekannt gemacht.
  
 ===== Interaktiven Installer aufrufen ===== ===== Interaktiven Installer aufrufen =====
  
-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''.+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''.
  
 <code bash> <code bash>
-root@idp:~# JAVA_HOME=/usr /opt/install/shibboleth-identity-provider-4.0.0/bin/install.sh  +root@idp:~# JAVA_HOME=/usr /opt/install/shibboleth-identity-provider-4.x.x/bin/install.sh  
-Buildfile: /opt/install/shibboleth-identity-provider-4.0.0/bin/build.xml+Buildfile: /opt/install/shibboleth-identity-provider-4.x.x/bin/build.xml
  
 install: install:
-Source (Distribution) Directory (press <enter> to accept default): [/opt/install/shibboleth-identity-provider-4.0.0] ? +Source (Distribution) Directory (press <enter> to accept default): [/opt/install/shibboleth-identity-provider-4.x.x] ? 
  
 Installation Directory: [/opt/shibboleth-idp] ?  Installation Directory: [/opt/shibboleth-idp] ? 
  
-INFO [net.shibboleth.idp.installer.V4Install:151] - New Install.  Version: 4.0.0+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
Zeile 45: Zeile 54:
  
 INFO [net.shibboleth.idp.installer.V4Install:433] - Creating Metadata to /opt/shibboleth-idp/metadata/idp-metadata.xml INFO [net.shibboleth.idp.installer.V4Install:433] - Creating Metadata to /opt/shibboleth-idp/metadata/idp-metadata.xml
-INFO [net.shibboleth.idp.installer.BuildWar:71] - Rebuilding /opt/shibboleth-idp/war/idp.war, Version 4.0.0+INFO [net.shibboleth.idp.installer.BuildWar:71] - Rebuilding /opt/shibboleth-idp/war/idp.war, Version 4.x.x
 INFO [net.shibboleth.idp.installer.BuildWar:80] - Initial populate from /opt/shibboleth-idp/dist/webapp to /opt/shibboleth-idp/webpapp.tmp INFO [net.shibboleth.idp.installer.BuildWar:80] - Initial populate from /opt/shibboleth-idp/dist/webapp to /opt/shibboleth-idp/webpapp.tmp
 INFO [net.shibboleth.idp.installer.BuildWar:89] - Overlay from /opt/shibboleth-idp/edit-webapp to /opt/shibboleth-idp/webpapp.tmp INFO [net.shibboleth.idp.installer.BuildWar:89] - Overlay from /opt/shibboleth-idp/edit-webapp to /opt/shibboleth-idp/webpapp.tmp
Zeile 72: Zeile 81:
  
 ===== IdP Status URL freigeben ===== ===== IdP Status URL freigeben =====
 +
 +<callout color="#ff9900" title="DFN-Monitoring">
 +Das Monitoring-System des DFN-Vereins prüft standardmäßig die Status-Seite Ihres IdP und die Gültigkeitsdauer der SSL-Zertifikate im Webserver. Bitte geben Sie dafür die IdP-Status-Seite frei, wie hier beschrieben.
 +</callout>
  
 Zur Darstellung der Status-Seite muss Zur Darstellung der Status-Seite muss
Zeile 88: Zeile 101:
         <entry key="StatusAccessByIPAddress">         <entry key="StatusAccessByIPAddress">
             <bean parent="shibboleth.IPRangeAccessControl"             <bean parent="shibboleth.IPRangeAccessControl"
-                p:allowedRanges="#{ {'127.0.0.1/32', '::1/128', 'IHR-NETZ/IHRE-NETZMASKE', '193.174.247.0/24', '2001:638:206:1::/64'} }" />+                p:allowedRanges="#{ {'127.0.0.1/32', '::1/128', 'IHR-NETZ/IHRE-NETZMASKE', '193.174.247.0/24', '194.95.243.0/24', '194.95.244.0/24', '194.95.242.0/24', '2001:638:206:1::/64'} }" />
         </entry>         </entry>
     </util:map>     </util:map>
Zeile 95: Zeile 108:
 </file> </file>
  
-FIXME Prüfen!+Dieser Eintrag muss dann noch in ''conf/admin/admin.properties'' der Status-Seite zugewiesen werden:
  
-Dieser Eintrag muss dann noch in ''idp.properties'' der Status-Seite zugewiesen werden: +<file properties ./conf/admin/admin.properties>
- +
-<file properties ./conf/idp.properties>+
 idp.status.accessPolicy=StatusAccessByIPAddress idp.status.accessPolicy=StatusAccessByIPAddress
 </file> </file>
Zeile 112: Zeile 123:
  
 <code bash> <code bash>
-root@idp:# tail -f /var/log/tomcat9/catalina.DATUM.log+root@idp:# tail -f /var/log/tomcat9/catalina.DATUM.log /var/log/tomcat9/localhost.DATUM.log
 </code> </code>
  
Zeile 123: Zeile 134:
 </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, ob Sie die Status-Seite sehen können:
  
 <code bash> <code bash>
Zeile 131: Zeile 142:
 ====== Vorbereitung der IdP-Metadaten ====== ====== Vorbereitung der IdP-Metadaten ======
  
-Um den Aufwand beim Eintragen der IdP-Metadaten in der DFN-AAI Metadatenverwaltung zu reduzierenempfiehlt 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+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:
- +
-<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"?> <?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". --> <!-- 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">+<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 174: Zeile 181:
         <!-- 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"/>
-         +
-        <!-- 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>     </IDPSSODescriptor>
          
     <!-- Protocol-Support für SAML2-Queries im Attribute Authority-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:2.0:protocol">
          
         ...         ...
                  
-        <AttributeService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="..."/> 
         <!-- SAML2-Attribute-Service einkommentieren -->         <!-- 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="..."/>
- 
-        <!-- 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>     </AttributeAuthorityDescriptor>
Zeile 201: Zeile 198:
 </code> </code>
  
-Weiter geht es mit der [[de:shibidp:config|Konfiguration]].+<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! 
 + 
 +Der Inhalt dieser Datei wird per default unter der URL ''https://idp.example.org/idp/shibboleth'' ausgeliefert. Manche Dienstbetreiber gehen fälschlicherweise davon aus, dass die Daten darin ständig aktuell sind (wie es beim Shibboleth-Service-Provider ist). Deshalb sollte man diese URL abstellen, indem man in ''idp.properties'' den zugehörigen Eintrag leert: 
 + 
 +<file properties ./conf/idp.properties> 
 +#idp.entityID.metadataFile=%{idp.home}/metadata/idp-metadata.xml 
 +idp.entityID.metadataFile= 
 +</file> 
 +Die Änderung wird nach dem nächsten Tomcat-Neustart wirksam. 
 +</callout>
  
-{{tag>idp4 tutorial}}+{{tag>idp4 tutorial included-in-ansible}}
  • Zuletzt geändert: vor 4 Jahren