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
Letzte Überarbeitung Beide Seiten der Revision
de:shibidp:config-ldap-nopool [2016/07/14 10:31]
Martin Lunze
de:shibidp:config-ldap-nopool [2021/04/26 14:58]
Silke Meyer überarbeitungsbedürftig
Zeile 1: Zeile 1:
-====== Spezielle LDAP Konfiguration ====== +====== LDAP ohne Connection Pool ======
-===== LDAP ohne Connection Pool =====+
 Gibt es Probleme bei der Verbindung mit dem LDAP-Server unter Verwendung eines Connection Pools, so kann man diesen mit folgenden Schritten deaktivieren. Gibt es Probleme bei der Verbindung mit dem LDAP-Server unter Verwendung eines Connection Pools, so kann man diesen mit folgenden Schritten deaktivieren.
  
-Die aktuelle IdP-Version (3.2.1) basiert auf [[http://www.ldaptive.org/index.html|Ldaptive]] und benutzt standardmäßig eine sogenannte [[http://www.ldaptive.org/docs/guide/connections.html|PooledConnectionFactory]].\\ +Der IdP benutzt standardmäßig eine sogenannte [[http://www.ldaptive.org/docs/guide/connections.html|PooledConnectionFactory]]. Das heißt, dass eine definierte Anzahl an Verbindungen zum LDAP-Dienst aufrecht erhalten wird und Authentifizierungen sofort stattfinden können (Performance-Verbesserung).
-Das heist im Speziellen, dass Shibboleth eine definierte Anzahl an Verbindungen zum LDAP-Dienst aufrecht erhält.\\ +
-Vorteil dabei ist, dass zum Zeitpunkt des Logins eines Nutzers nicht erst eine Verbindung zum LDAP aufgebaut werden muss, sondern dieser sich ohne Verzögerung sofort authentifizieren kann. (Performance-Verbesserung)+
  
-Wenn aus welchen Gründen auch immer diese Verbindung beendet wird, so registriert Shibboleth dies und baut selbstständig eine neue auf.\\ +Wenn diese Verbindung beendet wird, so registriert Shibboleth dies und baut selbstständig eine neue auf. Dies kann man über ein paar Parameter in ''conf/ldap.properties'' ([[https://wiki.shibboleth.net/confluence/display/IDP30/LDAPAuthnConfiguration#LDAPAuthnConfiguration-Properties|IdP 3.x]], [[https://wiki.shibboleth.net/confluence/display/IDP4/LDAPAuthnConfiguration#55804291414bc06da6fe4d90ba837912b84b54aa|IdP 4.x]]) steuern. In der Konfigurationsdatei sehen Sie die (auskommentierten) Standardeinstellungen und können sie bei Bedarf verändern (Beispiel für IdP 4.x).
-Dies kann z.B. auftreten wenn der LDAP-Server die Verbindungen nach einer bestimmten "idleTime" beendet.\\ +
-Im Großen und Ganzen kann man dies alles über ein paar [[https://wiki.shibboleth.net/confluence/display/IDP30/LDAPAuthnConfiguration#LDAPAuthnConfiguration-Properties|Parameter]] unter conf/ldap.properties steuern.+
  
-<file xml conf/ldap.properties>+<file properties conf/ldap.properties>
 # LDAP pool configuration, used for both authn and DN resolution # LDAP pool configuration, used for both authn and DN resolution
 #idp.pool.LDAP.minSize                          = 3 #idp.pool.LDAP.minSize                          = 3
Zeile 17: Zeile 12:
 #idp.pool.LDAP.validateOnCheckout               = false #idp.pool.LDAP.validateOnCheckout               = false
 #idp.pool.LDAP.validatePeriodically             = true #idp.pool.LDAP.validatePeriodically             = true
-#idp.pool.LDAP.validatePeriod                   300 +#idp.pool.LDAP.validatePeriod                   PT5M 
-#idp.pool.LDAP.prunePeriod                      300 +#idp.pool.LDAP.validateDN                       
-#idp.pool.LDAP.idleTime                         600 +#idp.pool.LDAP.validateFilter                   (objectClass=*) 
-#idp.pool.LDAP.blockWaitTime                    3000 +#idp.pool.LDAP.prunePeriod                      PT5M 
-#idp.pool.LDAP.failFastInitialize               false+#idp.pool.LDAP.idleTime                         = PT10M 
 +#idp.pool.LDAP.blockWaitTime                    PT3S
 </file> </file>
  
-Nun kann es in Einzelfällen jedoch dazu kommen, dass die Verbindung zwar erhalten bleibt, jedoch in einer definierten Zeit keine Antwort vom LDAP zurück kommt. (z.B. bei erhöhtem Load)\\ +Es kann dazu kommen, dass die Verbindung zum LDAP-Server zwar erhalten bleibt, jedoch in einer definierten Zeit keine Antwort zurück kommt. Unter Umständen können sich Nutzer*innen dann nicht mehr am IdP einloggen.
-Dies führt letztendlich dazu, dass sich Nutzer nicht mehr am IdP einloggen können wenn dieser die maximale Anzahl an Verbindungen erreicht hat.+
  
 Ein passender Eintrag in den Logfiles sieht wie folgt aus: Ein passender Eintrag in den Logfiles sieht wie folgt aus:
Zeile 36: Zeile 31:
 </code> </code>
  
-Ältere Versionen vom IdP haben hingegen keine Verbindungen offen gehalten, sondern diese erst geöffnet, wenn sich ein Nutzer einloggt.\\ +Um den Connection Pool im **IdP 4.x** abzuschaltenkönnen Sie die Einstellung ''idp.authn.LDAP.disablePooling'' in ''ldap.properties'' auf den Wert ''true'' setzen.
-Die maginale Verzögerung beim Aufbau der Verbindungen sollte aus Sicht des Nutzers nicht zu spüren sein und spätestens dann vertretbar seinwenn solch ein Problem-Fall eintritt.+
  
-Um nun zu diesem Verhalten zu wechseln müssen lediglich zwei kleine Änderungen in der conf/authn/ldap-authn-config.xml getätigt werden.\\ +Um den Connection Pool im **IdP 3.x** abzuschalten, müssen lediglich zwei kleine Änderungen in der ''conf/authn/ldap-authn-config.xml'' getätigt werden: Entfernen Sie das Wort "Pooled" aus den class-Bezeichnungen und den connectionFactory-Referenzen und schon wird statt der PooledConnectionFactory die DefaultConnectionFactory benutzt.
-Wir entfernen hier das Wort "Pooled" aus den class-Bezeichnungen und den connectionFactory-Referenzen und schon wird statt der PooledConnectionFactory die DefaultConnectionFactory benutzt.+
  
 <file xml conf/authn/ldap-authn-config.xml> <file xml conf/authn/ldap-authn-config.xml>
Zeile 87: Zeile 80:
 <!-- ... --> <!-- ... -->
 </file> </file>
 +
 +{{tag>idp3 idp4 fixme}}
  • Zuletzt geändert: vor 9 Monaten