Passer au contenu principal
En vous abonnant à des événements et en les acheminant vers la destination de votre choix au moyen de flux d’événements, vous pouvez répondre à plusieurs cas d’usage connexes, notamment :
  • Envoyer des courriels aux nouveaux clients pour leur souhaiter la bienvenue ou leur demander de vérifier leur adresse courriel.
  • Surveiller les changements du cycle de vie des utilisateurs afin de mettre à jour les systèmes CRM (gestion de la relation client) ou de facturation.
Vous pouvez créer un flux d’événements à l’aide d’AWS EventBridge ou de webhooks. Les sections ci-dessous décrivent le processus de configuration pour les deux options.

Accès à la Management API (facultatif)

Les flux d’événements peuvent être configurés soit à l’aide du , soit avec la Management API. Si vous utilisez la , vous devez, avant de pouvoir configurer un flux d’événements, créer une application machine à machine (M2M) et vous authentifier avec un jeton de la Management API. Pour en savoir plus, consultez Jetons d’accès de la Management API.
  1. Accédez à Dashboard > Applications > Applications et sélectionnez Create Application.
  2. Saisissez un nom descriptif pour votre application et choisissez Machine to Machine Applications. Sélectionnez ensuite Create.
  3. Sélectionnez l’API que vous souhaitez appeler avec votre application. Dans ce cas, utilisez Auth0 Management API.
  4. Choisissez les autorisations à inclure dans le jeton d’accès de votre application, puis sélectionnez Authorize. À des fins de test, sélectionnez :
    • read:event_streams
    • create:event_streams
    • update:event_streams
    • delete:event_streams
    • read:event_deliveries
    • update:event_deliveries
    • create:users
  5. Accédez à l’onglet Settings pour obtenir votre ID client, votre Secret client et votre Domaine.
  6. Consultez Obtenir des jetons d’accès de la Management API pour récupérer et stocker votre jeton d’accès.

AWS EventBridge

Les renseignements ci-dessous expliquent comment créer et activer un flux d’événements à l’aide d’AWS EventBridge.

Prérequis pour EventBridge

Pour utiliser AWS EventBridge avec les flux d’événements, vous aurez besoin des éléments suivants :
  • Compte AWS
  • Autorisations AWS IAM
  • Bus d’événements AWS EventBridge
  • ID du compte AWS et région

Créer un flux d’événements (EventBridge)

Les flux d’événements vous permettent de capter les changements en temps réel au sein de votre locataire Auth0 et de les envoyer à un système externe pour traitement.Avant de configurer un flux d’événements, vous devez identifier les types d’événements que vous souhaitez surveiller. Ensuite, vous utiliserez l’identifiant et la région de votre compte AWS pour configurer votre flux d’événements, comme illustré ci-dessous.Cet exemple utilise la CLI Auth0 pour créer un flux d’événements qui s’abonne à l’événement user.created, lequel se déclenche chaque fois qu’un nouvel utilisateur est créé dans votre locataire.
auth0 events create --name ng-demo-eventbridge --type eventbridge --subscriptions "user.created" --configuration '{"aws_account_id":"<your-aws-account-id>","aws_region":"<your-aws-region>"}'
En cas de réussite, cette requête renvoie le JSON suivant avec l’id de votre flux d’événements. Les nouveaux flux d’événements sont activés par défaut.
{
  "id": "est_8of6RXoM1997qikH7NS11h",
  "status": "enabled",
  "name": "ng-demo-eventbridge",
  "subscriptions": [
    {
      "event_type": "user.created"
    }
  ],
  "created_at": "2025-01-29T18:08:43.440Z",
  "updated_at": "2025-01-29T18:08:43.440Z",
  "destination": {
    "type": "eventbridge",
    "configuration": {
      "aws_account_id": "<your-aws-account-id>",
      "aws_region": "<your-aws-region>",
      "aws_partner_event_source": "default"
    }
  }
}

Webhooks

Comme solution de rechange à AWS EventBridge, vous pouvez utiliser des webhooks pour prendre en charge les flux d’événements. Pour commencer, configurez d’abord un gestionnaire de webhook afin de recevoir des notifications en temps réel lorsqu’un événement précis se produit. Ensuite, vous pourrez créer votre flux d’événements. Vous pouvez soit créer un gestionnaire de webhook de base en suivant les instructions ci-dessous, soit utiliser un service existant comme :
  • Vercel
  • Inngest
Si vous décidez d’utiliser un service existant, vous pouvez passer à Créer un flux d’événements (webhook). Sinon, suivez les instructions ci-dessous pour créer votre propre gestionnaire de webhook de base.

Prérequis du webhook

Assurez-vous d’avoir installé les éléments suivants pour pouvoir écrire votre gestionnaire de webhook :
  • node.js
  • jq
  • npm
  • ngrok

Écrire le gestionnaire du webhook

  1. Installez express dans votre dossier node_modules et ajoutez-le aux dépendances de votre package.json.
  2. Installez dotenv à la racine de votre projet pour utiliser un fichier .env afin d’y stocker les variables d’environnement.
  3. Créez un fichier webhook.js pour recevoir l’événement user.created et l’enregistrer dans une base de données.
    const express = require('express');
    const app = express();
    
    // Middleware d’autorisation
    app.use((req, res, next) => {
      const token = req.headers["authorization"];
      if (token !== `Bearer ${API_TOKEN}`) {
        return res.status(401).json({ error: "Unauthorized" });
      }
      next();
    });
    
    // Point de terminaison du webhook
    app.post("/webhook", async (req, res) => {
      console.log("Webhook received:", JSON.stringify(req.body, null, 2));
    
      const eventData = req.body;
      const { id, type, time, data } = eventData;
      const user = data.object;
    
      try {
        switch (type) {
          case "user.created":
            await handleUserCreated(user, time);
            break;
          case "user.updated":
            await handleUserUpdated(user, time);
            break;
          case "user.deleted":
            await handleUserDeleted(user, time);
            break;
          default:
            await handleDefaultEvent(id, type, time, data);
        }
    
        console.log(`Webhook event of type '${type}' committed to the database.`);
        res.sendStatus(204);
      } catch (err) {
        console.error("Error processing webhook:", err);
        res.status(500).json({ error: "Internal server error" });
      }
    });
    
    // Fonction spécifique pour traiter l’événement de création d’utilisateur
    // Dans cet exemple, nous nous assurons que les utilisateurs sont également créés dans notre propre base de données
    async function handleUserCreated(user, time) {
      const { user_id, email, name, nickname, created_at, updated_at } = user;
    
      const query = `
        INSERT INTO users (user_id, email, name, nickname, created_at, updated_at, raw_user, last_event_processed)
        VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
      `;
      const values = [
        user_id,
        email,
        name,
        nickname,
        created_at,
        updated_at,
        user,
        time,
      ];
    
      try {
        await getPool().query(query, values);
      } catch (err) {
        if (err.code === "23505") {
          console.error(`Duplicate user_id=${user_id}, skipping insert.`);
        } else {
          console.error(`Database error while creating user_id=${user_id}:`, err);
          throw err;
        }
      }
    }
    
  4. À la racine de votre projet, créez un fichier .env et ajoutez-y votre jeton d’API en utilisant :
    API_TOKEN=`openssl rand -hex 32`
    echo "API_TOKEN=$API_TOKEN" > .env
    
  5. Démarrez votre serveur :
    node webhook.js
    
  6. Pour tester le webhook, exposez votre gestionnaire de webhook à l’aide d’un outil comme ngrok :
    ngrok http 3000
    
    Cela fournit une URL publique pour votre gestionnaire de webhook local, par exemple :
    http://localhost:3000
    

Créer un flux d’événements (webhooks)

Les flux d’événements vous permettent de capter les changements en temps réel au sein de votre locataire Auth0 et de les envoyer à un système externe pour les traiter. Avant de configurer un flux d’événements, vous devez identifier les types d’événements que vous souhaitez surveiller. Vous utiliserez ensuite votre gestionnaire de webhook pour créer un flux d’événements, comme illustré ci-dessous.
Cet exemple utilise Auth0 CLI pour créer un flux d’événements abonné à l’événement user.created, qui se déclenche chaque fois qu’un nouvel utilisateur est inscrit dans votre locataire. Les données de l’événement sont ensuite transmises à un point de terminaison webhook pour traitement ultérieur.
source .env # Assurez-vous d'être dans le répertoire webhook où vous avez créé votre fichier .env
WEBHOOK_URL="<ngrok URL>/webhook"

auth0 events create -n my-event1 -t webhook -s "user.created" -c '{"webhook_endpoint":"'"${WEBHOOK_URL}"'","webhook_authorization":{"method":"bearer","token":'"${API_TOKEN}"'"}}'
Si l’opération réussit, le JSON suivant est renvoyé avec l’id de votre flux d’événements. Les nouveaux flux d’événements sont activés par défaut.
{
  "id": "est_8of6RXoM1997qikH7NS11h",
  "status": "enabled",
  "name": "ng-demo-2",
  "subscriptions": [
    {
      "event_type": "user.created"
    }
  ],
  "created_at": "2025-01-29T18:08:43.440Z",
  "updated_at": "2025-01-29T18:08:43.440Z",
  "destination": {
    "type": "webhook",
    "configuration": {
      "webhook_endpoint": "https://example.com/webhook",
      "webhook_authorization": {
        "method": "bearer"
      }
    }
  }
}

Vérifier le flux d’événements

Après avoir créé un flux d’événements, vous pouvez vérifier son existence à l’aide de la commande suivante :
auth0 events show <EVENT_STREAM_ID>
Une fois le flux activé, vous pouvez tester le flux d’événements. Pour en savoir plus, consultez Tests des événements, observabilité et reprise après échec.

Auth0 Actions

Les informations ci-dessous décrivent comment créer et activer un flux d’événements à l’aide d’Auth0 Actions.

Créer un flux d’événements (Actions)

Les flux d’événements vous permettent de capturer les changements en temps réel dans votre locataire Auth0 et de les envoyer à un système externe pour traitement.Avant de configurer un flux d’événements, vous devez identifier les types d’événements que vous souhaitez surveiller. Cet exemple utilise Auth0 CLI pour créer un flux d’événements qui s’abonne à l’événement user.created, lequel se déclenche chaque fois que votre locataire enregistre un nouvel utilisateur.
auth0 event-streams create \
  --name actions-1 \
  --type action \
  --subscriptions "user.created,user.updated,user.deleted" \
  --configuration '{"action_id":"385db79f-28a4-43d9-909d-6f5511dd6632"}'
Si l’appel réussit, il renvoie le JSON suivant avec l’id de votre flux d’événements. Les nouveaux flux d’événements sont activés par défaut.
{
    "configuration": {
      "action_id": "act_xyz789...",
      "status": "enabled"
  }
}

En savoir plus