Untitled Weblog

主にサーバー・インフラやシステム開発に関する公開学習メモや雑な記録

Slack Bot 作成時に、Slack からのリクエストを検証する方法のメモ

Slack Bot を作成する際に、Slackからのリクエストを検証する方法について調べたメモです。

Slackからのリクエスト検証手順

必要なもの

  • Signing Secret
  • Slack から送信される HTTP リクエスト(例えばスラッシュコマンド実行時にSlackから外部へ送信されるリクエスト)

手順

Slack 公式ドキュメントにも記載されていますが、リクエストの検証は以下のステップで行われます。

Signing Secret の取得

Slack のリクエストからタイムスタンプの取得

バージョン番号、タイムスタンプ、リクエストボディをコロン(:)で区切って連結

署名シークレットをキーとして、結果の文字列をハッシュ化し、ハッシュの16進ダイジェストを取得

生成された署名をSlackからのリクエストのヘッダーと比較