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-storage [2024/06/17 08:23] – [Weitergabe der Persistent ID] Doreen Liebenaude:shibidp:config-storage [2025/05/20 09:35] (aktuell) – [Datenbank-Konfiguration] IdP5-Link zum Shib-Wiki Doreen Liebenau
Zeile 15: Zeile 15:
  
 ===== Datenbank-Konfiguration ===== ===== Datenbank-Konfiguration =====
-Wir zeigen die Vorgehensweise hier anhand von MariaDB. Es ist aber möglich, andere Datenbank-Software zu verwenden, etwa MySQL, Oracle oder Postgres, siehe hierzu die Dokumentation im [[https://wiki.shibboleth.net/confluence/display/IDP4/StorageConfiguration|Shibboleth-Wiki]]. Ein Beispiel für PostgreSQL findet sich bei [[https://www.switch.ch/aai/guides/idp/installation/#sqldatabase|SWITCHAAI]].+Wir zeigen die Vorgehensweise hier anhand von MariaDB. Es ist aber möglich, andere Datenbank-Software zu verwenden, etwa MySQL, Oracle oder Postgres, siehe hierzu die Dokumentation im [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199509576/StorageConfiguration|Shibboleth-Wiki]]. Ein Beispiel für PostgreSQL findet sich bei [[https://www.switch.ch/aai/guides/idp/installation/#sqldatabase|SWITCHAAI]].
  
 ==== Installation ==== ==== Installation ====
Zeile 34: Zeile 34:
 </code> </code>
  
-3. Installieren Sie schließlich im IdP das JDBC-Plugin:<code bash>root@idp:~# /opt/shibboleth-idp/bin/plugin.sh -I net.shibboleth.plugin.storage.jdbc</code>+3. Installieren Sie schließlich im IdP das JDBC-Plugin, falls noch nicht geschehen:<code bash>root@idp:~# /opt/shibboleth-idp/bin/plugin.sh -I net.shibboleth.plugin.storage.jdbc</code>
  
 ==== Datenbank und Tabellen anlegen ==== ==== Datenbank und Tabellen anlegen ====
Zeile 99: Zeile 99:
          
     <!-- Die folgenden Werte sind Default-Werte:     <!-- Die folgenden Werte sind Default-Werte:
-         p:maxActive="100" +           p:maxTotal="100" 
-         p:maxIdle="100"+           p:maxIdle="100"
          Es ist unter Umständen nötig, dass Sie diese Werte je nach Auslastung Ihres IdP anpassen,          Es ist unter Umständen nötig, dass Sie diese Werte je nach Auslastung Ihres IdP anpassen,
          ebenso wie die Konfiguration Ihres MySQL-Servers. -->          ebenso wie die Konfiguration Ihres MySQL-Servers. -->
- 
         <bean id="shibboleth.MySQLDataSource"         <bean id="shibboleth.MySQLDataSource"
-              class="%{mysql.class}" +          class="%{mysql.class}" 
-              p:driverClassName="org.mariadb.jdbc.Driver" +          p:driverClassName="org.mariadb.jdbc.Driver" 
-              p:url="%{mysql.url}" +          p:url="%{mysql.url}" 
-              p:username="%{mysql.username}" +          p:username="%{mysql.username}" 
-              p:password="%{mysql.password}" +          p:password="%{mysql.password}" 
-              p:maxWait="15000+          p:maxTotal="100
-              p:testOnBorrow="true+          p:maxIdle="100
-              p:maxActive="100+          p:maxWaitMillis="15000
-              p:maxIdle="100+          p:testOnBorrow="true
-              p:validationQuery="select 1" +          p:validationQuery="select 1" 
-              p:validationQueryTimeout="5" />+          p:validationQueryTimeout="5" />
  
         <bean id="JDBCStorageService"         <bean id="JDBCStorageService"
               parent="shibboleth.JDBCStorageService"               parent="shibboleth.JDBCStorageService"
               p:cleanupInterval="%{idp.storage.cleanupInterval:PT10M}"               p:cleanupInterval="%{idp.storage.cleanupInterval:PT10M}"
-              p:dataSource-ref="shibboleth.MySQLDataSource" />+              p:dataSource-ref="shibboleth.MySQLDataSource" />   
 +      
 </beans> </beans>
 </file> </file>
Zeile 126: Zeile 126:
 ==== Datenbank-Credentials hinterlegen ==== ==== Datenbank-Credentials hinterlegen ====
  
-1. Die Properties für den Datenbank-Zugriff werden jetzt noch in ''./conf/idp.properties'' ergänzt:+1. Die Shibboleth-Entwickler empfehlen nicht mehr das tomcat-pooling zu verwenden, sondern 
 +[[https://shibboleth.atlassian.net/wiki/spaces/IDPPLUGINS/pages/2989096970/JDBCStorageService#Connection-Pooling | DBCP 2]]. Die Properties für den Datenbank-Zugriff werden jetzt noch entsprechend in ''./conf/idp.properties'' ergänzt:
  
 <file java /opt/shibboleth-idp/conf/idp.properties> <file java /opt/shibboleth-idp/conf/idp.properties>
 # ... # ...
-mysql.class    = org.apache.tomcat.jdbc.pool.DataSource+mysql.class    = org.apache.commons.dbcp2.BasicDataSource
 mysql.url      = jdbc:mysql://localhost:3306/shibboleth mysql.url      = jdbc:mysql://localhost:3306/shibboleth
 mysql.username = shibboleth mysql.username = shibboleth
Zeile 223: Zeile 224:
  
 Meist sind Usernamen in IdM-Systemen unabhängig von Groß- und Kleinschreibung: Nutzer*innen können ihre Anmeldenamen sowohl groß, als auch klein schreiben und sich damit erfolgreich anmelden. Die IdP-Datenbank unterscheidet jedoch zwischen Groß- und Kleinschreibung. Wir empfehlen daher, alle Usernamen im IdP in Kleinbuchstaben zu verarbeiten: Meist sind Usernamen in IdM-Systemen unabhängig von Groß- und Kleinschreibung: Nutzer*innen können ihre Anmeldenamen sowohl groß, als auch klein schreiben und sich damit erfolgreich anmelden. Die IdP-Datenbank unterscheidet jedoch zwischen Groß- und Kleinschreibung. Wir empfehlen daher, alle Usernamen im IdP in Kleinbuchstaben zu verarbeiten:
- 
-=== bis IdP 4.0.1 === 
-<file xml ./conf/c14n/simple-subject-c14n-config.xml> 
-   ... 
-   <util:constant id="shibboleth.c14n.simple.Lowercase" static-field="java.lang.Boolean.TRUE"/> 
-   ... 
-</file> 
  
 === ab IdP 4.1.0 === === ab IdP 4.1.0 ===
Zeile 283: Zeile 277:
 ===== User Consent zu Attributfreigabe bei Attribute Queries berücksichtigen ===== ===== User Consent zu Attributfreigabe bei Attribute Queries berücksichtigen =====
  
-Damit bei Attribute Queries Nutzer-Entscheidungen zur Attributfreigabe berücksichtigt werden, muss in ''./conf/intercept/consent-intercept-config.xml'' die entsprechende Condition gesetzt werden. Ab dem IdP 4.1.0 müssen Sie zunächst das [[https://wiki.shibboleth.net/confluence/display/IDP4/ConsentConfiguration|Intercept Consent-Modul aktivieren]], damit Sie die Datei überhaupt haben:<code bash>bin/module.sh -t idp.intercept.Consent || bin/module.sh -e idp.intercept.Consent</code>+Damit bei Attribute Queries Nutzer-Entscheidungen zur Attributfreigabe berücksichtigt werden, muss in ''./conf/intercept/consent-intercept-config.xml'' die entsprechende Condition gesetzt werden. Ab dem IdP 4.1.0 müssen Sie zunächst das [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199509862/ConsentConfiguration|Intercept Consent-Modul aktivieren]], damit Sie die Datei überhaupt haben:<code bash>bin/module.sh -t idp.intercept.Consent || bin/module.sh -e idp.intercept.Consent</code>
  
 Dann modifizieren Sie die Datei wie folgt: Dann modifizieren Sie die Datei wie folgt:
Zeile 302: Zeile 296:
 ===== Weitergabe der Persistent ID ===== ===== Weitergabe der Persistent ID =====
  
-Um in den Fällen, in denen ein anfragender SP keine Präferenzen bzgl. Name ID Format signalisiert (Metadaten und/oder AuthnRequest), eine Gewichtung festzulegen (siehe hierzu die [[https://wiki.shibboleth.net/confluence/display/IDP30/NameIDGenerationConfiguration#NameIDGenerationConfiguration-FormatSelectionFormatSelection|Doku im Shibboleth-Wiki]]), kann die SAML2.SSO-Bean-Definition **bei Bedarf**  entsprechend erweitert werden:+Um in den Fällen, in denen ein anfragender SP keine Präferenzen bzgl. Name ID Format signalisiert (Metadaten und/oder AuthnRequest), eine Gewichtung festzulegen (siehe hierzu die [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199507810/NameIDGenerationConfiguration|Doku im Shibboleth-Wiki]]), kann die SAML2.SSO-Bean-Definition **bei Bedarf**  entsprechend erweitert werden:
  
 <file xml /conf/relying-party.xml> <file xml /conf/relying-party.xml>
  • Zuletzt geändert: vor 15 Monaten