連携においてHubSpotから送信されるリクエストの検証方法の概要。
X-HubSpot-Signature-V3
ヘッダーを使用し、v3バージョンの署名を検証するための関連手順に従います。X-HubSpot-Signature-Version
ヘッダーをチェックしてから、バージョンがv1
とv2
のどちらであるかに基づいて、以下の関連手順に従います。X-HubSpot-Signature-Version
ヘッダーがv1
に設定されたリクエストがHubSpotから送信されます。X-HubSpot-Signature
ヘッダーは、貴社のアプリのクライアントシークレットとリクエスト詳細の組み合わせに基づくSHA-256ハッシュになっています。
この署名のバージョンを確認するには、以下の手順に従います。
Client secret
+ request body
(存在する場合)。X-HubSpot-Signature
ヘッダーの値を比較します。
232db2615f3d666fe21a8ec971ac7b5402d33b9a925784df3ca654d05f4817de
X-HubSpot-Signature-Version
ヘッダーがv2
に設定されたリクエストがHubSpotから送信されます。X-HubSpot-Signature
ヘッダーは、貴社のアプリのクライアントシークレットとリクエスト詳細の組み合わせに基づくSHA-256ハッシュになっています。
この署名を検証するには、次の手順に従います。
Client secret
+ http method
+ URI
+ request body
(存在する場合)。GET
リクエストでは、アプリのクライアントシークレットと、リクエストのメタデータの特定のフィールドが必要です。これらのフィールドとプレースホルダー値を以下に示します。
yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
GET
https://www.example.com/webhook_uri
""
yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyyGEThttps://www.example.com/webhook_uri
上記の連結文字列のSHA-256ハッシュを計算することで生成される、ヘッダーの署名と照合する署名は次のようになります。eee2dddcc73c94d699f5e395f4b9d454a069a6855fbfa152e91e88823087200e
POST
リクエストでは、アプリのクライアントシークレット、リクエストのメタデータの特定のフィールド、リクエスト本文の文字列表現(例:Node.jsサービスではJSON.stringify(request.body)
を使用)が必要です。これらのフィールドとプレースホルダー値を以下に示します。
yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
POST
https://www.example.com/webhook_uri
{"example_field":"example_value"}
yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyyPOSThttps://www.example.com/webhook_uri{"example_field":"example_value"}
上記の連結文字列のSHA-256ハッシュを計算することで生成される、ヘッダーの署名と照合する署名は次のようになります。9569219f8ba981ffa6f6f16aa0f48637d35d728c7e4d93d0d52efaa512af7900
署名の[SHAハッシュ値]を計算したら、その結果として得られる署名を、リクエストのx-hubspot-signatureヘッダーで提供される署名と比較できます。
以下のコードスニペットは、GET
リクエストを処理するExpressサーバーを実行している場合に、v2
リクエストの検証を組み込む方法について詳しく説明しています。以下のコードブロックは一例であり、Expressサービスの全機能を実行するために必要な特定の依存関係が省略されていることに注意してください。特定のサービスにリクエストの検証を実装するときには、最新の安定した安全なライブラリーを実行していることを確認してください。
X-HubSpot-Signature-v3
ヘッダーは、貴社のアプリのクライアントシークレットとリクエスト詳細の組み合わせに基づくHMAC SHA-256ハッシュになっています。また、X-HubSpot-Request-Timestamp
ヘッダーも含まれます。
以下の手順に従って、X-HubSpot-Signature-v3ヘッダーを使用してリクエストを検証します。
エンコード値 | デコード値 |
---|---|
%3A | : |
%2F | / |
%3F | ? |
%40 | @ |
%21 | ! |
%24 | $ |
%27 | ' |
%28 | ( |
%29 | ) |
%2A | * |
%2C | , |
%3B | ; |
requestMethod
+ requestUri
+ requestBody
+タイムスタンプ。タイムスタンプは、X-HubSpot-Request-Timestamp
ヘッダーで提供されます。POST
リクエストにv3リクエスト検証を組み込む方法を詳しく説明しています。以下のコードブロックは、フル機能のバックエンドサービスを実行するために必要な特定の依存関係を省略している点に留意してください。特定のサービスにリクエストの検証を実装するときには、最新の安定した安全なライブラリーを実行していることを確認してください。