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 [2017/03/29 13:36]
Raoul Gunnar Borenius
de:shibidp3ecp [2019/10/10 15:07] (aktuell)
Silke Meyer
Zeile 1: Zeile 1:
-====== Enhanced Client ​and Proxy (ECP) ======+====== Enhanced Client ​or Proxy (ECP) ====== 
 + 
 +Die grundlegenden Konzepte sind im [[https://​wiki.shibboleth.net/​confluence/​display/​CONCEPT/​ECP|Shibboleth Wiki dokumentiert]].
  
 ECP ist im IdP 3.x out-of-the box aktiv. ECP ist im IdP 3.x out-of-the box aktiv.
Zeile 18: Zeile 20:
 ===== ECP für BWSync&​Share ===== ===== ECP für BWSync&​Share =====
  
-Die Im Moment gängigen BW-Sync&​Share-Clients kommen ​ mit der default-ECP-Variante wie sie der Shibboleth IdP +Die Im Moment gängigen BW-Sync&​Share-Clients kommen mit der default-ECP-Variante wie sie der Shibboleth IdP 
-mitbringt leider nicht zurecht. Der ECP-Endpunkt muss für diese Clients noch explizit mit Basic-Auth geschützt +mitbringt leider nicht zurecht ​(Ausnahme: der Powerfolder Iphone-Client scheint zu funktionieren). 
-werden. Dies kann mithilfe von Apache oder Tomcat gemacht werden, wobei die Apache ​variante ​aus unserer Sicht +Der ECP-Endpunkt muss für diese Clients noch explizit mit Basic-Auth geschützt werden. 
-deutlich simpler ist:+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):
  
 ==== Basic-Auth mithilfe von Apache ==== ==== Basic-Auth mithilfe von Apache ====
Zeile 28: Zeile 31:
  
 <file html /​etc/​apache2/​sites-available/​idp.hochschule-XY.de.conf>​ <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 LDAPTrustedGlobalCert CA_BASE64 /​etc/​ssl/​certs/​T-TeleSec_GlobalRoot_Class_2.pem
 +
 <​VirtualHost *:443> <​VirtualHost *:443>
   ServerName ​             idp.hochschule-XY.de:​443   ServerName ​             idp.hochschule-XY.de:​443
Zeile 55: Zeile 70:
 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 fail2ban-Seite in diesem Wiki. Diesen sollten ebenfalls mithilfe von fail2ban begegnet werden, siehe die fail2ban-Seite in diesem Wiki.
- 
- 
-==== Alternativ: Basic-Auth mithilfe von Tomcat (nicht mehr empfohlen da die Apache-Variante einfacher ist) ==== 
- 
-**1. web.xml** (unter /​edit-webapp/​WEB-INF bearbeiten):​ \\  
-Die beiden Blöcke am Ende ent-kommentieren:​ "​Uncomment to use container managed 
-authentication"​ und "​Uncomment if you want BASIC auth managed by the container"​ 
- 
-**2. Context Fragment in Tomcat-Konfiguration anpassen.** \\ 
-Das sieht dann ungefähr so aus (appName, Pfade etc. ggf. anpassen): 
- 
-<file xml /​etc/​tomcat8/​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>​ 
- 
-**3. Tomcat den Pfad zur JAAS login.config als Startparameter mitgeben** (unter Debian in 
-/​etc/​default/​tomcat8):​ 
- 
-<file bash /​etc/​default/​tomcat8>​ 
-JAVA_OPTS="​ ... -Djava.security.auth.login.config=file:/​opt/​shibboleth-idp/​login.config 
-..." 
-</​file>​ 
- 
-**4. /​opt/​shibboleth-idp/​login.config** 
- 
-** ACHTUNG: die Java-Klasse ist eine andere als bei der gewohnten login.config des IdP 2.x !!** 
- 
-<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>​ 
- 
  
 ==== Probleme mit Sync&​Share seit Version 3.3.x ==== ==== Probleme mit Sync&​Share seit Version 3.3.x ====
  
-Aus Bayern ​haben wir Probleme ​mit dem Zugriff auf den bayerischen Sync&​Share-Dienst nach Upgrade +Ältere Powerfolder-Clients ​haben Problem bei der ECP-Kommunikation ​mit dem IdP 3.3.1.
-auf IdP 3.3 gemeldet bekommen und geben den Workaround ungetestet weiter: +
- +
-Das Leibniz-Rechenzentrum hat einen Workaround erarbeitetIm idp-process.log sieht man +
-bei dem Fehler folgende Einträge:​ +
- +
-522 - WARN [org.opensaml.soap.soap11.decoder.http.impl.HTTPSOAP11Decoder:​146] - Saw +
-unsupported request Content-Type:​ text/plain; charset=ISO-8859-1 +
-523 - ERROR [org.opensaml.profile.action.impl.DecodeMessage:​73] - Profile Action +
-DecodeMessage:​ Unable to decode incoming request +
-org.opensaml.messaging.decoder.MessageDecodingException:​ Content-Type '​text/​plain;​ +
-charset=ISO-8859-1'​ was not a supported media type at +
-org.opensaml.soap.soap11.decoder.http.impl.HTTPSOAP11Decoder.validateHttpRequest(HTTPSOAP11Decoder.+
-ava:147+
  
 +Powerfolder hat hier im Juni 2017 nachgebesssert,​ Bitte achten Sie darauf dass Sie den
 +neuesten Client im Einsatz haben damit der Zugriff funktioniert.
  
-Problem ist die "​Klasse"​ opensaml-soap-impl-3.3.0.jar. In dieser wird neuerdings eine +==== Probleme mit bwLehrpool seit Version ​3.3.x ====
-Content-Type-Prüfung durchgeführt,​ welche fehlschlägt.+
  
-Man kann entweder wieder auf IdP 3.2.x zurückgehen oder als Workaround die "​Klasse"​ +Auch der bwLehrpool-Client hatte Probleme mit der Kommuniktaion zum IdP 3.3.1 weil ein falschen Content-Type verwendet wurde (http://​shibboleth.1660669.n2.nabble.com/ECP-issue-with-current-opensaml-soap-impl-td7629351.html)
-opensaml-soap-impl-3.3.0.jar (unter ​../WEB-INF/lib) durch die Vorgängerversion +
-opensaml-soap-impl-3.2.0.jar (welche im "​old-xxxxx"​-Sicherungsverzeichnis unter +
-../​WEB-INF/​libliegt ersetzen (natürlich die aktuelle Version vorher wegsichern). Danach +
-einen ./build.sh durchführen und die Anmeldung sollte wieder funktionieren. Dieser +
-Workaround ist natürlich auf eigene Gefahr!+
  
 +Sofern Sie noch nicht den neuesten Client in Verwendung haben wenden Sie sich bitte an [[https://​www.bwlehrpool.de/​|bwLehrpool]].
 ===== Funktionstest ===== ===== Funktionstest =====
  
Zeile 151: Zeile 103:
 ===== ECP einschränken auf einzelne SPs ===== ===== ECP einschränken auf einzelne SPs =====
  
-Wer die ECP-Unterstützung auf einzelne SPs einschränken möchte (aus unserer Sicht nicht nötig und hier nur der Vollstándigkeit ​halber erwähnt, aber falls jemand ein Szenario kennt in dem das sinnvoll ist, bitte melden ​;-), muss in ''/​opt/​shibboleth-idp/​conf/​relying-party.xml''​ im Abschnitt DefaultRelyingParty die Referenz auf das Bean ''​SAML2.ECP''​ auskommentieren und in der Liste der RelyingPartyOverrides eine Konfiguration für diese SPs hinzufügen. Das funktioniert analog zur +Wer die ECP-Unterstützung auf einzelne SPs einschränken möchte (aus unserer Sicht nicht nötig und hier nur der Vollständigkeit ​halber erwähnt, aber falls jemand ein Szenario kennt in dem das sinnvoll ist, bitte melden), muss in ''/​opt/​shibboleth-idp/​conf/​relying-party.xml''​ im Abschnitt DefaultRelyingParty die Referenz auf das Bean ''​SAML2.ECP''​ auskommentieren und in der Liste der RelyingPartyOverrides eine Konfiguration für diese SPs hinzufügen. Das funktioniert analog zur 
 [[de:​shibidp3storage|eingeschränkten Freigabe der PersistentID]]. \\ Hier ein Beispiel für bwIDM: [[de:​shibidp3storage|eingeschränkten Freigabe der PersistentID]]. \\ Hier ein Beispiel für bwIDM:
  
  • Zuletzt geändert: vor 3 Jahren