Consentement utilisateur

Documentation :

Différence avec la version 2 : la version 2.x de l'IdP Shibboleth n'incluait pas de module de consentement. Il était nécessaire d'installer le module complémentaire uApprove. La mise en oeuvre du consentement utilisateur s'en trouve considérablement simplifiée.

Le module de consentement permet de demander son consentement à l'utilisateur avant de transmettre les données le concernant à un fournisseur de services. L'utilisateur peut visualiser la liste des attributs utilisateur qui seront transmis et leur valeur. Ce module est activé par défaut. Il est possible de le configurer pour permettre à l'utilisateur d'accepter la diffusion pour chaque attribut.

Ce module permet à un organisme de se mettre en conformité avec la loi “Informatique et Liberté” quant à l'information préalable de l'utilisateur pour la transmission de données à caractère personnel le concernant hors de son établissement.

Il est vivement conseillé d'impliquer le CIL de votre établissement lors de l'installation et le déploiement de briques de fédération d'identités. En effet, ces briques techniques pouvant possiblement manipuler des données à caractère personnel, les traitements relatifs à ces données doivent être reportés au registre de l'établissement ou déclarées auprès de la CNIL.

Vous pouvez désactiver le consentement utilisateurs en éditant le fichier relying-party.xml :

/opt/shibboleth-idp/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>
                <bean parent="Shibboleth.SSO" p:postAuthenticationFlows="attribute-release" />
                <ref bean="SAML1.AttributeQuery" />
                <ref bean="SAML1.ArtifactResolution" />
                <bean parent="SAML2.SSO" p:postAuthenticationFlows="attribute-release" />
                <ref bean="SAML2.ECP" />
                <ref bean="SAML2.Logout" />
                <ref bean="SAML2.AttributeQuery" />
                <ref bean="SAML2.ArtifactResolution" />
            </list>
        </property>
    </bean>

Par défaut on demande à l'utilisateur un consentement global pour la transmission d'un ensemble d'attributs. Vous pouvez configurer l'IdP pour permettre un consentement pour chaque attribut :

...
idp.consent.allowPerAttribute = false
...

Par défaut certains attributs sont exclus du processus de consentement ; il s'agit de transientId, persistentId et eduPersonTargetedID. Vous pouvez ajouter d'autres attributs à cette liste noire en éditant le fichier conf/intercept/consent-intercept-config.xml :

/opt/shibboleth-idp/conf/intercept/consent-intercept-config.xml
...
    <util:list id="shibboleth.consent.attribute-release.BlacklistedAttributeIDs">
        <value>transientId</value>
        <value>persistentId</value>
        <value>eduPersonTargetedID</value>
    </util:list>
...
Personnalisation interface : vous pouvez personnaliser l'interface utilisateur en éditant le fichier de propriétés messages/consent-messages.properties.