Nutzungsbedingungen und Zustimmung zur Attributfreigabe

Ihr Klärungsbedarf

Bitte klären Sie mit Ihrer Rechtsabteilung bzw. Datenschutzbeauftragten, was für Sie relevant ist.

Mit der folgenden Konfiguration erreichen Sie, dass die Nutzer*innen bei der erstmaligen Anmeldung über den IdP und bei Änderungen an den Nutzungsbedingungen informiert und um Zustimmung gebeten werden.

Die Nutzungsbedingungen aktivieren Sie in zwei Schritten:

Erstens modifizieren Sie zwei Stellen in der Datei ./conf/intercept/consent-intercept-config.xml:

./conf/intercept/consent-intercept-config.xml
 ...
    <!--
    Terms of use is driven by a lookup function returning a key into messages/consent-messages.properties
 
    The default mapping returns the relying party / SP name as the key. The second example below
    demonstrates use of a custom mapping table from the relying party name to the key to use.
    -->
 
    <!-- Diesen alias-Block deaktivieren, damit das folgende bean aktiv werden kann -->
    <!-- <alias alias="shibboleth.consent.terms-of-use.Key" name="shibboleth.RelyingPartyIdLookup.Simple" /> -->
 
    <!-- bean einfügen, das die statischen Terms-Of-Use aus consent-messages.properties referenziert -->
    <bean id="shibboleth.consent.terms-of-use.Key" class="com.google.common.base.Functions" factory-method="constant">
        <constructor-arg value="my-terms"/>
    </bean>
 
    <!-- ...

und zweitens modifizieren Sie die beiden SSO-Zeilen in:

./conf/relying-party.xml
    <!--
    Default configuration, with default settings applied for all profiles, and enables
    the attribute-release consent flow.
    -->
    <bean id="shibboleth.DefaultRelyingParty" parent="RelyingParty">
        <property name="profileConfigurations">
            <list>
                <!-- Shibboleth-SSO default-Zeile deaktivieren 
                <bean parent="Shibboleth.SSO" p:postAuthenticationFlows="attribute-release" /> -->
                <!-- und ersetzen durch -->
                <bean parent="Shibboleth.SSO" p:postAuthenticationFlows="#{ {'terms-of-use', 'attribute-release'} }" />
                <ref bean="SAML1.AttributeQuery" />
                <ref bean="SAML1.ArtifactResolution" />
                <!-- SAML2-SSO default-Zeile deaktivieren
                <bean parent="SAML2.SSO" p:postAuthenticationFlows="attribute-release" /> -->
                <!-- und ersetzen durch -->
                <bean parent="SAML2.SSO" p:postAuthenticationFlows="#{ {'terms-of-use', 'attribute-release'} }" />
                <!-- danach alles lassen wie es ist -->
                <ref bean="SAML2.ECP" />
                <ref bean="...

Starten Sie Tomcat neu:

root@idp:~# systemctl restart tomcat9

Um die Nutzungsbedingungen auch nach dem ersten Mal noch einsehen zu können, kann ein entsprechender Link im Footer der IdP-Seiten mitgeführt werden. Damit dieser Link funktioniert, legen Sie bitte folgende Datei an:

./edit-webapp/tou.jsp
<%@ page pageEncoding="UTF-8" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>
   <spring:message code="root.title" text="Shibboleth IdP" /> - <spring:message code="my-tou.title" text="Terms of Use" />
  </title>
  <link rel="stylesheet" type="text/css" href="<%= request.getContextPath()%>/css/consent.css">
 </head>
 
 <body>
  <div class="box">
   <header>
    <a href="<spring:message code="idp.logo.target.url" />" target="_blank">
       <img src="<%= request.getContextPath() %><spring:message code="idp.logo" />"
        alt="<spring:message code="idp.logo.alt-text" text="logo" />">
    </a>
   </header>
 
   <div id="tou-content">
    <spring:message code="my-tou.text" text="Terms of Use" />
   </div>
 
   <footer>
    <div class="container container-footer">
     <p class="footer-text">
      <strong>
       &copy; <spring:message code="idp.logo.alt-text" /> <spring:message code="idp.url.copyyear" /> |
       <a title="Impressum" href="<spring:message code="idp.url.imprint" />" target="_blank">
        Impressum
       </a>
      </strong>
     </p>
    </div>
   </footer>
  </div>
 
 </body>
</html>

Erzeugen Sie die IdP-War Datei neu:

root@idp:~# JAVA_HOME=/usr /opt/shibboleth-idp/bin/build.sh

EU-DSGVO

Falls Sie dem Beispiel für eine EU-DSGVO-konforme Konfiguration des User Consent Moduls folgen, finden Sie dort eine angepasste Datei tou.jsp.

Testen Sie nochmal einen Login mithilfe der DFN-Test-SP(s) und überzeugen Sie sich, dass die Nutzungsbedingungen angezeigt werden.

Benutzer-Einwilligung zur Attributfreigabe (User Consent)

Nach der Zustimmung zu den Nutzungsbedingungen werden die Benutzer*innen noch nach ihrer Zustimmung zur Attributfreigabe an den SP gefragt. Ihre Entscheidungen werden clientseitig als Cookies gespeichert, was für den initialen Test-Betrieb ausreichend ist.

Weiterführende Informationen finden Sie im Shibboleth Wiki.

Per Default ist auf der Seite, auf der die zu übertragenden Attribute angezeigt werden, der Radiobutton aktiv, der die nochmalige Anzeige der Attribute beim nächsten Zugriff auf den jeweiligen SP deaktiviert. Sollte dies aus datenschutzrechtlichen Gründen nicht gewollt sein, kann durch einen Eingriff in die Datei ./views/intercept/attribute-release.vm erreicht werden, dass die Option voreingestellt ist, die zu übertragenden Attribute auch beim nächsten Mal angezeigt zu bekommen.
Hierzu muss jeweils die Zeile

<input id="_shib_idp_doNotRememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_doNotRememberConsent">

in

<input id="_shib_idp_doNotRememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_doNotRememberConsent" checked> 


und

<input id="_shib_idp_rememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_rememberConsent" checked>

in

<input id="_shib_idp_rememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_rememberConsent">

geändert werden.

  • Zuletzt geändert: vor 4 Monaten