Événements de webhook

Les webhooks sont un moyen pour différents services en ligne ou applications de communiquer entre eux en quasi-temps réel. Ils permettent à une application d'envoyer des données à une autre application lorsqu'un événement spécifique se produit. Ce mécanisme est couramment utilisé pour automatiser les processus et maintenir la synchronisation entre différents systèmes sans nécessiter d'intervention manuelle constante.

L'enregistrement et le désenregisrement des webhooks sont des concepts clés dans la configuration et la gestion des webhooks. Ces processus impliquent l'activation et la désactivation du canal de communication entre deux applications via les webhooks.

Vue d'ensemble de webhook

La configuration d'un flux webhook comprend plusieurs étapes générales :

  1. Configurer webhook. L'app de réception (le consommateur de webhook) configure un webhook avec une URL de point de terminaison. L'URL du point de terminaison écoute les charges utiles webhook entrantes en provenance de l'app émettrice (le fournisseur webhook).

    En tant administrateur Okta, vous pouvez configurer un webhook pour recevoir des notifications lorsque des événements se produisent dans la plateforme Okta. Cet événement peut être, par exemple, la création d'un nouvel utilisateur, un événement d'authentification ou une réinitialisation de mot de passe.

    Vous pouvez également configurer votre webhook avec une app tierce pour vous informer des modifications externes afin que vous puissiez mettre à jour les détails au sein de votre org Okta.

  2. Enregistrer le webhook. Pour établir un webhook, vous devez enregistrer une URL de point de terminaison auprès du fournisseur. C'est à cet emplacement que votre app de réception écoute les données entrantes.

    1. Configurer l'URL du point de terminaison. L'app de réception (le consommateur de webhook) fournit une URL de point de terminaison. Il s'agit de l'URL qui écoute les charges utiles webhook entrantes en provenance de l'app émettrice (fournisseur de webhook).

    2. S'abonner à des événements. Le fournisseur de webhook, qui peut être une app externe ou un service comme Okta, vous permet de vous abonner à des événements spécifiques. Par exemple, la création ou la désactivation d'un utilisateur, une tentative de connexion ou d'autres types d'événements liés à la fonctionnalité du fournisseur.

    3. Configurer la charge utile. Lors de enregistrement de webhook, vous pouvez configurer le format et le contenu de la charge utile. Il s'agit notamment de spécifier les données que le fournisseur de webhook doit inclure dans la charge utile lorsqu'un événement se produit.

    4. Confirmer ou vérifier l'URL du point de terminaison. Certains systèmes de webhook requièrent une étape de vérification pour s'assurer que l'URL de point de terminaison fournie est valide et sous votre contrôle. Cela peut engendrer l'envoi par le fournisseur de webhook d'un jeton de vérification à votre point de terminaison qui exige une réponse pour une validation complète.

    5. Activer le webhook : après un enregistrement réussi, le webhook actif est prêt à recevoir les notifications d'événements. Lorsque les événements spécifiés se produisent, le fournisseur envoie des charges utiles contenant les données pertinentes à l'URL de votre point de terminaison enregistré.

  3. Définir un déclencheur d'événement. Lorsqu'un événement spécifique se produit sur la plateforme du fournisseur, le fournisseur génère une charge utile contenant des informations pertinentes sur l'événement.

  4. Recevoir la charge utile. Le fournisseur de webhook envoie ensuite une requête HTTP POST contenant la charge utile avec les détails de l'événement à l'URL que vous avez enregistrée. Les données sont généralement envoyées au format JSON.

  5. Traitez la charge utile. Le serveur de l'app réceptrice traite la requête POST entrante. Il analyse la charge utile JSON et exécute des actions basées sur les données d'événement. Cela peut engendrer la mise à jour d'une base de données, l'envoi de notifications ou le déclenchement d'une autre logique commerciale.

    Lors de la gestion des charges utiles webhook, il y a deux aspects du traitement à prendre en compte :

    • Agrégation de la demande. Les charges utiles entrantes peuvent être reçues en tant qu'éléments individuels ou sous forme de lot collecté d'éléments.

    • Traitement des requêtes par lots. Pour les charges utiles qui arrivent sous forme de lot collecté, le flux d'événement webhook peut traiter chaque élément individuellement ou gérer le lot complet comme un seul élément.

  6. Répondre au fournisseur. Une fois que l'app réceptrice a traité la charge utile, elle renvoie une réponse HTTP au fournisseur. Cette réponse indique si le destinataire a bien reçu et traité la charge utile.

  7. Configurez un mécanisme de nouvelle tentative. Parfois, en raison de problèmes de réseau ou d'autres raisons, la livraison du webhook peut échouer. Pour garantir leur fiabilité, de nombreux systèmes webhook implémentent un mécanisme de nouvelle tentative. Si la tentative de livraison initiale échoue, le système effectue des tentatives supplémentaires pour transmettre la charge utile.

  8. Supprimez l'enregistrement du webhook si vous n'avez plus besoin de recevoir certaines notifications d'événements, si vous passez à un autre point de terminaison ou si vous mettez le webhook hors service.

    1. Supprimer l'URL du point de terminaison. Pour supprimer l'enregistrement d'un webhook, vous informez généralement le fournisseur de webhook qu'il doit arrêter d'envoyer des charges utiles à une URL de point de terminaison spécifique.

    2. Se désabonner des événements. De même que pour l'enregistrement, vous devrez peut-être spécifier les événements dont vous souhaitez vous désabonner. Ainsi, vous vous assurez de ne plus recevoir de notifications pour ces événements.

    3. Désactiver le webhook. Après avoir réussi la suppression de l'enregistrement des événements au fournisseur, vous désactivez le webhook pour votre URL de point de terminaison afin de ne plus recevoir les charges utiles des événements.

Les webhooks impliquent l'échange de données via Internet, la sécurité est donc cruciale. L'implémentation de mécanismes authentification et autorisation appropriés, tels que des clés API ou des jetons, permet de garantir que seules les parties autorisées peuvent envoyer ou recevoir des données webhook.