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:config-ecp [2020/04/14 13:56] – [ECP für BWSync&Share] Silke Meyerde:shibidp:config-ecp [2023/03/02 14:40] (aktuell) Silke Meyer
Zeile 1: Zeile 1:
 ====== Enhanced Client or Proxy (ECP) ====== ====== 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. +Die ECP-Schnittstelle eines IdP ist für die Kommunikation mit nicht-browserbasierten Clients da. Das grundlegende [[https://wiki.shibboleth.net/confluence/display/CONCEPT/ECP|Konzept]] ist im Shibboleth Wiki dokumentiert. ECP ist im Shibboleth-IdP standardmäßig aktiv.
-ECP ist im IdP 3.x out-of-the box 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. 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}}+{{de:ecp.png|400}}
  
 Zum Testen eignet sich das vom CILogon Projekt bereitgestellte [[http://www.cilogon.org/ecp#TOC-A-Basic-ECP-IdP-Test-Script|Testscript 'testecp.sh']]. 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 =====+<callout color="#ff9900" title="Schutz mit Basic-Auth nötig"> 
 +Viele Sync&Share-Clients kommen mit der ECP-Variante des Shibboleth IdP leider 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 - einfacher ist die Apache-Variante. 
 +</callout>
  
-Die gängigen BW-Sync&Share-Clients kommen mit der default-ECP-Variante des Shibboleth IdP leider nicht zurecht. +===== Entweder: ECP-Endpunkt mit Apache Basic-Auth schützen =====
-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, wobei die Apache-Variante aus unserer Sicht +
-deutlich simpler ist (die Tomcat-Variante finden Sie rechts im Index falls Sie Tomcat ohne Apache betreiben):+
  
 Authentifizierung per LDAP im Apache aktivieren: Authentifizierung per LDAP im Apache aktivieren:
Zeile 30: Zeile 27:
 # - Definition des LDAP-Server-Root-CA-Zertifikates außerhalb der VirtualHost-Direktive # - Definition des LDAP-Server-Root-CA-Zertifikates außerhalb der VirtualHost-Direktive
 # - hier am Beispiel der DFN-PKI, bitte anpassen # - hier am Beispiel der DFN-PKI, bitte anpassen
-# - Ist in /etc/ldap/ldap.conf ein anderes ROOT-CA-Zertifikat eingetragen, überschreibt es diesen Eintrag.+# - Abweichende Einträge in /etc/ldap/ldap.conf überschreiben diesen Eintrag.
 # #
 LDAPTrustedGlobalCert CA_BASE64 /etc/ssl/certs/T-TeleSec_GlobalRoot_Class_2.pem LDAPTrustedGlobalCert CA_BASE64 /etc/ssl/certs/T-TeleSec_GlobalRoot_Class_2.pem
Zeile 50: Zeile 47:
 </file> </file>
  
 +===== Oder: ECP-Endpunkt mit Tomcat Basic-Auth schützen =====
 +
 +FIXME prüfen!
 +
 +Wir empfehlen, die ECP-Schnittstelle über den Webserver zu schützen, wenn dies in Ihrer Umgebung möglich ist.
 +
 +Zunächst aktivieren Sie folgende Blöcke in ''./edit-webapp/WEB-INF/web.xml'':
 +
 +<file xml ./edit-webapp/WEB-INF/web.xml>
 +    ...
 +    <!--
 +    Uncomment to use container managed authentication. The new servlet spec (3.1)
 +    supports "**" as a wildcard syntax to avoid role usage, which is normally desirable.
 +    Older containers usually support "*" when proprietary options are used (e.g., Jetty
 +    requires setting the Strict property on the SecurityManager.)
 +    -->
 +    <security-constraint>
 +        <display-name>Web Login Service</display-name>
 +        <web-resource-collection>
 +            <web-resource-name>user authentication</web-resource-name>
 +            <url-pattern>/Authn/RemoteUser</url-pattern>
 +            <url-pattern>/profile/SAML2/SOAP/ECP</url-pattern>
 +            <http-method>POST</http-method>·
 +        </web-resource-collection>
 +        <auth-constraint>
 +            <role-name>**</role-name>
 +        </auth-constraint>
 +        <user-data-constraint>
 +            <transport-guarantee>CONFIDENTIAL</transport-guarantee>·
 +        </user-data-constraint>
 +    </security-constraint>
 +
 +    <!-- Uncomment if you want BASIC auth managed by the container. -->
 +    <login-config>
 +        <auth-method>BASIC</auth-method>
 +        <realm-name>Web Login Service</realm-name>
 +    </login-config>
 +    ...
 +</file>
 +
 +Passen Sie das Context Fragment in der Tomcat-Konfiguration an. Das sieht dann ungefähr so aus (appName, Pfade etc. ggf. anpassen):
 +
 +<file xml /etc/tomcat9/Catalina/localhost/idp.xml>
 +<Context docBase="/opt/shibboleth-idp/war/idp.war"
 +         privileged="true"
 +         antiResourceLocking="false"
 +         unpackWAR="true"
 +         swallowOutput="true">
 +  <Realm className="org.apache.catalina.realm.JAASRealm" appName="ShibUserPassAuth"/>
 +</Context>
 +</file>
 +
 +Geben Sie Tomcat den Pfad zur JAAS login.config als Startparameter mit:
 +
 +<file bash /etc/default/tomcat9>
 +JAVA_OPTS=" ... -Djava.security.auth.login.config=file:/opt/shibboleth-idp/login.config ..."
 +</file>
 +
 +Legen Sie die Datei ''./login.config'' an:
 +
 +<file javascript /opt/shibboleth-idp/login.config>
 +ShibUserPassAuth {
 +   org.ldaptive.jaas.LdapLoginModule required
 +      ldapUrl="..."
 +      ssl="true"
 +      bindDn="..."
 +      bindCredential="..."
 +      baseDn="..."
 +      userFilter="uid={user}"
 +      logCredentials="false"
 +   ;
 +};
 +</file>
 +
 +Starten Sie Tomcat neu.
 +
 +<callout color="#ff9900" title="Schutz vor Brute-Force">
 Da dieser Endpunkt weltweit erreichbar sein muss, können hier auch Brute-Force-Passwort-Angriffe auftreten. 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 [[de:shibidp:fail2ban|fail2ban-Seite]] in diesem Wiki. Diesen sollten ebenfalls mithilfe von fail2ban begegnet werden, siehe die [[de:shibidp:fail2ban|fail2ban-Seite]] in diesem Wiki.
 +</callout>
  
 ===== Funktionstest ===== ===== Funktionstest =====
Zeile 123: Zeile 198:
 </file> </file>
  
 +{{tag>idp4 ecp syncandshare}}
  • Zuletzt geändert: vor 4 Jahren