IOSOR ガイド

Webhook署名とリプレイ窓:べき等で 02:00 を退屈にする

署名を検証し、リプレイ窓を限り、着信 webhook をべき等にする。未署名コールバックは受けず、retry で prepaid を二重に借方しない。

未署名コールバックはイベントではない。たまたまペイロードに見える未認証 HTTP だ。先に受けて後で検証するチームは 02:00 に代償を払う。再演された DLR、重複 STOP、財務が巻き戻せない二度目のウォレット借方。Prepaid は失敗を金として見せる。退屈な習慣は、毎回の署名検証、有界のリプレイ窓、台帳行の横で財務が読むべき等キーだ。

IOSOR は監査可能な B2B 統合を求める。署名付き webhook、回せる秘密、他社ブランドを流さない client-safe エラー。月次 USD 1,000+ 付近では相関 ID とリプレイ証拠が商業レビュー材料になる。工学衛生だけではない。ローンチ時のWebhookとキー と ローンチを生き抜くWebhook習慣 を組め。

未署名コールバックはイベントではない

業務フィールドをパースする前に署名を検証せよ。欠け・期限切れ・不一致の署名は client-safe エラーで拒め。「パイロットだから処理する」な。検証を飛ばす staging 消費者は本番も飛ばすよう訓練する。メッセージカタログが live でも、webhook URL が公共の捨て場ではない。誰が本文に署名したか証明できなければ、イベントではなく偽造リクエストだ。

リプレイ窓と 02:00 が起きる理由

少なくとも一度の配送は timeout、5xx、曖昧なネットワーク喪失で再試行する。02:00 の遅い retry は普通だ。窓は署名済みペイロードがどれだけ長く受理されるかを限る。広すぎれば攻撃者が古い STOP を再演し、狭すぎれば正当な retry が偽造に見える。窓拒否と署名失敗を分けてログせよ。着信Webhookの再試行 を見よ。速く応答し、先に永続化し、非同期で処理する。ACK 前に CRM するハンドラは重複を製造する。

財務が読めるべき等

同じイベント ID は同じ終状態を生まねばならない。プラットフォームのイベント/メッセージ ID を取り出せ。時刻と本文からキーを発明するな。既知 ID は再借方せず成功を返せ。送信も同じ規律が要る — 冪等・再試行と資金。財務は各 prepaid 行をステータス事象に対して説明すべきだ。timeout がクライアント retry 嵐を起こせば、台帳が先に損害を見せる。カタログ in setup は「Live までべき等を飛ばす」言い訳ではない。

二重受理の混乱なき署名ローテーション

新旧署名が永遠に両方受理される窓を残さず秘密を回せ。重なりを計画し、切る。本番秘密をチケットに貼るな。サンドボックスと本番の消費者を分けよ。失敗した消費者を二度目の借方なしで再駆動できるよう、デッドレターとリプレイ道具を置け。相関 ID を送信から台帳行へ運べ。02:00 は runbook であり考古学ではない。

危険信号

  • ハンドラが未署名本文を「当面」受ける
  • リプレイ窓がない、または週単位
  • 時刻比較なしにステータス上書き
  • ACK 前の CRM/メール副作用
  • 本番秘密がチャットに出る
  • 先月の重複イベント ID を誰も見ていない
  • 顧客向けエラーが生の上流コードを流す

IOSORで始める

IOSORコンソールを開き、インバウンド配信通知およびイベントコールバックのアクティブなウェブホックエンドポイント設定を確認します。署名検証の再送ウィンドウを5分という厳格な設定にし、ハンドラをプラットフォームイベントIDに厳密に紐付けます。ステージング環境で再送されたペイロードに対してエンドポイントをテストし、重複リクエストが不要なビジネスロジックを起動することなく200 OKを返すことを確認します。

IOSORの要点

未検証のウェブホックハンドラや再送ウィンドウの欠如は、ルーチンのネットワーク再試行をセキュリティ上の脆弱性や重複した状態変更へと変えてしまいます。タイムスタンプによる署名の有効性制限と厳格なべき等性の強制により、深夜02:00の自動配信試行が完全に予測可能なものになります。具体的な運用手順として、管理コンソールで署名秘密鍵を安全に取得し、すべての受信ペイロードのヘッダーに含まれるタイムスタンプと署名値を検証してください。許容するリプレイ窓(推奨:5分以内)を超過した古いリクエストは、リプレイ攻撃とみなして即座に破棄する必要があります。また、すでに処理されたイベントIDについては、データベースのべき等性台帳(レジャー)を参照し、重複処理を行わずに即座に成功ステータスを返してください。ローカルでのパイロット検証のために署名検証を一時的であっても無効化したり、変動するボディフィールドからキー署名を捏造したり、受信確認を行う前に外部のCRMアクションをトリガーしたりしないでください。

このガイドは役に立ちましたか?

関連ガイド