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/10/14 09:40] 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|IdP-Konfiguration ->+<- 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 ======
Zeile 5: Zeile 5:
 ===== 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 47: 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 94: 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 101: Zeile 108:
 </file> </file>
  
-Dieser Eintrag muss dann noch in ''idp.properties'' der Status-Seite zugewiesen werden:+Dieser Eintrag muss dann noch in ''conf/admin/admin.properties'' der Status-Seite zugewiesen werden:
  
-<file properties ./conf/idp.properties>+<file properties ./conf/admin/admin.properties>
 idp.status.accessPolicy=StatusAccessByIPAddress idp.status.accessPolicy=StatusAccessByIPAddress
 </file> </file>
Zeile 116: 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 134: Zeile 141:
  
 ====== Vorbereitung der IdP-Metadaten ====== ====== Vorbereitung der IdP-Metadaten ======
- 
-<callout color="#ff9900" 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> 
  
 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. 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:
Zeile 144: Zeile 147:
 <?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 178: 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 205: 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