本文へスキップ

AI運用の判断と根拠を引く

トップへ戻る

Slack/Teams/Chatをエージェントの業務インターフェースにする

用語・参照用語・参照公式仕様のみ公式仕様のみ現行現行として扱う

記事状態: 公開 · 最終確認: 2026-10-04

要点

チャット上の入力・承認・通知・引継ぎを業務操作へ安全に接続できるか。署名やボタン押下だけを本人認可・最終承認へ転用しない。

現在の判断

  • Slack HTTP requestの検証はraw 本文を解析前に保持し、timestampを含むv0 basestringのHMAC-SHA256とheaderを照合する。公開例の5分チェックは再送攻撃対策であり、署名に成功しても業務上の実行権限は別に必要。[S1]
  • Eventsとinteractive payloadは3秒以内のackが必要。Events失敗時の再送を想定し、ackとqueueへの耐久保存、重複排除、処理完了通知を区別する。event_idを組織の利用環境/提供元 適用範囲と結ぶローカル環境の UNIQUEは組織提案で、実配信がexactly-onceとはしない。[S2,S3;UNIQUE設計は提案]
  • Slack thread_tsでthreadへ返信し、reply_broadcastの意図を明示する。threadは秘密情報や権限の分離境界ではない。response_urlの短期応答手段を無期限の処理の流れ実行tokenとして扱わない。[S3,S4;authority境界は提案]
  • Teamsのプロアクティブ通知では、対象となる範囲へアプリやボットを導入し、組織の利用環境と会話情報を保持するという条件があります。メールアドレスやGraphトークンのみを用いて、誰に対してもボット通知ができるわけではありません。RSCは特定の特定リソースに限定され、アプリケーション/delegated(アプリケーション権限/委任された権限)によって、付与者とセッションの条件が異なります。[M1, M2]
  • Google Chat APIでは、ユーザー認証とアプリ認証で参照できるリソースが異なります。chat.botはアプリがアクセス可能なスペースなどに限定され、chat.app.*は一度の管理者による承認(administrator 承認)を必要とします。すべてのメソッドにおいて両方の方式が利用可能であるとは限りません。[G1]
  • Google ChatからのHTTPリクエストは、設定された対象(audience)がエンドポイントURLかプロジェクト番号かによって、トークンの方式が異なる。公式ライブラリを使用して、署名/発行者/対象などを検証する。JWTをデコードしただけでは真正性の証明にはならず、Googleの方式をSlackのHMACへ横展開してはならない。[G2]

どこまで当てはまるか

Slack/Teams/Chatをエージェントの業務インターフェースにする

詳しく理解する

分析と推論

承認済み内容をhash/改訂版と結ぶ、結果不明を未確認事項へ止める、再試行前に提供元状態を読み戻す、という設計は組織側の提案です。利用可能なAPIだけで組織の認可や人間承諾が完成するとはしません。

利用できる条件

必要なアプリの導入、対象リソースの権限、OAuth方式および同意、組織・リージョン・プラン、SDKとAPIのバージョンを採用先ごとに確認します。また、レート制限/クォータ、通知設定、および外部参加者を検証します。

セキュリティとプライバシー

actor/組織の利用環境/対象resourceと権限を再確認し、秘密鍵はserver側へ置きます。入力内の命令をツール authorityへ転用しません。承認内容・改訂版、提供元 処理結果の受領記録、結果結果の照合、human 引継ぎを別状態で監査可能にします。PII・保持/削除・DLP・外部転送・費用と運用閾値は組織の受入を要します。

出典

EVIDENCE_AS_OF: 2026-10-04。資料は提供元/方式/設定に限定して解釈します。 - [S1] Slack — Verifying requests from Slack: https://docs.slack.dev/authentication/verifying-requests-from-slack/ - [S2] Slack — The Events API: https://docs.slack.dev/apis/events-api/ - [S3] Slack — Handling user interaction in your Slack apps: https://docs.slack.dev/interactivity/handling-user-interaction/ - [S4] Slack — chat.postMessage メソッド: https://docs.slack.dev/reference/methods/chat.postMessage/ - [M1] Microsoft — Send proactive messages: https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/send-proactive-messages - [M2] Microsoft — Resource-specific consent for your Teams app: https://learn.microsoft.com/en-us/microsoftteams/platform/graph-api/rsc/resource-specific-consent - [G1] Google — Authenticate and authorize Chat apps and Google Chat API requests: https://developers.google.com/workspace/chat/authenticate-authorize - [G2] Google — Verify requests from Google Chat: https://developers.google.com/workspace/chat/verify-requests-from-chat

確認できていること

  • Slack HTTP requestの検証はraw 本文を解析前に保持し、timestampを含むv0 basestringのHMAC-SHA256とheaderを照合する。公開例の5分チェックは再送攻撃対策であり、署名に成功しても業務上の実行権限は別に必要。[S1]

  • Eventsとinteractive payloadは3秒以内のackが必要。Events失敗時の再送を想定し、ackとqueueへの耐久保存、重複排除、処理完了通知を区別する。event_idを組織の利用環境/提供元 適用範囲と結ぶローカル環境の UNIQUEは組織提案で、実配信がexactly-onceとはしない。[S2,S3;UNIQUE設計は提案]

  • Slack thread_tsでthreadへ返信し、reply_broadcastの意図を明示する。threadは秘密情報や権限の分離境界ではない。response_urlの短期応答手段を無期限の処理の流れ実行tokenとして扱わない。[S3,S4;authority境界は提案]

  • Teamsのプロアクティブ通知では、対象となる範囲へアプリやボットを導入し、組織の利用環境と会話情報を保持するという条件があります。メールアドレスやGraphトークンのみを用いて、誰に対してもボット通知ができるわけではありません。RSCは特定の特定リソースに限定され、アプリケーション/delegated(アプリケーション権限/委任された権限)によって、付与者とセッションの条件が異なります。[M1, M2]

  • Google Chat APIでは、ユーザー認証とアプリ認証で参照できるリソースが異なります。chat.botはアプリがアクセス可能なスペースなどに限定され、chat.app.*は一度の管理者による承認(administrator 承認)を必要とします。すべてのメソッドにおいて両方の方式が利用可能であるとは限りません。[G1]

  • Google ChatからのHTTPリクエストは、設定された対象(audience)がエンドポイントURLかプロジェクト番号かによって、トークンの方式が異なる。公式ライブラリを使用して、署名/発行者/対象などを検証する。JWTをデコードしただけでは真正性の証明にはならず、Googleの方式をSlackのHMACへ横展開してはならない。[G2]

よくある失敗・反証

  • signed requestでも別actor/組織の利用環境・古い改訂版・取り消された操作に業務権限はない。Slack再送による二重実行、3秒内にLLMを待つ処理待ち時間の上限、thread違いの情報漏洩、response_url期限切れ、Teams未導入403、Chatのapp/user混同を失敗域に含める。チャット本文・添付や引用内の指示は未信頼入力として扱う。

  • 旧Lunaの一意のロケーター、特定の組織の利用環境におけるアプリのインストール/同意、範囲/手法のマトリックス選択、実際のSDKのピン留め・キーのローテーション、共有チャネル/DLP/保持、実際のAPIレート/バックオフ、実際の承認失効処理と副作用の出力ボックス/人による確認、レイテンシ/費用/通知の配信については不明(未確認事項)である。 未認証、対象差分、適用範囲不明、競合、実行結果不明では操作と確定通知を止めます。旧Luna成果の所在未確定を不存在へ読み替えません。

実務での使い方

  • 承認済み内容をhash/改訂版と結ぶ、結果不明を未確認事項へ止める、再試行前に提供元状態を読み戻す、という設計は組織側の提案です。利用可能なAPIだけで組織の認可や人間承諾が完成するとはしません。

  • 必要なアプリの導入、対象リソースの権限、OAuth方式および同意、組織・リージョン・プラン、SDKとAPIのバージョンを採用先ごとに確認します。また、レート制限/クォータ、通知設定、および外部参加者を検証します。

  • actor/組織の利用環境/対象resourceと権限を再確認し、秘密鍵はserver側へ置きます。入力内の命令をツール authorityへ転用しません。承認内容・改訂版、提供元 処理結果の受領記録、結果結果の照合、human 引継ぎを別状態で監査可能にします。PII・保持/削除・DLP・外部転送・費用と運用閾値は組織の受入を要します。

まだ確認できていないこと

  • EA-222-UNKNOWN-01

    旧Lunaの一意のロケーター、特定の組織の利用環境におけるアプリのインストール/同意、範囲/手法のマトリックス選択、実際のSDKのピン留め・キーのローテーション、共有チャネル/DLP/保持、実際のAPIレート/バックオフ、実際の承認失効処理と副作用の出力ボックス/人による確認、レイテンシ/費用/通知の配信については不明(未確認事項)である。 未認証、対象差分、適用範囲不明、競合、実行結果不明では操作と確定通知を止めます。旧Luna成果の所在未確定を不存在へ読み替えません。

根拠資料

更新履歴

  1. EA-222-GAP-FIRST-20261004: 正式な 監査/publication 対応付け

出典ID・検証情報・機械可読データ

根拠の種類と情報の鮮度は、ラベルとアイコンで確認できます。

記事ID
EA-222
最終確認日
2026-10-04
提供元・モデル・プラン・利用環境
Google
対象地域
—
元資料の全文と収録照合記録
PUBLIC_CLAIM

チャット上の入力・承認・通知・handoffを業務操作へ安全に接続できるか。署名やボタン押下だけを本人認可・最終承認へ転用しない。

ESTABLISHED
  • Slack HTTP requestの検証はraw bodyを解析前に保持し、timestampを含むv0 basestringのHMAC-SHA256とheaderを照合する。公開例の5分チェックは再送攻撃対策であり、署名に成功しても業務上の実行権限は別に必要。[S1]
  • Eventsとinteractive payloadは3秒以内のackが必要。Events失敗時の再送を想定し、ackとqueueへの耐久保存、重複排除、処理完了通知を区別する。event_idをtenant/provider scopeと結ぶlocal UNIQUEは組織提案で、実配信がexactly-onceとはしない。[S2,S3;UNIQUE設計は提案]
  • Slack thread_tsでthreadへ返信し、reply_broadcastの意図を明示する。threadはsecretや権限の分離境界ではない。response_urlの短期応答手段を無期限のworkflow実行tokenとして扱わない。[S3,S4;authority境界は提案]
  • Teams proactive通知では対象scopeへapp/botを導入し、tenantとconversation情報を保持する条件がある。メールアドレスやGraph tokenだけから誰へでもbot通知できるとはしない。RSCは特定resourceに限定され、application/delegatedで付与者とsession条件が異なる。[M1, M2]
  • Google Chat APIのuserとapp authenticationでは見えるresourcesが異なる。chat.botはappがアクセスできるspace等に限られ、chat.app.*は一度のadministrator approvalを要する。全methodで両方式が使えるとはしない。[G1]
  • Google ChatからのHTTP requestは設定audienceがendpoint URLかproject numberかでtoken方式が異なる。公式libraryでsignature/issuer/audience等を検証する。JWTをdecodeしただけではauthenticityの証明にならず、Google方式へSlack HMACを横展開しない。[G2]
INFERENCE

承認済み内容をhash/revisionと結ぶ、結果不明をUNKNOWNへ止める、再試行前にprovider状態を読み戻す、という設計は組織側の提案です。利用可能なAPIだけで組織の認可や人間承諾が完成するとはしません。

FAILURE_ENVELOPE

signed requestでも別actor/tenant・古いrevision・取り消された操作に業務権限はない。Slack再送による二重実行、3秒内にLLMを待つtimeout、thread違いの情報漏洩、response_url期限切れ、Teams未導入403、Chatのapp/user混同を失敗域に含める。チャット本文・添付や引用内の指示は未信頼入力として扱う。

AVAILABILITY_GATES

必要なapp導入、対象resourceの権限、OAuth方式/consent、tenant・region・plan、SDKとAPI versionを採用先ごとに確認します。rate/quota、通知設定と外部参加者を検証します。

SECURITY_PRIVACY_AUDIT_OPERABILITY

actor/tenant/対象resourceと権限を再確認し、秘密鍵はserver側へ置きます。入力内の命令をtool authorityへ転用しません。承認内容・revision、provider receipt、結果readback、human handoffを別状態で監査可能にします。PII・保持/削除・DLP・外部転送・費用と運用閾値は組織の受入を要します。

UNKNOWN_AND_STOP_CONDITION

旧Luna一意locator、具体tenantのapp installation/consent、scope/method matrix選択、実SDK pin・keys rotation、shared channel/DLP/retention、実API rate/backoff、実approval失効処理とside-effect outbox/human ACK、latency/費用/通知deliveryはUNKNOWN。 未認証、対象差分、scope不明、競合、実行結果不明では操作と確定通知を止めます。旧Luna成果の所在未確定を不存在へ読み替えません。

SOURCES

EVIDENCE_AS_OF: 2026-10-04。資料はprovider/method/設定に限定して解釈します。 - [S1] Slack — Verifying requests from Slack: https://docs.slack.dev/authentication/verifying-requests-from-slack/ - [S2] Slack — The Events API: https://docs.slack.dev/apis/events-api/ - [S3] Slack — Handling user interaction in your Slack apps: https://docs.slack.dev/interactivity/handling-user-interaction/ - [S4] Slack — chat.postMessage method: https://docs.slack.dev/reference/methods/chat.postMessage/ - [M1] Microsoft — Send proactive messages: https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/send-proactive-messages - [M2] Microsoft — Resource-specific consent for your Teams app: https://learn.microsoft.com/en-us/microsoftteams/platform/graph-api/rsc/resource-specific-consent - [G1] Google — Authenticate and authorize Chat apps and Google Chat API requests: https://developers.google.com/workspace/chat/authenticate-authorize - [G2] Google — Verify requests from Google Chat: https://developers.google.com/workspace/chat/verify-requests-from-chat

  • EVD-EA-222-URL-59722E2EAC84研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    [S1] Slack — Verifying requests from Slack:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-222-URL-59722E2EAC84
    検証箇所
    SOURCES · S1 · - [S1] Slack — Verifying requests from Slack: https://docs.slack.dev/authentication/verifying-requests-from-slack/
    適用範囲
    SOURCES
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-222-URL-A99FFA103B05研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    [S2] Slack — The Events API:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-222-URL-A99FFA103B05
    検証箇所
    SOURCES · S2 · - [S2] Slack — The Events API: https://docs.slack.dev/apis/events-api/
    適用範囲
    SOURCES
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-222-URL-05B7B2233F9F研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    [S3] Slack — Handling user interaction in your Slack apps:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-222-URL-05B7B2233F9F
    検証箇所
    SOURCES · S3 · - [S3] Slack — Handling user interaction in your Slack apps: https://docs.slack.dev/interactivity/handling-user-interaction/
    適用範囲
    SOURCES
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-222-URL-F24D278A181F研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    [S4] Slack — chat.postMessage method:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-222-URL-F24D278A181F
    検証箇所
    SOURCES · S4 · - [S4] Slack — chat.postMessage method: https://docs.slack.dev/reference/methods/chat.postMessage/
    適用範囲
    SOURCES
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-222-URL-54AEC61F8106研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    [M1] Microsoft — Send proactive messages:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-222-URL-54AEC61F8106
    検証箇所
    SOURCES · M1 · - [M1] Microsoft — Send proactive messages: https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/send-proactive-messages
    適用範囲
    SOURCES
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-222-URL-C39F3256D509研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    [M2] Microsoft — Resource-specific consent for your Teams app:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-222-URL-C39F3256D509
    検証箇所
    SOURCES · M2 · - [M2] Microsoft — Resource-specific consent for your Teams app: https://learn.microsoft.com/en-us/microsoftteams/platform/graph-api/rsc/resource-specific-consent
    適用範囲
    SOURCES
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-222-URL-2ED024C2C66F研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    [G1] Google — Authenticate and authorize Chat apps and Google Chat API requests:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-222-URL-2ED024C2C66F
    検証箇所
    SOURCES · G1 · - [G1] Google — Authenticate and authorize Chat apps and Google Chat API requests: https://developers.google.com/workspace/chat/authenticate-authorize
    適用範囲
    SOURCES
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-222-URL-B2DB3CC122D6研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    [G2] Google — Verify requests from Google Chat:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-222-URL-B2DB3CC122D6
    検証箇所
    SOURCES · G2 · - [G2] Google — Verify requests from Google Chat: https://developers.google.com/workspace/chat/verify-requests-from-chat
    適用範囲
    SOURCES
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EA-222-R11-RESEARCH研究資料研究資料根拠の出所: AUDITED_CANONICAL_RESEARCH_PACKET

    EA-222 監査済みresearch / canonical revision binding

    裏付ける内容
    1. Slack HTTP requestの検証はraw bodyを解析前に保持し、timestampを含むv0 basestringのHMAC-SHA256とheaderを照合する。公開例の5分チェックは再送攻撃対策であり、署名に成功しても業務上の実行権限は別に必要。[S1] 2. Eventsとinteractive payloadは3秒以内のackが必要。Events失敗時の再送を想定し、ackとqueueへの耐久保存、重複排除、処理完了通知を区別する。event_idをtenant/provider scopeと結ぶlocal UNIQUEは組織提案で、実配信がexactly-onceとはしない。[S2,S3;UNIQUE設計は提案] 3. Slack thread_tsでthreadへ返信し、reply_broadcastの意図を明示する。threadはsecretや権限の分離境界ではない。response_urlの短期応答手段を無期限のworkflow実行tokenとして扱わない。[S3,S4;authority境界は提案] 4. Teams proactive通知では対象scopeへapp/botを導入し、tenantとconversation情報を保持する条件がある。メールアドレスやGraph tokenだけから誰へでもbot通知できるとはしない。RSCは特定resourceに限定され、application/delegatedで付与者とsession条件が異なる。[M1, M2] 5. Google Chat APIのuserとapp authenticationでは見えるresourcesが異なる。chat.botはappがアクセスできるspace等に限られ、chat.app.*は一度のadministrator approvalを要する。全methodで両方式が使えるとはしない。[G1] 6. Google ChatからのHTTP requestは設定audienceがendpoint URLかproject numberかでtoken方式が異なる。公式libraryでsignature/issuer/audience等を検証する。JWTをdecodeしただけではauthenticityの証明にならず、Google方式へSlack HMACを横展開しない。[G2]
    確認日
    2026-10-04
    出典・実験ID
    EA-222-GAP-FIRST-20261004
    検証箇所
    EA-222-GAP-FIRST-20261004 · content/staging/EA-222.md
    適用範囲
    監査済みEA本文・canonical revision・既存Source Graph relationの範囲。欠損currentnessは推測で閉じない。
    出典・来歴
    AUDIT_PASS_CANONICAL_BINDING
    限界
    canonical監査・revision bindingの存在を示す。外部ソースcurrentnessが本文またはcontrol-planeで確定していない場合は、currentnessをUNKNOWNのまま保持する。
  • EA-222-R11-WEB-READBACK実装資料実装資料根拠の出所: IMPLEMENTATION_READBACK

    EA-222 Web body identity / canonical readback

    裏付ける内容
    canonical staging bodyのSHA-256一致とR9 canonical ledger readbackをProduction projectionの入力として検証する。
    確認日
    2026-10-04
    出典・実験ID
    WEBBODY-EA0222-R8-733DE033
    検証箇所
    WEBBODY-EA0222-R8-733DE033 · content/staging/EA-222.md · EA-222-GAP-FIRST-20261004
    適用範囲
    R9/R10 canonical readback後のProduction生成時body identity。
    出典・来歴
    CANONICAL_READBACK_BODY_HASH_MATCH
    限界
    body identity/readbackは本文claim自体の真偽や外部ソースの最新性を追加保証しない。
出典ID
EA-222-GAP-FIRST-20261004, SRC-EA-222-URL-59722E2EAC84, SRC-EA-222-URL-A99FFA103B05, SRC-EA-222-URL-05B7B2233F9F, SRC-EA-222-URL-F24D278A181F, SRC-EA-222-URL-54AEC61F8106, SRC-EA-222-URL-C39F3256D509, SRC-EA-222-URL-2ED024C2C66F, SRC-EA-222-URL-B2DB3CC122D6, WEBBODY-EA0222-R8-733DE033
追跡中のUNKNOWN ID
EA-222-UNKNOWN-01
再確認のきっかけ
正式な 改訂版/publication 状態 change · 本文 成果物 hash change · 出典 現行性 change · new contradiction or 実装 結果の照合

機械検査: 通過 — 機械検査の結果です。情報の正確性や実行の承認を保証するものではありません。

    同じ記事IDの機械可読データです。