Webhook
[Wikipedia|▼Menu]

webhook(ウェブフック)は、web開発でカスタムのコールバックを用いてウェブページウェブアプリケーションの動作を追加または変更するための方法である。このコールバックは、元のウェブサイトやアプリケーションはサードパーティのユーザーや開発者がメンテナンス、修正、管理できる場合がある。「webhook」という用語は、コンピュータプログラミングの用語hookから、2007年にJeff Lindsayによって作られた[1]

フォーマットには、通常JSONが利用される。リクエストは、HTTP POST(英語版)リクエストとして行われる。
関数

webhookは「ユーザー定義のHTTPコールバック」である[2]。通常、コードをリポジトリにプッシュしたときや[3]、コメントがブログに投稿されたときなどのイベントによってトリガーされる[4]。イベントが発生すると、ソースサイトはwebhook用に設定されたURLにHTTPリクエストを送信する。ユーザーは、あるサイトのイベントによって、別のサイトの動作を呼び出すように設定できる。

一般的な用途には、継続的インテグレーションシステムでビルドをトリガーする[5]バグトラッキングシステムに通知するなどがある。webhookはHTTPを使用するため、新しいインフラストラクチャを追加せずにWebサービスに統合することができる[6]
webhook通知の認証

クライアント(発信元のWebサイトまたはアプリケーション)がサードパーティユーザーのサーバーにwebhook呼び出しを行う場合、スプーフィング攻撃を回避するために、受信したPOSTリクエストを認証する必要がある。クライアントを認証するためには、次にようなさまざまな手法がある。

受信エンドポイントが、要求を許可する既知のソースのIPアドレスのリストを保持する。

HTTPのBasic認証を使用して、クライアントを認証する[7]

Webhookに、イベントの種類に関する情報、Webhookを検証するためのシークレットまたは署名を含める。

HMAC署名をHTTPヘッダーに含める。 GitHubとStripe[8]はこの方法を利用している。

SHA-1を使用してリクエストに署名する[9]。Facebookはこの方法を利用している。

接続が確立されたときにMutual TLS認証(英語版)を使用する。エンドポイント(サーバー)はクライアントの証明書を検証できる[10]

関連項目

API

Open API(英語版)

マッシュアップ(Webアプリケーションハイブリッド)

出典[脚注の使い方]^ Web hook to revolutionize the web, (3 May 2007), ⇒オリジナルの2018-06-30時点におけるアーカイブ。, https://web.archive.org/web/20180630220036/http://progrium.com/blog/2007/05/03/web-hooks-to-revolutionize-the-web/ 
^ “Webhooks”. Atlassian. 2019年9月24日閲覧。]
^ About Webhooks - Github Help
^WordPress Webhooks
^ Jenkins GitHub Commit Hooks HOWTO, オリジナルの2015-09-25時点におけるアーカイブ。, https://web.archive.org/web/20150925064335/http://wiki.cloudbees.com/bin/view/DEV/GitHub+Commit+Hooks+HOWTO 
^What are WebHooks and How Do They Enable a Real-time Web?
^ “DocuSign Connect Now Includes Basic Authentication Support”. DocuSign. DocuSign, Inc.. 2020年1月15日閲覧。 “the Connect notification service has been updated to support the Basic Authentication scheme with customers’ Connect servers (listeners).”
^ “Checking Webhook Signatures”. Stripe. Stripe, Inc. 2019年5月12日閲覧。
^ “Getting Started - Graph API - Documentation - Facebook for Developers”. Facebook. Facebook, Inc.. 2019年5月12日閲覧。
^ “Mutual TLS: Stuff you should know”. DocuSign. DocuSign, Inc.. 2020年1月15日閲覧。 “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.”

外部リンク

Working with Webhooks










Webインタフェース
サーバサイド

プロトコル

HTTP

v2

v3

暗号化

WebDAV


CGI

SCGI(英語版)

FCGI

AJP(英語版)

WSRP(英語版)

WebSocket

APIs

C NSAPI(英語版)

C ASAPI

C ISAPI

Java Servlet

CIL System.Web.IHttpHandler(英語版)

Python WSGI

Ruby Rack(英語版)

JavaScript JSGI(英語版)

Perl PSGI

Lua WSAPI(英語版)

トピックス

Webサービス

アプリケーションサーバ

リソース (WWW)

Open API(英語版)

サーバサイドスクリプト

Webhook


クライアントサイド

Browser APIs

ActiveX

Browser Helper Object

Google Native Client

WebAssembly

Web API(英語版)

W3C

Canvas

CORS(英語版)

File API(英語版)

Geolocation(英語版)

IndexedDB

Microdata(英語版)

SVG

WebGPU

WebRTC

WebSocket

WebVTT

Web Messaging(英語版)

Web storage(英語版)

Web worker(英語版)

XMLHttpRequest

オーディオ

ビデオ

クロノス

WebCL

WebGL

その他

Gears

Web SQL Database(英語版)

WebUSB(英語版)


トピックス

Ajax

DHTML

Mashup

Web IDL(英語版)


関連項目

ウェブページ

静的

動的(英語版)


Open Web Platform(英語版)

Web API security(英語版)

ウェブアプリケーション

RIA

SPA

PWA




ウェブユーザインタフェース


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:12 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef