ウェブ開発において、ウェブフックとは、カスタムコールバックを使用してウェブページやウェブアプリケーションの動作を拡張または変更する方法です。これらのコールバックは、元のウェブサイトやアプリケーションに所属していなくても、サードパーティのユーザーによって保守、変更、管理される場合があります。2007年に、ジェフ・リンゼイはコンピュータプログラミング用語のフックからウェブフックという用語を作り出した。[1]
関数
Webhook は「ユーザー定義の HTTP コールバック」です。[2]通常、リポジトリへのコードのプッシュ、[3]新しいコメントや購入、[4]ブログへのコメントの投稿[5]など、何らかのイベントによってトリガーされます。[6]そのイベントが発生すると、ソース サイトは Webhook 用に設定された URL に HTTP リクエストを送信します。ユーザーは、あるサイトでのイベントが別のサイトでの動作を呼び出すように Webhook を設定できます。
一般的な用途としては、継続的インテグレーションシステムでビルドをトリガーすること[7]や、バグ追跡システムへの通知[8]などが挙げられます。WebhookはHTTPを使用するため、新しいインフラストラクチャを追加することなくWebサービスに統合できます。[9]
Webhook通知の認証
クライアント(発信元のウェブサイトまたはアプリケーション)がサードパーティのユーザーのサーバーにウェブフック呼び出しを行う際、なりすまし攻撃を避けるために着信POSTリクエストを認証し、リプレイ攻撃を避けるためにタイムスタンプを検証する必要があります。[10]クライアントを認証するためにさまざまな手法が使用されます。
- HTTP基本認証はクライアントの認証に使用できる。[11]
- Webhook には、イベントの種類に関する情報や、Webhook を検証するための共有シークレットまたはデジタル署名を含めることができます。
- HMAC署名はHTTPヘッダーとして含めることができます。GitHub、[12]、 Stripe [13]、Facebook [14]はこの技術を使用しています。
- 接続が確立されると、相互TLS認証が使用される。エンドポイント(サーバー)はクライアントの証明書を検証できる。 [15]
送信者は、リクエストの送信元となるIP アドレスのリストを一定に保つことを選択できます。これは、それだけでは十分なセキュリティ対策ではありませんが、受信エンドポイントがファイアウォールまたはNAT の背後にある場合には役立ちます。
参照
参考文献
- ^ Web hook to Revolutionize the Web、2007年5月3日、2018年6月30日時点のオリジナルよりアーカイブ
- ^ 「Webhooks」。Atlassian 。 2019年9月24日閲覧。]
- ^ Webhooks について - Github ヘルプ
- ^ Webhook とは何ですか?
- ^ WordPress ウェブフック
- ^ Webhook の使用例
- ^ Jenkins GitHub Commit Hooks HOWTO、2015-09-25 にオリジナルからアーカイブ
- ^ Google プロジェクト ホスティング - コミット後の Web フック
- ^ WebHooks とは何ですか? また、WebHooks によってリアルタイム Web がどのようにして実現されるのですか?
- ^ 「なぜ検証するのか」。Svix。Svix Inc。 2021年9月12日閲覧。
もう1つの潜在的なセキュリティホールは、リプレイ攻撃と呼ばれるものです。
- ^ 「DocuSign Connect に Basic 認証のサポートが追加されました」。DocuSign。DocuSign , Inc. 2017 年 11 月 16 日。2020年1 月 15 日閲覧。Connect
通知サービスが更新され、顧客の Connect サーバー (リスナー) で Basic 認証スキームがサポートされるようになりました。
- ^ 「Webhook のセキュリティ保護」。Github . Github, Inc. 2021 年9 月 12 日閲覧。
- ^ 「Webhook 署名の確認」。Stripe . Stripe , Inc. 2019 年5 月 12 日閲覧。
- ^ 「Getting Started - Graph API - Documentation - Facebook for Developers」。Facebook . Facebook, Inc. 2019年5月12日閲覧。
- ^ 「Mutual TLS: 知っておくべきこと」。DocuSign。DocuSign , Inc. 2020 年1 月 15 日閲覧。Mutual
TLS とクライアント アクセス コントロールを組み合わせることで、リスナー アプリは、Connect 通知メッセージが DocuSign から送信され、途中で変更されていないことを確認できます。
外部リンク
- Webhookの操作
