Webhook

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche

Un webhook en programmation Web est une méthode permettant d'accroître ou de modifier le comportement d'une page Web ou d'une application Web avec des fonctions de rappels personnalisées. Ces fonctions peuvent être maintenues, modifiées et gérées par des utilisateurs et développeurs tiers qui ne sont pas nécessairement affiliés au site Web ou à l'application d'origine. Le terme « webhook » a été inventé par Jeff Lindsay en 2007 à partir du terme de programmation informatique hook.

Le format est généralement le JSON. La requête est effectuée comme une requête HTTP POST.

Fonction[modifier | modifier le code]

Les webhooks sont des "fonctions de rappels HTTP définis par l'utilisateur".[1] Ils sont généralement déclenchés par un événement, comme l'envoi de code vers un dépôt[2] ou un commentaire publié sur un blog.[3] Lorsque cet événement se produit, le site source envoie une requête HTTP à l'URL configurée pour le webhook. Les utilisateurs peuvent les configurer pour que des événements sur un site invoquent un comportement sur un autre.

Les utilisations courantes sont de déclencher des builds avec des systèmes d'intégration continue ou de notifier les systèmes de suivi des bugs.[4] Étant donné que les webhooks utilisent HTTP, ils peuvent être intégrés aux services Web sans ajouter de nouvelle infrastructure.[5]

Authentifier la notification d'un webhook[modifier | modifier le code]

Lorsque le client (le site Web ou l'application d'origine) effectue un appel Webhook vers le serveur d'un l'utilisateur tiers, la requête POST entrante doit être authentifiée pour éviter une usurpation d'identité électronique. Différentes techniques pour authentifier le client sont utilisées:

  • Le point d'arrivée peut choisir de conserver une liste d' adresses IP pour les sources connues desquelles les requêtes seront acceptées.
  • L' authentification HTTP peut être utilisée pour authentifier le client.[6]
  • Le webhook peut inclure des informations sur le type d'événement et un secret ou une signature pour vérifier le webhook.
  • Une signature HMAC peut être incluse comme en-tête HTTP. GitHub et Stripe[7] utilisent cette méthode.
  • Facebook signe ses demandes en utilisant SHA-1 . [8]
  • L'authentification TLS mutuelle peut être utilisée lorsque la connexion est établie. Le point de terminaison (le serveur) peut ensuite vérifier le certificat du client.[9]

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

  1. « Webhooks », Atlassian (consulté le 24 septembre 2019)]
  2. About Webhooks - GiHhub Help
  3. WordPress Webhooks
  4. Google Project Hosting - Post-Commit Web Hooks
  5. What are WebHooks and How Do They Enable a Real-time Web?
  6. « DocuSign Connect Now Includes Basic Authentication Support », DocuSign, DocuSign, Inc. (consulté le 15 janvier 2020) : « the Connect notification service has been updated to support the Basic Authentication scheme with customers’ Connect servers (listeners). »
  7. « Checking Webhook Signatures », Stripe, Stripe, Inc (consulté le 12 mai 2019)
  8. « Getting Started - Graph API - Documentation - Facebook for Developers », Facebook, Facebook, Inc. (consulté le 12 mai 2019)
  9. « Mutual TLS: Stuff you should know », DocuSign, DocuSign, Inc. (consulté le 15 janvier 2020) : « Mutual TLS plus Client Access Control enables your listener app to ensure that the Connect notification message was sent by DocuSign and that it wasn’t modified en route. »

Liens externes[modifier | modifier le code]