トップQs
タイムライン
チャット
視点

Webhook

ウィキペディアから

Remove ads

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]
Remove ads

関連項目

出典

外部リンク

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads