Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:shibidp:config-storage [2021/10/27 10:58] – [Umstellung auf SAML pairwise-id] Link zu pairwise ID Konfiguration Silke Meyer | de:shibidp:config-storage [2024/11/15 09:58] (aktuell) – [Installation] Doreen Liebenau | ||
---|---|---|---|
Zeile 18: | Zeile 18: | ||
==== Installation ==== | ==== Installation ==== | ||
+ | 1. Im einfachsten Fall installieren Sie auf dem IdP einen lokalen Datenbank-Server. Sie können natürlich auch entfernte Datenbanken über das Netzwerk einbinden. | ||
+ | |||
<code bash> | <code bash> | ||
root@idp:~# apt install mariadb-server mariadb-client libmariadb-java | root@idp:~# apt install mariadb-server mariadb-client libmariadb-java | ||
Zeile 24: | Zeile 25: | ||
<code bash> | <code bash> | ||
- | root@idp:~# ln -s / | + | root@idp:~# ln -s / |
</ | </ | ||
- | Starten Sie Tomcat neu um die neuen Einstellungen zu aktivieren: | + | 2. Starten Sie Tomcat neu um die neuen Einstellungen zu aktivieren: |
<code bash> | <code bash> | ||
- | root@idp:~# systemctl restart | + | root@idp:~# systemctl restart |
</ | </ | ||
+ | |||
+ | 3. Installieren Sie schließlich im IdP das JDBC-Plugin, | ||
==== Datenbank und Tabellen anlegen ==== | ==== Datenbank und Tabellen anlegen ==== | ||
Die Datenbank und der Datenbank-Benutzeraccount müssen manuell erstellt werden. Dann werden noch zwei Tabellen angelegt: | Die Datenbank und der Datenbank-Benutzeraccount müssen manuell erstellt werden. Dann werden noch zwei Tabellen angelegt: | ||
- | * '' | + | * '' |
* '' | * '' | ||
Zeile 53: | Zeile 56: | ||
version bigint(20) NOT NULL, | version bigint(20) NOT NULL, | ||
PRIMARY KEY (context, id) | PRIMARY KEY (context, id) | ||
- | ); | + | ) COLLATE utf8_bin; |
mysql> CREATE TABLE IF NOT EXISTS shibpid ( | mysql> CREATE TABLE IF NOT EXISTS shibpid ( | ||
Zeile 74: | Zeile 77: | ||
</ | </ | ||
- | ==== JPAStorageService | + | ==== JDBCStorageService |
- | Der DB-Zugriff wird über den [[https://wiki.shibboleth.net/ | + | Der DB-Zugriff wird über den [[https:// |
<file xml ./ | <file xml ./ | ||
Zeile 96: | Zeile 99: | ||
| | ||
<!-- Die folgenden Werte sind Default-Werte: | <!-- Die folgenden Werte sind Default-Werte: | ||
- | p:maxActive=" | + | p:maxTotal=" |
- | | + | |
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, | ||
| | ||
- | |||
<bean id=" | <bean id=" | ||
- | | + | |
- | p: | + | p: |
- | p: | + | p: |
- | p: | + | p: |
- | p: | + | p: |
- | 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: | + | p: |
- | p: | + | p: |
- | <bean id="shibboleth.JPAStorageService" | + | <bean id="JDBCStorageService" |
- | | + | |
p: | p: | ||
- | | + | |
- | + | ||
- | <bean id=" | + | |
- | class=" | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | <bean class=" | + | |
- | </ | + | |
- | </ | + | |
- | + | ||
- | <bean id=" | + | |
- | class=" | + | |
- | p: | + | |
- | p: | + | |
- | p: | + | |
</ | </ | ||
</ | </ | ||
Zeile 140: | Zeile 126: | ||
==== Datenbank-Credentials hinterlegen ==== | ==== Datenbank-Credentials hinterlegen ==== | ||
- | Die Properties für den Datenbank-Zugriff werden jetzt noch in '' | + | 1. Die Shibboleth-Entwickler empfehlen nicht mehr das tomcat-pooling zu verwenden, sondern |
+ | [[https:// | ||
<file java / | <file java / | ||
# ... | # ... | ||
- | mysql.class | + | mysql.class |
mysql.url | mysql.url | ||
mysql.username = shibboleth | mysql.username = shibboleth | ||
Zeile 150: | Zeile 137: | ||
</ | </ | ||
- | Das Passwort gehört wieder in die Datei '' | + | 2. Das Passwort gehört wieder in die Datei '' |
<file / | <file / | ||
mysql.password = GeHEIM007 | mysql.password = GeHEIM007 | ||
</ | </ | ||
- | Starten Sie Tomcat neu, um sicherzustellen, | + | 3. Starten Sie Tomcat neu, um sicherzustellen, |
<code bash> | <code bash> | ||
- | root@idp:~# systemctl restart | + | root@idp:~# systemctl restart |
</ | </ | ||
Zeile 187: | Zeile 174: | ||
</ | </ | ||
- | Der Salt-Hash, mit dem die persistentIds generiert werden, wird aus Sicherheitsgründen in der zugriffsbeschränkten Passwortdatei '' | + | Der Salt-Hash, mit dem die persistentIds generiert werden, wird aus Sicherheitsgründen in der zugriffsbeschränkten Passwortdatei '' |
<file properties / | <file properties / | ||
+ | # Bitte durch einen zufällig generierten Salt ersetzen! | ||
idp.persistentId.salt = my-very-very-long-hash | idp.persistentId.salt = my-very-very-long-hash | ||
Zeile 269: | Zeile 257: | ||
... | ... | ||
# Set to " | # Set to " | ||
- | idp.session.StorageService = shibboleth.JPAStorageService | + | idp.session.StorageService = JDBCStorageService |
# Set to " | # Set to " | ||
- | idp.consent.StorageService = shibboleth.JPAStorageService | + | idp.consent.StorageService = JDBCStorageService |
# Set to " | # Set to " | ||
Zeile 310: | Zeile 298: | ||
<code bash> | <code bash> | ||
- | root@idp:~# systemctl restart | + | root@idp:~# systemctl restart |
</ | </ | ||
===== 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), | + | Um in den Fällen, in denen ein anfragender SP keine Präferenzen bzgl. Name ID Format signalisiert (Metadaten und/oder AuthnRequest), |
<file xml / | <file xml / | ||
Zeile 338: | Zeile 326: | ||
<code bash> | <code bash> | ||
- | root@idp:/ | + | root@idp:/ |
</ | </ | ||
Zeile 356: | Zeile 344: | ||
# BASE64 will match V2 values, we recommend BASE32 encoding for new installs. | # BASE64 will match V2 values, we recommend BASE32 encoding for new installs. | ||
idp.persistentId.encoding = BASE32</ | idp.persistentId.encoding = BASE32</ | ||
+ | * Setzen Sie auch beim entsprechenden Data Connector in '' | ||
+ | < | ||
+ | xsi: | ||
+ | generatedAttributeID=" | ||
+ | salt=" | ||
+ | encoding=" | ||
+ | queryTimeout=" | ||
+ | < | ||
+ | < | ||
+ | </ | ||
* Bereits **bestehende persistentIDs** lassen Sie in der Datenbank bestehen, wie sie sind. Aus diesen persistentIDs werden dann zwar nicht standardkonforme SAML pairwise-ids gebildet. Wir gehen allerdings nicht davon aus, dass Service Provider, die die pairwise-id entgegennehmen, | * Bereits **bestehende persistentIDs** lassen Sie in der Datenbank bestehen, wie sie sind. Aus diesen persistentIDs werden dann zwar nicht standardkonforme SAML pairwise-ids gebildet. Wir gehen allerdings nicht davon aus, dass Service Provider, die die pairwise-id entgegennehmen, | ||
* Übermitteln Sie für die pairwise-id den Wert, der persistentID **mit Scope**. | * Übermitteln Sie für die pairwise-id den Wert, der persistentID **mit Scope**. | ||
{{tag> | {{tag> |