ウェブフックのセキュリティ

ウェブフックのセキュリティ

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

Zoho Sign では、HMAC-SHA 256(SHA 256 を用いたハッシュベースのメッセージ認証コード)を利用して Webhook を保護するオプションを提供しています。これは業界標準のハッシュ方式であり、Webhook の信頼性と完全性を確保します。HMAC による Webhook の保護により、次の点を確認できます。
  1. Webhook リクエストが Zoho Sign から送信されたかどうか(シークレットキーは Zoho Sign と受信側アプリケーションのみが知っている必要があります)。
  2. Webhook の内容が途中で改ざんされていないかどうか(完全性)。

Zoho Sign における Webhook セキュリティの仕組み

Webhook が Zoho Sign から送信される際、HMAC 署名がリクエストヘッダーに X-ZS-Webhook-署名 という名前で追加されます。Webhook リクエストを受信したアプリケーションは、同じシークレットキーを用いて HMAC 署名を生成し、リクエストヘッダーの値と照合します。値が一致すればデータは正当であり、一致しない場合は改ざんされていることになります。

HMAC 署名の生成

Zoho Sign は、Webhook データ内容の署名を HMAC-SHA256 アルゴリズムで計算し、その結果を base64 形式でリクエストヘッダーに送信します。以下はサンプルデータを用いた説明です。

データの内容
{{'requests':{'request_name':'テスト 名前'},'通知':{'operation_type':'RequestSigningSuccess'}}
secret_key
thisisthesamplekeyfortestingpurposes
base64encode(HMAC SHA-256(データの内容+secret_key))
drbSrM4H816RYKpZiRBLddUa0yHaTrwjtY04sIZFZus=

以下は、このWebhookリクエストヘッダー(HMACヘッダー)がどのように表示されるかの画像です。


受信アプリケーションでのHMAC署名の検証

  1. データの内容は文字列として読み取り、JSON形式でキーの並び順が変更されるのを防いでください。
  2. シークレットキーを使用してデータの内容のHMAC SHA-256ハッシュを計算し、その結果をbase64エンコードします。
  3. 手順2で取得した値と、受信したHMACヘッダー(X-ZS-Webhook-署名)の値を比較します。一致しない場合は、Webhookリクエストを却下してください。


HMAC署名を認証するためのサンプルJavaコードスニペット

  1. 非公開 static String verifyHmacHash(String secretKey, String データの内容, String hmacHash) throws Exception
  2. {
  3. String macAlgoName = 'HmacSHA256';
  4. byte[] secretKeyBytes = secretKey。getBytes(StandardCharsets。UTF_8);
  5. Mac mac = Mac。getInstance(macAlgoName);
  6. SecretKeySpec keySpec = 新規 SecretKeySpec(secretKeyBytes, mac。getAlgorithm());
  7. mac。init(keySpec);
  8. byte[] macData = mac。doFinal(データの内容.getBytes(StandardCharsets。UTF_8));
  9. String calculatedHmac = java。util。Base64。getEncoder().encodeToString(macData);
  10.         
  11. if(hmacHash。equals(calculatedHmac))
  12. {
  13.         System.出力.println('ハッシュが一致しました。Webhookデータの内容は有効です!!');
  14. }
  15. else
  16. {
  17.         System.出力.println('ハッシュが一致しません。Webhookデータの内容が改ざんされています!!');
  18. }
  19. 返品する calculatedHmac;
  20. }

    Zoho CRM 管理者向けトレーニング

    「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。

    日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。

    Zoho CRM Training



            Zoho Campaigns Resources

              Zoho WorkDrive Resources




                • Desk Community Learning Series


                • Digest


                • Functions


                • Meetups


                • Kbase


                • Resources


                • Glossary


                • Desk Marketplace


                • MVP Corner


                • Word of the Day


                • Ask the Experts









                                Resources

                                Videos

                                Watch comprehensive videos on features and other important topics that will help you master Zoho CRM.



                                eBooks

                                Download free eBooks and access a range of topics to get deeper insight on successfully using Zoho CRM.



                                Webinars

                                Sign up for our webinars and learn the Zoho CRM basics, from customization to sales force automation and more.



                                CRM Tips

                                Make the most of Zoho CRM with these useful tips.