Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision |
de:shibidp:install [2020/10/14 09:39] – Silke Meyer | de:shibidp:install [2023/01/05 11:50] – [Vorbereitung der IdP-Metadaten] Wolfgang Pempe |
---|
<- 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 ====== |
===== 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 |
| |
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 |
<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> |
</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> |
| |
<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> |
| |
====== Vorbereitung der IdP-Metadaten ====== | ====== Vorbereitung der IdP-Metadaten ====== |
| |
<callout type="danger" title="Einmalige Verwendung der idp-metadata.xml"> | <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! | 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> | </callout> |
<?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"> |
| |
... | ... |
<!-- 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> |
</code> | </code> |
| |
Weiter geht es mit der [[de:shibidp:config|Konfiguration]]. | {{tag>idp4 tutorial included-in-ansible}} |
| |
{{tag>idp4 tutorial}} | |