シークレットを含めずにWebhookの診断情報を記録する

署名情報、非公開のペイロードデータ、受信側のシークレットを除き、Webhookのイベント、配信、種類、時刻、ステータスを記録します。

最終確認日

スクリーンショットは英語版の画面です。

Webhookの診断情報は認証情報や非公開データをコピーせずに試行を説明する必要があります。現在のペイロードに有効な共有トークンが含まれるshare.accessedでは特に重要です。

安全なWebhook識別子を選び、ペイロードと署名情報を伏せ、機密情報を除いたレスポンスを返し、dosyaで配信を追跡する4つのパネル。
安全なWebhook識別子を選び、ペイロードと署名情報を伏せ、機密情報を除いたレスポンスを返し、dosyaで配信を追跡する4つのパネル。スクリーンショットを原寸大で開く。

手順

  1. 署名を検証した後、X-Dosya-Event-Id、X-Dosya-Delivery-Id、X-Dosya-Event-Type、受信側の時刻、検証結果、内部の相関IDまたはキューIDを含む構造化ログを作成します。
  2. エンドポイントの署名シークレット、生のX-Dosya-Signature、認証情報、リクエスト本文全体を除外してください。アップロードと削除のデータにはファイルIDと名前が含まれます。共有アクセスのデータにはshare_idと、保持者が使えるtokenが含まれます。
  3. 担当者にペイロードの内容が必要な場合は、イベントの種類ごとにシークレットでない項目を許可リストに登録し、ログに記録する前に値を伏せてください。将来追加される項目が自動でログに入る可能性のある汎用JSONシリアライザーに頼らないでください。
  4. 永続的に受け入れた後、空または機密情報を除いた2xx応答を返します。dosyaは受信側のレスポンスの先頭500文字を保存するため、アプリケーションログが安全でもレスポンス本文から最近の配信にデータが公開される場合があります。
  5. 失敗時はペイロードではなく、ローカルの例外クラスと内部トレースIDをログに記録してください。dosyaは別途HTTPステータスと切り詰めたレスポンスの一部、または応答がない場合は通信エラーを記録します。
  6. 連携 → Webhook → 配信を開き、イベントの種類、作成時刻、ステータス、試行回数、次の再試行で制御されたテストを照合します。受信側のログとdosyaのレスポンスのツールチップのどちらにもシークレットが表示されないことを確認してください。

送信される各リクエストにはContent-Type: application/jsonとUser-Agent: dosya-webhooks/1も含まれます。通信の確認には役立ちますが、配信の認証にはなりません。

Webhook診断情報の記録に関する参考画面。Get API KeyとView SDKsのリンクを示すdosya REST API概要。
Webhook診断情報の記録に関する参考画面。Get API KeyとView SDKsのリンクを示すdosya REST API概要。スクリーンショットを原寸大で開く。

期待される結果

担当者はイベント、配信、内部ジョブの識別子を使って、dosyaから受信側までWebhookを追跡できます。ログと保存されたレスポンスの一部には署名シークレット、共有トークン、ファイルのペイロード、その他の機密情報が含まれません。

応答の下に非公開のテキストが表示されます。 受信側のレスポンス本文から取り除いて変更をデプロイし、既存の表示内容をチケットやチャットにコピーしないでください。

失敗にHTTPステータスがありません。 保存されたエラーをDNS、TLS、ネットワーク、タイムアウトの経路として扱い、受信側プラットフォームのトレースIDと照合してください。

関連ガイド

この記事は役に立ちましたか?

評価の結果を読み込んでいます…

投票すると、回答を変更できるように、必要な投票用Cookieが最長180日間保存されます。

質問と回答

このガイドの手順について質問できます。質問は確認後に公開されます。

公開の質問には、アカウントの詳細、認証情報、非公開ファイルを含めないでください。これらについては 非公開サポート をご利用ください。

質問を読み込んでいます…

    dosyaアカウントにサインインすると、質問を投稿できます。

    やり直す前に結果を確認

    操作をもう一度確認する必要があるときは、次の共通の確認事項をご利用ください。