Pourquoi synchroniser les données d’identité
- Exécuter des analyses, produire des rapports ou effectuer des requêtes de conformité sans appeler la Management API.
- Offrir des fonctions de recherche qui nécessitent des recherches à faible latence dans les attributs des utilisateurs.
- Alimenter des pipelines de données qui croisent des enregistrements d’identité avec d’autres données d’affaires.
- Conserver une sauvegarde de l’état du profil utilisateur pour la reprise après sinistre.
Fonctionnement
- Auth0 publie un événement chaque fois qu’un profil utilisateur est modifié.
- Votre Event Stream transmet cet événement à une destination (webhook, AWS EventBridge ou Auth0 Action).
- Votre gestionnaire examine le type d’événement et applique l’opération d’écriture correspondante dans le système externe.
Prérequis
- Un tenant Auth0 où Events est activé. Pour en savoir plus sur la disponibilité selon le forfait, consultez Créer un Event Stream.
- Un Event Stream actif abonné à
user.created,user.updatedetuser.deleted. Pour en savoir plus, consultez Créer un Event Stream. - Un stockage de données externe (par exemple, PostgreSQL, MySQL ou un entrepôt de données) dans lequel votre handler peut écrire.
Synchronisation des données avec Implement
Traiter user.created
user.created, insérez un nouvel enregistrement dans votre base de données.
Traiter user.updated
user.updated, mettez à jour la ligne correspondante. Comparez l’horodatage de l’événement avec la colonne last_event_processed pour éviter d’écraser des données obsolètes.
Les Events peuvent ne pas arriver dans l’ordre. Comparez toujours les horodatages avant d’appliquer les mises à jour afin d’éviter que des données périmées n’écrasent des enregistrements plus récents. Pour en savoir plus, consultez Events Best Practices.
Traiter user.deleted
user.deleted, supprimez la ligne correspondante ou effectuez une suppression logique.
Acheminer les événements par type
- Webhook
- Auth0 Action
Retournez une réponse HTTP
2XX le plus rapidement possible. Si votre handler doit effectuer des opérations lentes, placez l’événement dans une file d’attente interne et traitez-le de façon asynchrone. Pour en savoir plus, consultez Events Best Practices.Se prémunir contre les doublons et les problèmes d’ordre
- Faites le suivi des ID d’événement. Stockez l’
idde chaque événement traité et ignorez tout événement que vous avez déjà traité. - Comparez les horodatages. Chaque payload d’événement comprend les champs
created_atetupdated_atdansdata.object. Utilisez ces champs pour déterminer si un événement entrant est plus récent que ce que votre système a déjà enregistré. - Utilisez des écritures idempotentes. Structurez vos opérations de base de données de sorte que l’application du même événement deux fois produise le même résultat. Par exemple, utilisez
INSERT ... ON CONFLICT DO UPDATEdans PostgreSQL.
Vérifiez la synchronisation
- Un nouvel enregistrement apparaît dans votre base de données externe avec les bonnes données de profil.
- Mettez à jour le nom ou l’adresse courriel de l’utilisateur dans Auth0. Confirmez que l’enregistrement dans la base de données reflète ce changement.
- Supprimez l’utilisateur dans Auth0. Confirmez que l’enregistrement est supprimé (ou marqué comme supprimé) dans votre base de données.