Webhook
Un webhook, aussi appelé lien de rappel HTTP ou point d’ancrage Web[1], est en programmation Web 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 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[2].
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éfinies par l'utilisateur »[3]. Ils sont généralement déclenchés par un événement, comme l'envoi de code vers un dépôt[4] ou un commentaire publié sur un blog[5]. 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 afin 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[6]. Étant donné que les webhooks utilisent HTTP, ils peuvent être intégrés aux services Web sans ajouter de nouvelle infrastructure[7].
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 utilisateur tiers, la requête POST entrante doit être authentifiée afin d'é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 des requêtes acceptables.
- L'authentification HTTP peut être utilisée pour authentifier le client[8].
- Le webhook peut inclure des informations sur le type d'événement et un secret ou une signature pour le vérifier.
- Une signature HMAC peut être incluse comme en-tête HTTP. GitHub, Stripe[9] et Facebook[10] utilisent cette méthode.
- 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[11].
Voir aussi
[modifier | modifier le code]Références
[modifier | modifier le code]- « lien de rappel HTTP », Grand Dictionnaire terminologique, Office québécois de la langue française (consulté le ).
- (en) Jeff Lindsay, « Web hooks to revolutionize the web » , sur progrium.github.io, (consulté le )
- « Webhooks », Atlassian (consulté le )]
- About Webhooks - GiHhub Help
- WordPress Webhooks
- Google Project Hosting - Post-Commit Web Hooks
- What are WebHooks and How Do They Enable a Real-time Web?
- « DocuSign Connect Now Includes Basic Authentication Support », DocuSign, DocuSign, Inc. (consulté le ) : « the Connect notification service has been updated to support the Basic Authentication scheme with customers’ Connect servers (listeners). »
- « Checking Webhook Signatures », Stripe, Stripe, Inc (consulté le )
- « Getting Started - Graph API - Documentation - Facebook for Developers », Facebook, Facebook, Inc. (consulté le )
- « Mutual TLS: Stuff you should know », DocuSign, DocuSign, Inc. (consulté le ) : « 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. »