Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision | ||
de:shibidp3storage [2019/01/16 09:25] – Wolfgang Pempe | de:shibidp3storage [2019/04/04 10:01] – Schreiterer, Frank | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Server-Side-Storage, | ====== Server-Side-Storage, | ||
- | Per default werden Informationen zu Sessions, User Consent (ehemals uApprove) und Persistent IDs client-seitig in Cookies abgelegt. Dies kann aber nur als initiale " | + | Per default werden Informationen zu Sessions, User Consent (insbesondere bzgl. Attributfreigabe) und Persistent IDs client-seitig in Cookies abgelegt. Dies kann aber nur als initiale " |
- | Single-Logout). | + | |
+ | **Darüber hinaus kann nur auf diese Weise sichergestellt werden, dass bei Attribute Queries (SP fragt anhand eines Name Identifiers direkt beim IdP Nutzerdaten ab), die Entscheidungen des/der Nutzers/ | ||
===== Installation Datenbanksoftware ===== | ===== Installation Datenbanksoftware ===== | ||
- | ====MySQL==== | + | ==== MySQL ==== |
+ | |||
+ | === Debian 8 === | ||
- | ===Debian 8=== | ||
<code bash> | <code bash> | ||
- | root@idp:~# apt-get install mysql-server mysql-client libmysql-java | + | root@idp:~# apt-get install mysql-server mysql-client libmysql-java |
</ | </ | ||
- | Damit der Tomcat die MySQL-Java-Library beim Starten einliest (d.h. der IdP sie dann verwenden kann), wird | + | Damit der Tomcat die MySQL-Java-Library beim Starten einliest (d.h. der IdP sie dann verwenden kann), wird diese üblicherweise in / |
- | diese üblicherweise in / | + | |
<code bash> | <code bash> | ||
Zeile 21: | Zeile 21: | ||
Starten Sie Tomcat neu um die neuen Einstellungen zu aktivieren (dabei Logdateien mitverfolgen!): | Starten Sie Tomcat neu um die neuen Einstellungen zu aktivieren (dabei Logdateien mitverfolgen!): | ||
+ | |||
<code bash> | <code bash> | ||
root@idp:~# service tomcat8 restart | root@idp:~# service tomcat8 restart | ||
</ | </ | ||
- | ====PostgreSQL==== | + | ==== PostgreSQL ==== |
+ | |||
+ | Siehe hierzu einstweilen die [[https:// | ||
- | Siehe hierzu einstweilen die [[https:// | ||
- | Hierzu ist jedenfalls die entsprechende Java JDBC Komponente installieren (Debian/ | ||
<code bash> | <code bash> | ||
root@idp:~# apt-get install libpostgresql-jdbc-java | root@idp:~# apt-get install libpostgresql-jdbc-java | ||
</ | </ | ||
- | ===RHEL=== | + | |
+ | === RHEL === | ||
<code bash> | <code bash> | ||
yum install postgresql-server postgresql | yum install postgresql-server postgresql | ||
Zeile 71: | Zeile 74: | ||
Ein Beispiel für PostgreSQL findet sich beim [[https:// | Ein Beispiel für PostgreSQL findet sich beim [[https:// | ||
- | Der DB-Zugriff wird über den [[https:// | + | Der DB-Zugriff wird über den [[https:// |
- | Diese Datei ist im Auslieferungszustand leer (bis auf Kommentare). Ersetzen Sie sie durch die [[de: | + | |
PostgreSQL: Siehe [[https:// | PostgreSQL: Siehe [[https:// | ||
- | https:// | + | [[https:// |
Die Properties für den DB-Zugriff werden jetzt noch in idp.properties ergänzt (bitte auf die Tomcat-Version achten!): | Die Properties für den DB-Zugriff werden jetzt noch in idp.properties ergänzt (bitte auf die Tomcat-Version achten!): | ||
Zeile 85: | Zeile 86: | ||
# Tomcat8 | # Tomcat8 | ||
mysql.class | mysql.class | ||
- | mysql.url | + | mysql.url |
mysql.username = shibboleth | mysql.username = shibboleth | ||
mysql.password = GeHEIM007 | mysql.password = GeHEIM007 | ||
Zeile 91: | Zeile 92: | ||
Starten Sie Tomcat neu, um sicherzustellen, | Starten Sie Tomcat neu, um sicherzustellen, | ||
+ | |||
<code bash> | <code bash> | ||
root@idp:/ | root@idp:/ | ||
Zeile 96: | Zeile 98: | ||
Hinweis: bei älteren Java Versionen führt der Parameter " | Hinweis: bei älteren Java Versionen führt der Parameter " | ||
- | |||
===== PersistentId Konfiguration ===== | ===== PersistentId Konfiguration ===== | ||
Zeile 109: | Zeile 110: | ||
# in den allermeisten Fällen wird das immer ' | # in den allermeisten Fällen wird das immer ' | ||
# Attribut ' | # Attribut ' | ||
- | idp.persistentId.sourceAttribute = uid | + | idp.persistentId.sourceAttribute = uid |
# | # | ||
# Do *NOT* share the salt with other people, it's like divulging your private key. | # Do *NOT* share the salt with other people, it's like divulging your private key. | ||
Zeile 125: | Zeile 126: | ||
* Als Quellattribut aus dem IdM für die persistentId muss man ein IdM-Attribut nehmen, welches auch über die Zeit für alle Benutzer eindeutig ist. Oft ist dies das IdM-Attribut ' | * Als Quellattribut aus dem IdM für die persistentId muss man ein IdM-Attribut nehmen, welches auch über die Zeit für alle Benutzer eindeutig ist. Oft ist dies das IdM-Attribut ' | ||
* Eine Möglichkeit, | * Eine Möglichkeit, | ||
- | * Beispiele zur Generierung finden Sie unter [[de: | + | * Beispiele zur Generierung finden Sie unter [[:de: |
Zweitens wird die Java-Bean für die Generierung aktiviert indem der Eintrag für shibboleth.SAML2PersistentGenerator ent-kommentieren wird: | Zweitens wird die Java-Bean für die Generierung aktiviert indem der Eintrag für shibboleth.SAML2PersistentGenerator ent-kommentieren wird: | ||
Zeile 173: | Zeile 174: | ||
Damit werden die Usernamen vom IdP nur noch in Kleinbuchstabenform verarbeitet und in die Datenbank geschrieben. | Damit werden die Usernamen vom IdP nur noch in Kleinbuchstabenform verarbeitet und in die Datenbank geschrieben. | ||
- | ===== Session-Informationen und User Consent | + | ===== Session-Informationen und User Consent ===== |
- | Nachdem Datenbankverbindung und persistentId aktiviert sind, können diese nun für die Speicherung von Session- und User Consent-Informationen genutzt werden. Dadurch wird als netter Nebeneffekt auch SingleLogout- | + | Nachdem Datenbankverbindung und persistentId aktiviert sind, können diese nun für die Speicherung von Session- und User Consent-Informationen genutzt werden. Dadurch wird als netter Nebeneffekt auch [[: |
- | Unterstützung im IdP ermöglicht: | + | |
<file properties / | <file properties / | ||
Zeile 184: | Zeile 184: | ||
# Set to " | # Set to " | ||
- | idp.consent.StorageService = shibboleth.JPAStorageService | + | idp.consent.StorageService = shibboleth.JPAStorageService |
# Set to " | # Set to " | ||
Zeile 204: | Zeile 204: | ||
# Verfügung steht sollte dieses sinnvolle Feature aktiviert werden! | # Verfügung steht sollte dieses sinnvolle Feature aktiviert werden! | ||
idp.consent.compareValues = true | idp.consent.compareValues = true | ||
+ | </ | ||
+ | |||
+ | ===== User Consent zu Attributfreigabe bei Attribute Queries berücksichtigen ===== | ||
+ | |||
+ | Damit bei Attribute Queries Nutzer-Entscheidungen zur Attributfreigabe berücksichtigt werden, muss in ./ | ||
+ | |||
+ | <file xml ./ | ||
+ | <!-- | ||
+ | Condition to evaluate to apply attribute-release consent to attribute queries. | ||
+ | --> | ||
+ | <bean id=" | ||
</ | </ | ||
Starten Sie Tomcat neu, um die neuen Einstellungen zu aktivieren (dabei Logdateien mitverfolgen!): | Starten Sie Tomcat neu, um die neuen Einstellungen zu aktivieren (dabei Logdateien mitverfolgen!): | ||
+ | |||
<code bash> | <code bash> | ||
root@idp:/ | root@idp:/ | ||
</ | </ | ||
+ | |||
===== 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 221: | Zeile 234: | ||
< | < | ||
< | < | ||
- | < | + | < |
- | | + | |
| | ||
< | < | ||
Zeile 233: | Zeile 246: | ||
Starten Sie Tomcat neu, um die neuen Einstellungen zu aktivieren (dabei Logdateien mitverfolgen!): | Starten Sie Tomcat neu, um die neuen Einstellungen zu aktivieren (dabei Logdateien mitverfolgen!): | ||
+ | |||
<code bash> | <code bash> | ||
root@idp:/ | root@idp:/ | ||
</ | </ | ||
- | Testen Sie nochmals einen Login mithilfe der DFN-Test-SP(s) und überzeugen Sie sich, dass die | + | Testen Sie nochmals einen Login mithilfe der DFN-Test-SP(s) und überzeugen Sie sich, dass die persistentId übertragen wird. |
- | persistentId übertragen wird. | + | |
HINWEIS: Da die persistendId kein SAML-Attribut ist, wird Ihnen diese nach dem Login am IdP nicht in der Liste der zu übertragenden Attribute angezeigt. Erst wenn Sie wieder am Test-SP sind wird Ihnen dort die persistentId, | HINWEIS: Da die persistendId kein SAML-Attribut ist, wird Ihnen diese nach dem Login am IdP nicht in der Liste der zu übertragenden Attribute angezeigt. Erst wenn Sie wieder am Test-SP sind wird Ihnen dort die persistentId, | ||
- | Falls die persistentId nur an ausgewählte SPs übertragen werden soll, so finden sich [[[[de: | + | Falls die persistentId nur an ausgewählte SPs übertragen werden soll, so finden sich [[:de: |
+ | |||
+ | **Weiter geht es mit [[: | ||
- | ** Weiter geht es mit [[de: |