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 [2017/03/01 15:54] – [Session-Informationen und User Consent in DB ablegen] Raoul Gunnar Borenius | de:shibidp3storage [2019/01/21 11:32] – Wolfgang Pempe | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Server-Side-Storage und Persistent Identifier ====== | + | ====== Server-Side-Storage, Sessions, User Consent |
- | Per default werden Informationen zu User Consent (ehemals uApprove) und Persistent IDs client-seitig in cookies | + | Per default werden Informationen zu Sessions, |
- | 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 ===== | ||
Zeile 13: | Zeile 14: | ||
</ | </ | ||
- | Damit der Tomcat die MySQL-Java-Library beim Starten einliest (damit 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 28: | Zeile 29: | ||
Siehe hierzu einstweilen die [[https:// | Siehe hierzu einstweilen die [[https:// | ||
- | Hierzu jedenfalls die entsprechende Java JDBC Komponente installieren (Debian/ | + | Hierzu |
<code bash> | <code bash> | ||
root@idp:~# apt-get install libpostgresql-jdbc-java | root@idp:~# apt-get install libpostgresql-jdbc-java | ||
Zeile 39: | Zeile 40: | ||
===== Datenbank-Konfiguration ===== | ===== Datenbank-Konfiguration ===== | ||
- | Zunächst ist eine logische Datenbank zu erstellen. Hierzu müssen, wie vom IdP 2.x gewohnt, zunächst nur die Tabellen für die Angaben zur Persistent Id angelegt werden, die Tabelle | + | Zunächst ist eine logische Datenbank zu erstellen. Hierzu müssen, wie vom IdP 2.x gewohnt, zunächst nur die Tabellen für die Angaben zur Persistent Id angelegt werden, die Tabelle " |
- | Hier ein Beispiel für MySQL, wobei hier vorrausschauend | + | Hier ein Beispiel für MySQL, wobei hier vorausschauend |
<code mysql> | <code mysql> | ||
Zeile 72: | Zeile 73: | ||
Der DB-Zugriff wird über den [[https:// | Der DB-Zugriff wird über den [[https:// | ||
- | Diese Datei ist im auslieferungszustand | + | Diese Datei ist im Auslieferungszustand |
- | + | ||
- | Starten Sie Tomcat neu um sicherzustellen dass die global.xml ohne Probleme eingelesen werden kann (dabei Logdateien mitverfolgen!): | + | |
- | <code bash> | + | |
- | root@idp:/ | + | |
- | </ | + | |
- | + | ||
- | Hinweis: bei älteren Java Versionen führt der Parameter " | + | |
Zeile 96: | Zeile 90: | ||
mysql.password = GeHEIM007 | mysql.password = GeHEIM007 | ||
</ | </ | ||
- | Starten Sie Tomcat neu um die neuen Einstellungen zu aktivieren | + | |
+ | Starten Sie Tomcat neu, um sicherzustellen, | ||
<code bash> | <code bash> | ||
root@idp:/ | root@idp:/ | ||
</ | </ | ||
+ | |||
+ | Hinweis: bei älteren Java Versionen führt der Parameter " | ||
+ | |||
===== PersistentId Konfiguration ===== | ===== PersistentId Konfiguration ===== | ||
Zeile 105: | Zeile 103: | ||
Die persistentId wird in drei Schritten aktiviert: | Die persistentId wird in drei Schritten aktiviert: | ||
- | Erstens wird festgelegt wie die Id generiert und abgelegt werden soll: | + | Erstens wird festgelegt, wie die Id generiert und abgelegt werden soll: |
<file properties / | <file properties / | ||
Zeile 126: | Zeile 124: | ||
Hinweise zur Wahl des Quellatributs: | Hinweise zur Wahl des Quellatributs: | ||
- | * Als Quellattribut aus dem IdM für die persistentId | + | * Als Quellattribut aus dem IdM für die persistentId |
- | * eine Möglichkeit, | + | * Eine Möglichkeit, |
* Beispiele zur Generierung finden Sie unter [[de: | * Beispiele zur Generierung finden Sie unter [[de: | ||
Zeile 165: | Zeile 163: | ||
</ | </ | ||
</ | </ | ||
- | ===== Session-Informationen und User Consent in DB ablegen ===== | ||
- | Nachdem Datenbankverbindung und persistentId aktiviert sind können diese nun für die Speicherung von Session-und | + | Viertens: meist sind Usernamen im IdM-System unabhängig von Gross- und Kleinschreibung. D.h. die User können Ihren Loginnamen sowohl in Gross- als auch Kleinschreibung angeben und damit einen erfolgreichen Login durchführen. Allerdings führt dieses später zu Problemen beim Verwalten der Usernamen in der lokalen IdP-Datenbank da diese Gross- und Kleinschreibung unterscheidet. Wir empfehlen daher den Usernamen in diesen Fällen im IdP in Kleinbuchstaben umzuwandeln: |
- | Unterstützung im IdP ermöglicht: | + | |
+ | <file xml ./ | ||
+ | ... | ||
+ | < | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Damit werden die Usernamen vom IdP nur noch in Kleinbuchstabenform verarbeitet und in die Datenbank geschrieben. | ||
+ | |||
+ | ===== 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 [[de: | ||
<file properties / | <file properties / | ||
Zeile 180: | Zeile 188: | ||
# Set to " | # Set to " | ||
# to key user consent storage records (and set the attribute name) | # to key user consent storage records (and set the attribute name) | ||
- | idp.consent.userStorageKey = shibboleth.consent.AttributeConsentStorageKey | + | idp.consent.attribute-release.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey |
- | idp.consent.userStorageKeyAttribute = %{idp.persistentId.sourceAttribute} | + | idp.consent.attribute-release.userStorageKeyAttribute = %{idp.persistentId.sourceAttribute} |
+ | idp.consent.terms-of-use.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey | ||
+ | idp.consent.terms-of-use.userStorageKeyAttribute = %{idp.persistentId.sourceAttribute} | ||
# Flags controlling how built-in attribute consent feature operates | # Flags controlling how built-in attribute consent feature operates | ||
Zeile 196: | Zeile 206: | ||
</ | </ | ||
- | Starten Sie Tomcat neu um die neuen Einstellungen zu aktivieren (dabei Logdateien mitverfolgen!): | + | ===== 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!): | ||
<code bash> | <code bash> | ||
root@idp:/ | root@idp:/ | ||
Zeile 202: | Zeile 223: | ||
===== Weitergabe der Persistent ID ===== | ===== Weitergabe der Persistent ID ===== | ||
- | Um die persistentId für alle SPs freizugeben muss die SAML2.SSO-Bean-Definition erweitert werden: | + | 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 222: | Zeile 243: | ||
</ | </ | ||
- | 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 nochmal | + | Testen Sie nochmals |
persistentId übertragen wird. | persistentId übertragen wird. | ||
- | Falls Sie die persistentId nur an ausgewählte SPs übertragen | + | 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 | ||
** Weiter geht es mit [[de: | ** Weiter geht es mit [[de: |