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:shibidp3ecp [2020/05/14 09:24] – [ECP für BWSync&Share] Silke Meyerde:shibidp:ecp [2023/03/02 14:40] (aktuell) – Inhalt jetzt nur noch unter de:shibidp:config-ecp Silke Meyer
Zeile 1: Zeile 1:
-====== Enhanced Client or Proxy (ECP) ====== 
  
-Die grundlegenden [[https://wiki.shibboleth.net/confluence/display/CONCEPT/ECP|Konzepte]] und die [[https://wiki.shibboleth.net/confluence/display/IDP30/ECPConfiguration|Konfiguration von ECP]] sind im Shibboleth Wiki dokumentiert. 
-ECP ist im IdP standardmäßig aktiv. 
- 
-Achten Sie darauf, dass das ECP-SSO-Binding des IdPs in den DFN-AAI-Metadaten angegeben ist. Fehlt es, finden ECP-Clients den IdP nicht, wenn Sie sich anmelden wollen. 
- 
-{{de:ecp.png}} 
- 
-Zum Testen eignet sich das vom CILogon Projekt bereitgestellte [[http://www.cilogon.org/ecp#TOC-A-Basic-ECP-IdP-Test-Script|Testscript 'testecp.sh']]. 
- 
-Ob die IdP-seitigen Voreinstellungen für den ECP-Support ausreichen, hängt letztlich vom Verhalten der eingesetzten Clients ab, siehe hierzu die [[https://wiki.shibboleth.net/confluence/display/IDP30/PasswordAuthnConfiguration#PasswordAuthnConfiguration-UserInterface|Dokumentation im Shibboleth Wiki]]. 
- 
-===== ECP für BWSync&Share ===== 
- 
-Viele BW-Sync&Share-Clients kommen mit der ECP-Variante des Shibboleth IdP nicht zurecht. Der ECP-Endpunkt muss für diese Clients noch explizit mit Basic-Auth geschützt werden. Dies kann mithilfe von Apache oder Tomcat gemacht werden. Wir empfehlen die deutlich einfachere Apache-Variante. 
- 
-==== Basic-Auth mithilfe von Apache ==== 
- 
-ECP-Endpoint per Basic-Auth schützen: 
- 
-<file html /etc/apache2/sites-available/idp.hochschule-XY.de.conf> 
-# 
-# Definition des LDAP-Server-Root-CA-Zertifikates 
-# 
-# ACHTUNG: 
-# 
-# - kann nicht innerhalb des VirtualHost stehen 
-# - hier im Beispiel von der DFN-PKI Generation 2, muss zur ROOT-CA des LDAP-Server- 
-#   Zertifikates passen! 
-# - stellen Sie sicher dass in /etc/ldap/ldap.conf kein anderes ROOT-CA-Zertifikat 
-#   eingetragen ist welches diesen Eintrag überschreiben würde! 
-# 
-LDAPTrustedGlobalCert CA_BASE64 /etc/ssl/certs/T-TeleSec_GlobalRoot_Class_2.pem 
- 
-<VirtualHost *:443> 
-  ServerName              idp.hochschule-XY.de:443 
-  ... 
-   
-  # ECP-Config für Sync&Share-Clients 
-  <Location /idp/profile/SAML2/SOAP/ECP> 
-    AuthType Basic 
-    AuthName "idp.hochschule-XY.de - ECP profile" 
-    AuthBasicProvider ldap 
-    AuthLDAPURL "ldaps://ldap.hochschule-XY.de/ou=people,dc=hochschule-xy,dc=de?uid?sub" 
-    AuthLDAPBindDN "cn=idp,cn=systemusers,dc=hochschule-xy,dc=de" 
-    AuthLDAPBindPassword "geheim007" 
-    Require valid-user 
-  </Location> 
-</VirtualHost> 
-</file> 
- 
-Authentifizierung per LDAP im Apache aktivieren: 
- 
-<code bash> 
-root@idp:~# a2enmod authnz_ldap 
-root@idp:~# systemctl reload apache2 
-</code> 
- 
-Da dieser Endpunkt weltweit erreichbar sein muss, können hier auch Brute-Force-Passwort-Angriffe auftreten. Diesen sollten ebenfalls mithilfe von fail2ban begegnet werden, siehe die fail2ban-Seite in diesem Wiki. 
- 
-===== Funktionstest ===== 
- 
-Um die grundsätzliche Funktionalität zu testen kann einer der aus der Shibboleth Community bereitgestellten Clients verwendet werden, siehe die [[https://wiki.shibboleth.net/confluence/display/SHIB2/Contributions#Contributions-simplebash|Contributions-Seite]] im Shibboleth Wiki. Das folgende Beispiel bezieht sich auf ecp.sh: 
- 
-Zunächst die Dokumentation in den ersten Zeilen des Skripts durchlesen und unter ecp_endpoints einen Alias für den zu testenden IdP setzen, z.B. 
- 
-<code> 
-["Campus01"]="https://idp.example.org/idp/profile/SAML2/SOAP/ECP" 
-</code> 
- 
-Dann kann der Client mit einem beliebigen (Test-)User (hier: "tuser") verwendet werden: 
- 
-<code> 
-user@idp:~# ./ecp.sh -d Campus01 https://testsp3.aai.dfn.de/ecp-test/index.txt tuser 
-</code> 
- 
-Beim danach erscheinenden Passwort-Prompt das Passwort des (Test-)Users eingeben. Wenn alles funktioniert, wird im Anschluss an allerlei Debug-Output ein "ok" zurückgegeben. 
- 
-===== ECP einschränken auf einzelne SPs ===== 
- 
-Aus unserer Sicht ist es nicht nötig, die ECP-Unterstützung auf einzelne SPs einzuschränken. Der Vollständigkeit halber sei hier aber erwähnt, wie das geht: 
- 
-Kommentieren Sie ''/opt/shibboleth-idp/conf/relying-party.xml'' im Abschnitt DefaultRelyingParty die Referenz auf das Bean ''SAML2.ECP'' aus. Fügen Sie in der Liste der RelyingPartyOverrides eine Konfiguration für diese SPs hinzu. 
- 
-Hier ein Beispiel für bwIDM: 
- 
-<file xml /opt/shibboleth-idp/conf/relying-party.xml> 
-    
-<bean id="shibboleth.DefaultRelyingParty" parent="RelyingParty"> 
-  <property name="profileConfigurations"> 
-    <list> 
-        <bean parent="Shibboleth.SSO"  
-              p:postAuthenticationFlows="#{{'terms-of-use', 'attribute-release'}}" 
-              p:includeAttributeStatement="true" /> 
-          <ref bean="SAML1.AttributeQuery" /> 
-          <ref bean="SAML1.ArtifactResolution" /> 
-          <bean parent="SAML2.SSO" 
-                p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"  
-                p:postAuthenticationFlows="#{{'terms-of-use', 'attribute-release'}}" /> 
-          <ref bean="SAML2.Logout" /> 
-          <ref bean="SAML2.ArtifactResolution" /> 
-    </list> 
-  </property> 
-</bean> 
-    
-<util:list id="shibboleth.RelyingPartyOverrides"> 
-  
- <bean parent="RelyingPartyByTag"> 
-   <constructor-arg name="candidates"> 
-     <list> 
-        <bean parent="TagCandidate" c:name="http://macedir.org/entity-category" 
-              p:values="http://aai.dfn.de/category/bwidm-member"/> 
-     </list> 
-   </constructor-arg> 
-   <property name="profileConfigurations"> 
-     <list> 
-        <ref bean="SAML2.ECP" /> 
-        <ref bean="SAML2.AttributeQuery" /> 
-        <bean parent="SAML2.SSO"  
-              p:postAuthenticationFlows="#{{'terms-of-use', 'attribute-release'}}" 
-              p:nameIDFormatPrecedence="#{{'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent', 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient'}}" 
-                   /> 
-        <ref bean="SAML2.Logout" /> 
-        <ref bean="SAML2.ArtifactResolution" /> 
-     </list> 
-   </property> 
- </bean> 
-    
-</util:list> 
- 
-</file> 
- 
-{{tag>idp3 idp4 fixme}} 
  • Zuletzt geändert: vor 4 Jahren