Passer au contenu principal
Conformément à l’article 7 du RGPD, vous devez demander aux utilisateurs de consentir au traitement de leurs données personnelles sous une forme claire et facilement accessible. Vous devez également démontrer que l’utilisateur a consenti et fournir un moyen simple de retirer son consentement en tout temps. Cet article explique comment utiliser les fonctionnalités d’Auth0 pour mettre en œuvre ces exigences.
Le contenu de ces documents ne constitue pas un avis juridique et ne doit pas être considéré comme un remplacement d’une assistance juridique. La responsabilité finale de comprendre le RGPD et de vous y conformer vous incombe, bien qu’Auth0 vous aide à satisfaire aux exigences du RGPD lorsque cela est possible.
Au moment de l’inscription, vous devez obtenir le consentement de vos utilisateurs. Avec Auth0, vous pouvez enregistrer cette information dans les métadonnées utilisateur. Plusieurs options s’offrent à vous 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 bien comprendre les restrictions. Auth0 limite la taille totale de user_metadata à 16 Mo. Pour en savoir plus, consultez Metadata Field Names and Data Types.
Les métadonnées Auth0 ne constituent pas un espace de stockage sécurisé et ne doivent pas servir à stocker des renseignements sensibles, comme des secrets à haut risque et des renseignements personnels identifiables (PII), tels que des numéros d’assurance sociale ou de carte de crédit. Auth0 recommande fortement à ses clients d’évaluer les données stockées dans les métadonnées et de n’y conserver que celles qui sont nécessaires à la gestion des identités et des accès.

Utiliser Lock

Vous pouvez personnaliser l’interface de Lock pour afficher des liens vers vos pages de conditions d’utilisation et/ou de politique de confidentialité, ainsi qu’une case à cocher de consentement que l’utilisateur doit sélectionner pour s’inscrire. Pour ce faire, utilisez l’option Lock mustAcceptTerms. Lorsque cette propriété est définie à true, une case à cocher s’affiche à côté des conditions d’utilisation et doit être sélectionnée avant l’inscription. Les conditions d’utilisation peuvent être définies à l’aide de l’option languageDictionary. Pour en savoir plus, consultez Options de configuration de Lock. Une fois que l’utilisateur a donné son consentement et s’est inscrit, enregistrez les renseignements de 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 Rules, consultez Auth0 Rules. Si vous souhaitez recueillir plus de renseignements auprès des utilisateurs pendant l’inscription et que vous authentifiez les utilisateurs avec une connexion de base de données, vous pouvez ajouter des champs personnalisés à l’interface de Lock. 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, l’ajout de champs personnalisés n’est pas possible, 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 de Rules. Une fois le processus d’inscription terminé, enregistrez les renseignements de consentement dans user_metadata en appelant le point de terminaison Mettre à jour l’utilisateur de la . Pour savoir comment mettre en œuvre l’un ou l’autre de ces scénarios, consultez RGPD : suivre 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 informations de consentement dans user_metadata. Autrement, si vous utilisez Auth0.js dans une SPA, vous pouvez utiliser la méthode signup afin de créer l’utilisateur dans Auth0 et enregistrer les informations de consentement dans user_metadata. Si vous utilisez un formulaire d’inscription personnalisé avec des fournisseurs sociaux, vous ne pouvez pas définir les informations de consentement de l’utilisateur au moment de l’inscription, mais vous pouvez les mettre à jour dès que l’utilisateur est créé. Enregistrez les informations de consentement dans user_metadata en appelant le point de terminaison Mettre à jour l’utilisateur de la Management API. Pour savoir comment mettre en œuvre l’un ou l’autre de ces scénarios, consultez RGPD : suivre le consentement avec une interface utilisateur personnalisée. 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 se connecte pour la première fois (après l’activation), il sera créé dans Auth0 sans avoir à réinitialiser son mot de passe. Pour ce faire, vous devez :
  • Rédiger l’avis que les utilisateurs verront sur l’utilisation de leurs données, la durée de cette utilisation, leurs droits, etc., et personnaliser l’interface d’inscription.
  • Déterminer si un nouveau consentement est nécessaire pour vos utilisateurs, selon vos anciennes conditions générales et vos certifications antérieures en matière de protection de la vie privée.
Notez que chaque fois que vos conditions générales changent, vous devez redemander le consentement aux utilisateurs. Conformément au RGPD, vous devez être en mesure de démontrer que l’utilisateur a consenti au traitement de ses données personnelles. Avec Auth0, vous pouvez enregistrer les renseignements sur le consentement de l’utilisateur dans le user_metadata. Vous pouvez soit enregistrer uniquement un indicateur précisant si l’utilisateur a consenti ou non, soit un ensemble de renseignements et de préférences liés au consentement (y compris, par exemple, la date à laquelle l’utilisateur a donné son consentement, les conditions auxquelles il a consenti, etc.). Vous pourrez ensuite accéder à ces renseignements et les gérer à 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 de l’utilisateur ou d’exporter des utilisateurs par 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 de la Management API.

Rechercher des utilisateurs par adresse courriel

Pour rechercher un utilisateur à l’aide de son adresse courriel, utilisez le point de terminaison Search User by Email. 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 complet de l’utilisateur. Exemple de requête : Exemple de réponse :
[
  {},
  {
    "user_metadata": {
      "consent": {
	    "given": true,
	    "date": "01/23/2018",
	    "text_details": "some-url"
	  }
    }
  }
]

Rechercher des utilisateurs par identifiant

Pour rechercher un utilisateur à l’aide de son identifiant, utilisez le point de terminaison Get a User. Définissez le paramètre de requête fields sur user_metadata pour limiter les champs renvoyés. Ainsi, seul user_metadata sera renvoyé plutôt que le profil complet de l’utilisateur. Exemple de requête : Exemple de réponse :
{
  "user_metadata": {
    "consent": {
	    "given": true,
	    "date": "01/23/2018",
	    "text_details": "some-url"
  	}
  }
}
Pour mettre à jour le user_metadata d’un utilisateur, utilisez le point de terminaison Mettre à jour un utilisateur. La structure de votre requête dépend de la façon dont vous avez structuré vos métadonnées : à la racine ou comme propriétés imbriquées. Si vos métadonnées sont stockées à la racine :
{
  "consentGiven": true,
  "consentDetails": "some-url"
}
Si vos métadonnées sont stockées dans des propriétés internes :
{
  "consent": {
    "given": true,
    "text_details": "some-url"
  }
}

Mettre à jour une propriété racine

Les mises à jour des propriétés de premier niveau sont fusionnées; vous n’avez donc qu’à envoyer la valeur du champ à 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 donné son consentement. La réponse contiendra le profil complet de l’utilisateur. Les métadonnées mises à jour ressembleront à ceci :
{
  "consentGiven": true,
  "consentDate": "01/23/2018",
  "consentDetails": "some-url"
}

Mettre à jour une propriété imbriquée

Pour mettre à jour une propriété imbriquée, vous devez envoyer l’objet de métadonnées au complet, même si vous ne mettez à jour qu’une seule propriété. Si vous n’incluez pas l’objet au complet, Auth0 supprimera les propriétés existantes. Ajoutons une propriété imbriquée pour la date de consentement et définissons-la sur 01/23/2018. Cela ajoutera une nouvelle propriété au profil de l’utilisateur, user_metadata.consent.date, 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 :
{
  "consent": {
    "given": true,
    "date": "01/23/2018",
    "text_details": "some-url"
  }
}
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 pour 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 Importer et exporter des utilisateurs. Pour savoir comment obtenir un jeton d’accès pour la Management API, consultez Jetons d’accès de la Management API. Vous devez aussi :
  • Déterminer comment vous souhaitez suivre le consentement. Nous vous recommandons d’inclure non seulement la date à laquelle l’utilisateur a donné son consentement, mais aussi la version des modalités qu’il a acceptée. Nous vous recommandons également d’inclure un tableau pour consigner les renseignements sur les utilisateurs qui retirent leur consentement (n’oubliez pas que l’utilisateur peut consentir puis retirer son consentement plusieurs fois).
  • Choisir où vous souhaitez stocker le consentement : dans la base de données d’Auth0 ou ailleurs.
L’utilisateur devrait avoir la possibilité de retirer son consentement au moyen de 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. D’abord, vous devez 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 pour ce point de terminaison est vide. Donc, si vous voulez confirmer que l’utilisateur a bien été supprimé, essayez de récupérer l’utilisateur à l’aide de son courriel. Si le point de terminaison renvoie une erreur, cela signifie que votre appel de suppression de l’utilisateur a réussi.

Marquer l’utilisateur comme supprimé

Si vous ne voulez pas supprimer l’utilisateur, marquez plutôt son profil comme supprimé à l’aide du point de terminaison app_metadata. Ajoutez ensuite du code pour faire échouer le processus d’authentification de tout utilisateur dont le profil est marqué ainsi. Cela vous permet de conserver une trace des utilisateurs supprimés pour usage ultérieur.

Marquer le profil

Pour marquer un utilisateur comme supprimé, utilisez app_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 pour lesquels cette propriété est définie sur true. Pour mettre à jour les métadonnées d’un utilisateur, utilisez le point de terminaison Mettre à jour un utilisateur.

Désactiver la connexion pour les utilisateurs signalés

Ensuite, vous devez désactiver la connexion pour les utilisateurs signalés comme supprimés. Pour ce faire, vous allez ajouter une règle (un extrait de code JavaScript qui s’exécute dans le pipeline d’authentification).
  1. Accédez à Auth0 Dashboard > Auth Pipeline > Rules et créez une règle.
  2. Copiez le script ci-dessous :
    function (user, context, callback) {
      user.app_metadata = user.app_metadata || {};
      if (user.app_metadata.deleted){
      	return callback(new UnauthorizedError('Access denied (deleted user)'));
      }
      callback(null, user, context);
    }
    
    Le script effectue les opérations suivantes :
    1. Vérifie la valeur de la propriété de métadonnées deleted (user.app_metadata.deleted).
    2. Renvoie une erreur Access denied (deleted user) à votre application si user.app_metadata.deleted = true
  3. Donnez un nom à votre règle et enregistrez vos modifications.
Vous devez également :
  • Vous assurer que le mécanisme de retrait du consentement est suffisamment granulaire.
  • Configurer dans l’application la section où les clients retireront leur consentement.

En savoir plus