Le contenu de ces documents ne constitue pas un avis juridique et ne doit pas non plus être considéré comme un substitut à une assistance juridique. Il vous incombe en dernier ressort de comprendre le RGPD et de vous y conformer, bien qu’Auth0 vous aide, dans la mesure du possible, à respecter les exigences du RGPD.
Demander le consentement
Lors de l’inscription, vous devez obtenir le consentement de vos utilisateurs. Avec Auth0, vous pouvez enregistrer cette information dans les métadonnées de l’utilisateur. Plusieurs options sont offertes selon la façon dont vous utilisez Auth0 pour authentifier vos utilisateurs. Avant de concevoir votre solution à l’aide des métadonnées, assurez-vous de connaître les restrictions. Auth0 limite la taille totale deuser_metadata à 16 MB. Pour en savoir plus, consultez Noms de champs et types de données des métadonnées.
Utiliser Lock
Vous pouvez personnaliser l’interface Lock UI pour afficher des liens vers vos pages de conditions générales et/ou d’énoncé de confidentialité, ainsi qu’une case de consentement que l’utilisateur doit cocher pour pouvoir s’inscrire. Pour ce faire, utilisez l’option LockmustAcceptTerms. Lorsque cette propriété est définie sur true, une case à cocher s’affiche à côté des conditions générales et doit être cochée avant l’inscription. Les conditions générales peuvent être précisées à l’aide de l’option languageDictionary. Pour en savoir plus, consultez Options de configuration de Lock.
Une fois que l’utilisateur a accepté et qu’il s’est inscrit, enregistrez les renseignements sur le consentement dans user_metadata à l’aide d’une règle qui s’exécutera lors de la première connexion. Pour en savoir plus sur les règles, consultez Auth0 Rules.
Si vous souhaitez obtenir plus d’information de la part des utilisateurs pendant l’inscription et que vous les authentifiez au moyen d’une connexion de base de données, vous pouvez ajouter des champs personnalisés à l’interface Lock UI. Pour ce faire, utilisez l’option Lock additionalSignUpFields. Tous les champs personnalisés sont automatiquement ajoutés à user_metadata.
Si vous utilisez des connexions sociales, il n’est pas possible d’ajouter des champs personnalisés, mais vous pouvez rediriger l’utilisateur vers une autre page pour lui demander son consentement et tout renseignement supplémentaire, puis le rediriger pour terminer la transaction d’authentification. Cela peut se faire avec des règles de redirection. Pour en savoir plus, consultez Rediriger les utilisateurs à partir des règles. Une fois le processus d’inscription terminé, enregistrez les renseignements sur le consentement dans user_metadata en appelant le point de terminaison Update User.
Pour savoir comment mettre en œuvre l’un de ces scénarios, consultez GDPR : consigner le consentement avec Lock.
Utiliser une interface utilisateur personnalisée
Si vous utilisez un formulaire d’inscription personnalisé avec une connexion de base de données, vous devez ajouter un champ supplémentaire à l’écran d’inscription afin de recueillir le consentement de l’utilisateur. Ensuite, appelez le point de terminaison Signup de l’Authentication API afin de créer l’utilisateur dans Auth0. À cette étape, vous pouvez enregistrer les renseignements sur le consentement dans leuser_metadata.
Autrement, si vous utilisez auth0.js à partir d’une SPA, vous pouvez utiliser la méthode signup afin de créer l’utilisateur dans Auth0 et enregistrer les renseignements sur le consentement dans le user_metadata.
Si vous utilisez un formulaire d’inscription personnalisé avec des fournisseurs d’identité sociale, vous ne pouvez pas enregistrer les renseignements sur le consentement de l’utilisateur au moment de l’inscription, mais vous pouvez les mettre à jour dès que l’utilisateur est créé. Enregistrez les renseignements sur le consentement dans le user_metadata en appelant le point de terminaison Update User de la Management API.
Pour savoir comment mettre en œuvre l’un ou l’autre de ces scénarios, consultez GDPR : Suivre le consentement avec une interface utilisateur personnalisée.
Renouvellement du consentement et migration des utilisateurs
Si vous devez demander le consentement d’utilisateurs existants et que vous décidez de migrer vos utilisateurs d’une base de données existante vers Auth0, vous pouvez utiliser notre fonctionnalité de migration automatique des utilisateurs. En l’activant, chaque fois qu’un utilisateur ouvrira une session pour la première fois (depuis son activation), son compte sera créé dans Auth0 sans qu’il ait à réinitialiser son mot de passe. Pour ce faire, vous devez :- Rédiger l’avis que les utilisateurs verront expliquant comment leurs données sont utilisées, pendant combien de temps elles le seront, quels sont leurs droits, etc., ainsi que personnaliser la fenêtre d’inscription de l’interface utilisateur.
- Déterminer si vous devez obtenir de nouveau le consentement de vos utilisateurs, selon vos anciennes conditions générales et vos certifications antérieures en matière de protection de la vie privée.
Suivi du consentement
Selon le RGPD, vous devriez être en mesure de démontrer que l’utilisateur a consenti au traitement de ses données personnelles. Avec Auth0, vous pouvez enregistrer les informations de consentement de l’utilisateur dans leuser_metadata. Vous pouvez soit enregistrer uniquement un indicateur précisant si l’utilisateur a consenti ou non, soit un ensemble d’informations et de préférences liées au consentement (y compris, par exemple, la date à laquelle l’utilisateur a donné son consentement, les conditions auxquelles il a consenti, etc.). Vous pouvez ensuite accéder à ces informations et les modifier à l’aide de la Management API.
La Management API offre également plusieurs options pour la recherche d’utilisateurs ainsi que des points de terminaison permettant de mettre à jour les métadonnées des utilisateurs ou d’exporter des utilisateurs en lot.
Pour accéder à la Management API, vous aurez besoin d’un . Pour savoir comment obtenir un jeton d’accès pour la Management API, consultez Jetons d’accès pour la Management API.
Rechercher des utilisateurs par adresse courriel
Pour rechercher un utilisateur à partir de son adresse courriel, utilisez l’point de terminaison Search User by Email. Définissez le paramètre de requête fields suruser_metadata afin de limiter les champs retournés. Ainsi, seules les données user_metadata seront retournées plutôt que le profil utilisateur complet.
Exemple de requête :
Vous utilisez Auth0 CLI? Si ce n’est pas déjà fait, configurez et authentifiez votre session CLI avant d’exécuter cette commande.
Rechercher des utilisateurs par ID
Pour rechercher un utilisateur par son ID, utilisez l’point de terminaison Get a User. Définissez le paramètre de requête fields àuser_metadata afin de limiter les champs renvoyés. Ainsi, seul user_metadata sera renvoyé plutôt que le profil utilisateur complet.
Exemple de requête :
Exemple de réponse :
Mettre à jour les informations sur le consentement
Pour mettre à jour leuser_metadata d’un utilisateur, utilisez le point de terminaison Update a User.
La façon de structurer votre requête dépend de la structure de vos métadonnées : à la racine ou dans des propriétés internes.
Si vos métadonnées sont stockées à la racine :
Mettre à jour la propriété racine
Les mises à jour des propriétés de niveau racine sont fusionnées; vous n’avez donc qu’à envoyer la valeur du champ que vous souhaitez mettre à jour. Par exemple, supposons que nous voulions ajouter une date de consentement et la définir à01/23/2018.
Cela ajoutera une nouvelle propriété au profil de l’utilisateur, user_metadata.consentDate, qui contiendra la date à laquelle le client a consenti. La réponse sera le profil complet de l’utilisateur. Les métadonnées mises à jour ressembleront à ceci :
Mettre à jour une propriété imbriquée
Pour mettre à jour une propriété imbriquée, vous devez envoyer l’objet metadata au complet, même si vous ne mettez à jour qu’une seule propriété. Si vous n’incluez pas l’objet en entier, Auth0 supprimera vos propriétés existantes. Ajoutons une propriété imbriquée pour la date de consentement et définissons-la à01/23/2018.
Cela ajoutera une nouvelle propriété au profil utilisateur, user_metadata.consent.date, qui contiendra la date à laquelle le client a donné son consentement. La réponse sera le profil utilisateur complet. Les métadonnées mises à jour ressembleront à ceci :
Exporter les renseignements sur le consentement
Pour exporter une liste de vos utilisateurs à l’aide de la Management API, utilisez le point de terminaison User Export. Ce point de terminaison crée une tâche qui exporte tous les utilisateurs associés à une connexion. Vous aurez besoin de l’ID de la connexion. Pour trouver cet ID, utilisez le point de terminaison Get Connections (vous pouvez définir le paramètre name sur le nom de la connexion afin de récupérer uniquement celle-ci). Une fois que vous avez l’ID de la connexion et un jeton d’accès pour la Management API, vous êtes prêt à commencer l’exportation des utilisateurs. Pour voir un exemple de requête et de réponse, consultez Import and Export Users. Pour savoir comment obtenir un jeton d’accès pour la Management API, consultez Management API Access Tokens. Vous devez aussi :- Déterminer comment vous voulez faire le suivi du consentement. Nous recommandons d’inclure non seulement la date à laquelle l’utilisateur a donné son consentement, mais aussi la version des conditions générales qu’il a acceptées. Nous recommandons également d’inclure un tableau pour consigner l’information sur les utilisateurs qui retirent leur consentement (n’oubliez pas que l’utilisateur peut donner et retirer son consentement plusieurs fois).
- Choisir où vous voulez stocker le consentement : dans la base de données d’Auth0 ou ailleurs.
Retirer le consentement
L’utilisateur devrait avoir la possibilité de retirer son consentement dans votre application. Cette option devrait être facilement accessible et clairement identifiable. Une fois que l’utilisateur décide de retirer son consentement, vous devriez prendre les mesures nécessaires. Vous devez d’abord décider comment vous gérerez le retrait du consentement : supprimerez-vous les utilisateurs ou les marquerez-vous comme supprimés ?Supprimer un utilisateur
Pour supprimer un utilisateur, utilisez le point de terminaison Supprimer un utilisateur. Le corps de la réponse de ce point de terminaison est vide. Donc, si vous voulez confirmer que l’utilisateur a bien été supprimé, essayez de le récupérer à l’aide de son courriel. Si le point de terminaison renvoie une erreur, cela signifie que votre requête de suppression de l’utilisateur a réussi.Marquer l’utilisateur comme supprimé
Si vous ne voulez pas supprimer l’utilisateur, marquez son profil comme supprimé à l’aide du point de terminaison app_metadata. Ensuite, ajoutez du code pour faire échouer le processus d’authentification pour tout utilisateur dont le profil est marqué comme tel. Cela vous permet de conserver une trace des utilisateurs supprimés pour usage ultérieur.Marquer le profil
Pour marquer un utilisateur comme supprimé, utilisezapp_metadata. Dans l’exemple suivant, nous vous montrons comment ajouter une propriété appelée deleted au champ app_metadata. Cela vous permet de configurer le processus d’authentification pour traiter comme supprimés tous les utilisateurs dont cette propriété est définie à true.
Pour mettre à jour les métadonnées d’un utilisateur, utilisez le point de terminaison Update a User.
Désactiver la connexion pour les utilisateurs marqués
Ensuite, vous devez désactiver la connexion pour les utilisateurs marqués comme supprimés. Pour ce faire, vous allez ajouter une Rule (un extrait Javascript qui s’exécute dans le pipeline d’authentification).- Accédez à Auth0 Dashboard > Auth Pipeline > Rules et créez une Rule.
-
Copiez le script ci-dessous :
Le script fait ce qui suit :
- Vérifie la valeur de la propriété de métadonnées deleted (
user.app_metadata.deleted). - Renvoie une erreur
Access denied (deleted user)à votre application siuser.app_metadata.deleted = true
- Vérifie la valeur de la propriété de métadonnées deleted (
- Donnez un nom à votre Rule et enregistrez vos modifications.
- Veiller à ce que la partie du retrait du consentement soit suffisamment granulaire.
- Configurer dans l’application la section où les clients retireront leur consentement.