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:shibidp3consent_dsgvo_attribute_release [2020/04/16 08:54] Silke Meyerde:shibidp:config-consent-dsgvo-attribute-release [2022/05/02 14:51] (aktuell) Wolfgang Pempe
Zeile 1: Zeile 1:
 ====== Beispiel für eine EU-DSGVO-konforme Konfiguration des User Consent Moduls - Attribute Release Templates ====== ====== Beispiel für eine EU-DSGVO-konforme Konfiguration des User Consent Moduls - Attribute Release Templates ======
-**[[de:shibidp3consent_dsgvo|Zurück zur Hauptseite]]**+**[[de:shibidp:config-consent-dsgvo_shib-idp_4.0.x|Zurück zur Hauptseite]]**
  
 **Anmerkungen:** **Anmerkungen:**
-  * Die hier aufgelisteten Varianten beziehen sich auf die Lösungsmodelle aus der Präsentation [[https://www.dfn.de/fileadmin/3Beratung/Betriebstagungen/bt69/BT69_AAI_DS-AAI-Verfahren_Strobel_Moerike.pdf|"Datenschutzrechtliche Analyse das AAI-Verfahrens"]] von der [[https://www.dfn.de/veranstaltungen/bt/vortraege/69-betriebstagung-2509-bis-26092018/|69. DFN-Betriebstagung]]. +  * Die hier aufgelisteten Varianten beziehen sich auf die Lösungsmodelle aus der Präsentation [[https://www2.dfn.de/fileadmin/3Beratung/Betriebstagungen/bt69/BT69_AAI_DS-AAI-Verfahren_Strobel_Moerike.pdf|"Datenschutzrechtliche Analyse das AAI-Verfahrens"]] von der [[https://www2.dfn.de/veranstaltungen/bt/vortraege/69-betriebstagung-2509-bis-26092018/|69. DFN-Betriebstagung]]. 
-  * Sollen zusätzlich zu Variante 1 weitere Lösungsmodelle implementiert werden, müssen spezifische Interceptor Flows definiert werden. Siehe hierzu auf der [[de:shibidp3consent_dsgvo|Hauptseite]]. +  * Sollen zusätzlich zu Variante 1 weitere Lösungsmodelle implementiert werden, müssen spezifische Interceptor Flows definiert werden. Siehe hierzu auf der [[de:shibidp:config-consent-dsgvo_shib-idp_4.0.x|Hauptseite]]. 
-  * Die u.g. Beispiele erfordern entsprechend angepasste Message Properties. Siehe hierzu auf der [[de:shibidp3consent_dsgvo|Hauptseite]].+  * Die u.g. Beispiele erfordern entsprechend angepasste Message Properties. Siehe hierzu auf der [[de:shibidp:config-consent-dsgvo_shib-idp_4.0.x|Hauptseite]].
  
 ===== Variante 1: Einwilligung ===== ===== Variante 1: Einwilligung =====
 **Freiwilligkeit, Art. 6 Abs. 1 lit. a** **Freiwilligkeit, Art. 6 Abs. 1 lit. a**
  
 +==== Shib IdP 4.0.x ====
 <file xml ./views/intercept/attribute-release.vm> <file xml ./views/intercept/attribute-release.vm>
 ## ##
Zeile 19: Zeile 20:
 ## attributeReleaseFlowDescriptor - attribute consent flow descriptor ## attributeReleaseFlowDescriptor - attribute consent flow descriptor
 ## attributeDisplayNameFunction - function to display attribute name ## attributeDisplayNameFunction - function to display attribute name
 +## attributeDisplayDescriptionFunction - function to display attribute description
 ## consentContext - context representing the state of a consent flow ## consentContext - context representing the state of a consent flow
 ## encoder - HTMLEncoder class ## encoder - HTMLEncoder class
Zeile 35: Zeile 37:
 #set ($rpOrganizationLogo = $rpUIContext.getLogo()) #set ($rpOrganizationLogo = $rpUIContext.getLogo())
 #set ($rpOrganizationName = $rpUIContext.organizationDisplayName) #set ($rpOrganizationName = $rpUIContext.organizationDisplayName)
 +#set ($replaceDollarWithNewline = true)
 ## ##
 <!DOCTYPE html> <!DOCTYPE html>
Zeile 46: Zeile 49:
     <body>     <body>
         <form action="$flowExecutionUrl" method="post" style="padding:10px" >         <form action="$flowExecutionUrl" method="post" style="padding:10px" >
 +            #parse("csrf/csrf.vm")
             <div class="box">             <div class="box">
                 <header>                 <header>
Zeile 53: Zeile 57:
                     #end                     #end
                 </header>                 </header>
-                 <br clear="all"/>+                  <br clear="all"/>
                 #if ($serviceName)                 #if ($serviceName)
                     <p style="margin-top: 10px;">                     <p style="margin-top: 10px;">
Zeile 90: Zeile 94:
                                     <td>                                     <td>
                                         #foreach ($value in $attribute.values)                                         #foreach ($value in $attribute.values)
-                                            <strong>$encoder.encodeForHTML($value.getDisplayValue())</strong>+                                            #if ($replaceDollarWithNewline) 
 +                                                #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue()).replaceAll($encoder.encodeForHTML('$'),"<br>")) 
 +                                            #else 
 +                                                #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue())
 +                                            #end 
 +                                            #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled) 
 +                                                <label for="$attribute.id"><strong>$encodedValue</strong></label> 
 +                                            #else 
 +                                                <strong>$encodedValue</strong> 
 +                                            #end
                                             <br>                                             <br>
                                         #end                                         #end
Zeile 122: Zeile 135:
                     #if ($attributeReleaseFlowDescriptor.doNotRememberConsentAllowed)                     #if ($attributeReleaseFlowDescriptor.doNotRememberConsentAllowed)
                         <p>                         <p>
-                            <input id="_shib_idp_doNotRememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_doNotRememberConsent"> +                            <input id="_shib_idp_doNotRememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_doNotRememberConsent" checked
-                            #springMessageText("idp.attribute-release.doNotRememberConsent", "Ask me again at next login")+                            <label for="_shib_idp_doNotRememberConsent">#springMessageText("idp.attribute-release.doNotRememberConsent", "Ask me again at next login")</label>
                         </p>                         </p>
                     #end                     #end
                     #if ($attributeReleaseFlowDescriptor.doNotRememberConsentAllowed || $attributeReleaseFlowDescriptor.globalConsentAllowed)                     #if ($attributeReleaseFlowDescriptor.doNotRememberConsentAllowed || $attributeReleaseFlowDescriptor.globalConsentAllowed)
                         <p>                         <p>
-                            <input id="_shib_idp_rememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_rememberConsent" checked+                            <input id="_shib_idp_rememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_rememberConsent"> 
-                            #springMessageText("idp.attribute-release.rememberConsent", "Ask me again if information changes")+                            <label for="_shib_idp_rememberConsent">#springMessageText("idp.attribute-release.rememberConsent", "Ask me again if information changes")</label>
                         </p>                         </p>
                     #end                     #end
Zeile 135: Zeile 148:
                         <p>                         <p>
                             <input id="_shib_idp_globalConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_globalConsent">                             <input id="_shib_idp_globalConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_globalConsent">
-                            #springMessageText("idp.attribute-release.globalConsent", "Do not ask me again")+                            <label for="_shib_idp_globalConsent">#springMessageText("idp.attribute-release.globalConsent", "Do not ask me again")</label>
                         </p>                         </p>
                     #end                     #end
Zeile 143: Zeile 156:
                     #end                     #end
                     <p style="text-align: center;">                     <p style="text-align: center;">
-                          <input type="submit" name="_eventId_AttributeReleaseRejected" value="#springMessageText("idp.attribute-release.reject", "Reject")"> &nbsp;+                        <input type="submit" name="_eventId_AttributeReleaseRejected" value="#springMessageText("idp.attribute-release.reject", "Reject")"> &nbsp;
                           <a href="javascript:window.print()">#springMessageText("idp.attribute-release.print_page", "Print Page")</a> &nbsp;                           <a href="javascript:window.print()">#springMessageText("idp.attribute-release.print_page", "Print Page")</a> &nbsp;
-                          <input type="submit" name="_eventId_proceed" value="#springMessageText("idp.attribute-release.accept", "Accept")">+                        <input type="submit" name="_eventId_proceed" value="#springMessageText("idp.attribute-release.accept", "Accept")">
                     </p>                     </p>
                 </div>                 </div>
Zeile 151: Zeile 164:
         </form>         </form>
     </body>     </body>
-</html>+</html>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
 </file> </file>
  
Zeile 157: Zeile 170:
 **Durchführung des Beschäftigungsverhältnisses, Art. 88 in Verbindung mit § 26 BDSG (neu)** **Durchführung des Beschäftigungsverhältnisses, Art. 88 in Verbindung mit § 26 BDSG (neu)**
  
 +==== Shib IdP 4.0.x ====
 <file xml ./views/intercept/attribute-must.vm> <file xml ./views/intercept/attribute-must.vm>
 ## ##
Zeile 166: Zeile 180:
 ## attributeReleaseFlowDescriptor - attribute consent flow descriptor ## attributeReleaseFlowDescriptor - attribute consent flow descriptor
 ## attributeDisplayNameFunction - function to display attribute name ## attributeDisplayNameFunction - function to display attribute name
 +## attributeDisplayDescriptionFunction - function to display attribute description
 ## consentContext - context representing the state of a consent flow ## consentContext - context representing the state of a consent flow
 ## encoder - HTMLEncoder class ## encoder - HTMLEncoder class
Zeile 182: Zeile 197:
 #set ($rpOrganizationLogo = $rpUIContext.getLogo()) #set ($rpOrganizationLogo = $rpUIContext.getLogo())
 #set ($rpOrganizationName = $rpUIContext.organizationDisplayName) #set ($rpOrganizationName = $rpUIContext.organizationDisplayName)
 +#set ($replaceDollarWithNewline = true)
 ## ##
 <!DOCTYPE html> <!DOCTYPE html>
Zeile 193: Zeile 209:
     <body>     <body>
         <form action="$flowExecutionUrl" method="post" style="padding:10px" >         <form action="$flowExecutionUrl" method="post" style="padding:10px" >
 +            #parse("csrf/csrf.vm")
             <div class="box">             <div class="box">
                 <header>                 <header>
Zeile 237: Zeile 254:
                                     <td>                                     <td>
                                         #foreach ($value in $attribute.values)                                         #foreach ($value in $attribute.values)
-                                            <strong>$encoder.encodeForHTML($value.getDisplayValue())</strong>+                                            #if ($replaceDollarWithNewline) 
 +                                                #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue()).replaceAll($encoder.encodeForHTML('$'),"<br>")) 
 +                                            #else 
 +                                                #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue())
 +                                            #end 
 +                                            #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled) 
 +                                                <label for="$attribute.id"><strong>$encodedValue</strong></label> 
 +                                            #else 
 +                                                <strong>$encodedValue</strong> 
 +                                            #end
                                             <br>                                             <br>
                                         #end                                         #end
Zeile 262: Zeile 288:
                     </p>                     </p>
                 #end                 #end
-                    <p+                    <div id="generalConsentDiv" style="display: block; background-color: #F6F6F6;border: 1px gray solid; padding: 10px; width: 92%;"
-                        <input id="_shib_idp_doNotRememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_doNotRememberConsent"> +                        <p> 
-                        #springMessageText("idp.attribute-must.doNotRememberConsent", "Ask me again at next login"+                            <input id="_shib_idp_doNotRememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_doNotRememberConsent" checked
-                    </p> +                            <label for="_shib_idp_doNotRememberConsent">#springMessageText("idp.attribute-must.doNotRememberConsent", "Ask me again at next login")</label> 
-                    <p> +                        </p> 
-                        <input id="_shib_idp_rememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_rememberConsent" checked+                     
-                        #springMessageText("idp.attribute-must.rememberConsent", "Ask me again if information changes"+                        <p> 
-                    </p> +                            <input id="_shib_idp_rememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_rememberConsent"> 
- +                            <label for="_shib_idp_rememberConsent">#springMessageText("idp.attribute-must.rememberConsent", "Ask me again if information changes")</label> 
-                <div style="float:left;"> +                        </p> 
-                    <p><b> +                     
-                       #springMessageText("idp.attribute-must.information", "Honestly, you have no choice..."+                    <div style="float:left;"> 
-                    </b></p> +                       <p><b> 
-                </div>+                        #springMessageText("idp.attribute-must.information", "Honestly, you have no choice..."
 +                      </b></p> 
 +                   </div>
                     <p style="text-align: center;">                     <p style="text-align: center;">
                         <input type="submit" name="_eventId_proceed" value="#springMessageText("idp.attribute-must.accept", "OK")">                         <input type="submit" name="_eventId_proceed" value="#springMessageText("idp.attribute-must.accept", "OK")">
Zeile 289: Zeile 317:
 **Kein Zwang, aber Interesse der Einrichtung an Nutzung des Dienstes, Art. 6 Abs. 1 lit. e (in Verbindung mit spezieller Erlaubnisnorm) oder lit. f. Widerspruchsrecht nach Art. 21 Abs. 1** **Kein Zwang, aber Interesse der Einrichtung an Nutzung des Dienstes, Art. 6 Abs. 1 lit. e (in Verbindung mit spezieller Erlaubnisnorm) oder lit. f. Widerspruchsrecht nach Art. 21 Abs. 1**
  
 +==== Shib IdP 4.0.x ====
 <file xml ./views/intercept/attribute-info.vm> <file xml ./views/intercept/attribute-info.vm>
 ## ##
Zeile 298: Zeile 327:
 ## attributeReleaseFlowDescriptor - attribute consent flow descriptor ## attributeReleaseFlowDescriptor - attribute consent flow descriptor
 ## attributeDisplayNameFunction - function to display attribute name ## attributeDisplayNameFunction - function to display attribute name
 +## attributeDisplayDescriptionFunction - function to display attribute description
 ## consentContext - context representing the state of a consent flow ## consentContext - context representing the state of a consent flow
 ## encoder - HTMLEncoder class ## encoder - HTMLEncoder class
Zeile 314: Zeile 344:
 #set ($rpOrganizationLogo = $rpUIContext.getLogo()) #set ($rpOrganizationLogo = $rpUIContext.getLogo())
 #set ($rpOrganizationName = $rpUIContext.organizationDisplayName) #set ($rpOrganizationName = $rpUIContext.organizationDisplayName)
 +#set ($replaceDollarWithNewline = true)
 ## ##
 <!DOCTYPE html> <!DOCTYPE html>
Zeile 325: Zeile 356:
     <body>     <body>
         <form action="$flowExecutionUrl" method="post" style="padding:10px" >         <form action="$flowExecutionUrl" method="post" style="padding:10px" >
 +            #parse("csrf/csrf.vm")
             <div class="box">             <div class="box">
                 <header>                 <header>
Zeile 369: Zeile 401:
                                     <td>                                     <td>
                                         #foreach ($value in $attribute.values)                                         #foreach ($value in $attribute.values)
-                                            <strong>$encoder.encodeForHTML($value.getDisplayValue())</strong>+                                            #if ($replaceDollarWithNewline) 
 +                                                #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue()).replaceAll($encoder.encodeForHTML('$'),"<br>")) 
 +                                            #else 
 +                                                #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue())
 +                                            #end 
 +                                            #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled) 
 +                                                <label for="$attribute.id"><strong>$encodedValue</strong></label> 
 +                                            #else 
 +                                                <strong>$encodedValue</strong> 
 +                                            #end
                                             <br>                                             <br>
                                         #end                                         #end
Zeile 394: Zeile 435:
                     </p>                     </p>
                 #end                 #end
-                    <p+                <div id="generalConsentDiv" style="display: block; background-color: #F6F6F6;border: 1px gray solid; padding: 10px; width: 92%;"
-                        <input id="_shib_idp_doNotRememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_doNotRememberConsent"> +                        <p> 
-                        #springMessageText("idp.attribute-info.doNotRememberConsent", "Ask me again at next login"+                            <input id="_shib_idp_doNotRememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_doNotRememberConsent" checked
-                    </p> +                            <label for="_shib_idp_doNotRememberConsent">#springMessageText("idp.attribute-info.doNotRememberConsent", "Ask me again at next login")</label> 
-                    <p> +                        </p> 
-                        <input id="_shib_idp_rememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_rememberConsent" checked+                     
-                        #springMessageText("idp.attribute-info.rememberConsent", "Ask me again if information changes"+                        <p> 
-                    </p> +                            <input id="_shib_idp_rememberConsent" type="radio" name="_shib_idp_consentOptions" value="_shib_idp_rememberConsent"> 
- +                            <label for="_shib_idp_rememberConsent">#springMessageText("idp.attribute-info.rememberConsent", "Ask me again if information changes")</label> 
-                <div style="float:left;"> +                        </p> 
-                    <p><b> +                     
-                       #springMessageText("idp.attribute-info.information", "Honestly, you have no choice..."+                    <div style="float:left;"> 
-                    </b></p> +                       <p><b> 
-                </div>+                        #springMessageText("idp.attribute-info.information", "Honestly, you have no choice..."
 +                      </b></p> 
 +                   </div>
                     <p style="text-align: center;">                     <p style="text-align: center;">
                         <input type="submit" name="_eventId_proceed" value="#springMessageText("idp.attribute-info.accept", "OK")">                         <input type="submit" name="_eventId_proceed" value="#springMessageText("idp.attribute-info.accept", "OK")">
Zeile 418: Zeile 461:
 </file> </file>
  
-{{tag>idp3}}+{{tag>idp4 fixme}}
  • Zuletzt geändert: vor 4 Jahren