# 共有端末で前の利用者のAI会話と権限を引き継がせない

CURRENT_STATUS: CURRENT
OBSERVATION: SPEC_ONLY
FRESHNESS: CURRENT
PAGE_TYPE: reference
CANONICAL_URL: /tools/ea-529-ai
CLAIM_IDS: none
EVIDENCE_IDS: EVD-EA-529-URL-47B0ACBD2951, EVD-EA-529-URL-B0EE3BA595B6, EVD-EA-529-URL-7FA0F5ED50B5, EVD-EA-529-URL-2A43F9A8FC11, EA-529-CURRENT-APPROVAL, EA-529-CURRENT-BODY-READBACK
UNKNOWN_IDS: EA-529-UNKNOWN-01
OPS_IDS: none

## Summary
店舗や倉庫の端末を交代で利用する場合、前の人をログアウトさせるだけでは、AIの会話・メモリ・添付資料・接続先権限の分離を保証できません。認証状態、画面と端末内データ、サーバーの会話、実行中の処理をまとめて利用者の境界へ結び付ける必要があります。次の利用者へ端末を渡す前に、残留情報の表示と旧権限での操作を防げたことを確認します。

## Current judgment
Microsoft Entraの共有デバイスモードは、対応アプリ間のサインイン・サインアウトを支援します。ただし全アプリへ無条件に適用される機能ではなく、アプリ側の対応が必要です[S1: Supporting shared device mode]。

## Scope
共有端末で前の利用者のAI会話と権限を引き継がせない

## Confirmed
- Microsoft Entraの共有デバイスモードは、対応アプリ間のサインイン・サインアウトを支援します。ただし全アプリへ無条件に適用される機能ではなく、アプリ側の対応が必要です[S1: Supporting shared device mode]。

AndroidのMSAL文書は、共有モードで単一アカウント方式を使用すること、利用時やバックグラウンドからの復帰時に利用者を確認することを説明しています。特に、グローバルなサインアウトでアカウントとキャッシュ済みトークンを除去しても、アプリケーションのデータは自動的に消去されず、開発者が処理する必要があると明記しています[S2: Modify your Android application / Globally sign out]。これはAndroid向けの具体的な製品契約であり、iOS・ブラウザ・任意のAIクライアントへ同じ挙動を推定しません。

OWASPのSession Management Cheat Sheetは、サーバー側でのセッション無効化、タイムアウト、ログアウト、ブラウザ側の保存とキャッシュの扱いを説明しています[S3: Session Expiration / Web Content Caching / Web Storage]。共有端末でのAI固有のメモリ分離は、本記事がこの基礎の上へ提案する制御です。

## UNKNOWN
- EA-529-UNKNOWN-01: 本記事では実端末・実tenantのサインアウト、MDM設定、ブラウザ残留検査は実施していません。使用中のAI製品、対応アプリ、OS・SDK版、broker、offline方針、server側失効時刻、メモリ保存範囲、connector tokenの失効方法は組織ごとに確認が必要です。プロンプトに「前の利用者を忘れろ」と書くことは、認可や保存制御の代わりになりません。

## Evidence
- EVD-EA-529-URL-47B0ACBD2951 (RESEARCH): [S1] Microsoft, Shared device mode overview. — https://learn.microsoft.com/en-us/entra/identity-platform/msal-shared-devices
- EVD-EA-529-URL-B0EE3BA595B6 (RESEARCH): [S2] Microsoft, Shared device mode for Android devices. — https://learn.microsoft.com/en-us/entra/msal/android/shared-devices
- EVD-EA-529-URL-7FA0F5ED50B5 (RESEARCH): [S3] OWASP, Session Management Cheat Sheet. — https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html
- EVD-EA-529-URL-2A43F9A8FC11 (RESEARCH): [S4] MSAL Android issue #2510. — https://github.com/AzureAD/microsoft-authentication-library-for-android/issues/2510
- EA-529-CURRENT-APPROVAL (RESEARCH): 現行本文の監査・revision対応
- EA-529-CURRENT-BODY-READBACK (IMPL): 現行本文の収録照合

## Failure / limits
架空の利用者A・Bと架空データを用い、少なくとも次の経路を検査します。実顧客の機密を漏えいさせて試験しません。

| 試験 | 期待する結果 |
| --- | --- |
| A退出直後にBが利用 | Aの会話・添付・検索候補が表示されない |
| AのstreamがB認証後に到着 | Bの画面・通知・音声へ反映されない |
| アプリをバックグラウンドから復帰 | 現主体を確認するまで旧画面を露出しない |
| 旧会話IDやfile URLをBが指定 | サーバーが所有者・ACLを確認して拒否 |
| ネットワーク断でログアウト | 不確実な認証状態のまま次の利用を開始しない |
| 清掃途中の強制終了・再起動 | 未清掃を検出して通常利用を止める |
| 旧承認や再試行が残る | 新主体へ承認を移譲せず旧操作の結果を照合 |

ブラウザでは戻る履歴、タブ複製、Service Workerのcache、ローカル保存、ダウンロードを含めて確認します。機密画面のキャッシュ方針はHTTPヘッダーとアプリ両方で設定し、表示を消しただけで端末上の全コピーが消えたとは主張しません。ネイティブアプリではOSの通知、アプリ切替時のプレビュー、共有シート、音声再生を確認します。clipboardやダウンロードなどアプリが完全に回収できない面には、持出し制限・管理端末の設定・利用手順を組み合わせます。
## Failure / limits
MSAL Androidの公開issue #2510には、共有デバイスのサインアウトと条件付きアクセスを組み合わせる構成に関する質問があります[S4]。公開の質問は製品の不具合が確定した証拠でも、全環境での解決が保証された証拠でもありません。認証方式や端末構成を指定せず、共有モードという名称だけで利用可能性を判断しないための追加の照合対象です。製品文書の挙動と現場構成の成立を別に検証します。
## PUBLIC_CLAIM
店舗や倉庫の端末を交代で利用する場合、前の人をログアウトさせるだけでは、AIの会話・メモリ・添付資料・接続先権限の分離を保証できません。認証状態、画面と端末内データ、サーバーの会話、実行中の処理をまとめて利用者の境界へ結び付ける必要があります。次の利用者へ端末を渡す前に、残留情報の表示と旧権限での操作を防げたことを確認します。

## ESTABLISHED
Microsoft Entraの共有デバイスモードは、対応アプリ間のサインイン・サインアウトを支援します。ただし全アプリへ無条件に適用される機能ではなく、アプリ側の対応が必要です[S1: Supporting shared device mode]。

AndroidのMSAL文書は、共有モードで単一アカウント方式を使用すること、利用時やバックグラウンドからの復帰時に利用者を確認することを説明しています。特に、グローバルなサインアウトでアカウントとキャッシュ済みトークンを除去しても、アプリケーションのデータは自動的に消去されず、開発者が処理する必要があると明記しています[S2: Modify your Android application / Globally sign out]。これはAndroid向けの具体的な製品契約であり、iOS・ブラウザ・任意のAIクライアントへ同じ挙動を推定しません。

OWASPのSession Management Cheat Sheetは、サーバー側でのセッション無効化、タイムアウト、ログアウト、ブラウザ側の保存とキャッシュの扱いを説明しています[S3: Session Expiration / Web Content Caching / Web Storage]。共有端末でのAI固有のメモリ分離は、本記事がこの基礎の上へ提案する制御です。

## ISOLATION_BOUNDARIES
| 面 | 分離対象 | 次の利用者へ渡す前の確認 |
| --- | --- | --- |
| 認証 | 利用者、tenant、session、refresh token、broker | 旧主体のsessionを再利用できない |
| 画面 | 会話、検索候補、通知、音声再生、タスク一覧 | 戻る操作や復帰で旧内容が出ない |
| 端末内 | cache、DB、添付、音声、clipboard、download | 管理範囲の残留を消去または隔離 |
| サーバー | 会話ID、長期memory、検索履歴、file参照 | 新主体から旧主体のIDを読めない |
| 連携 | connector token、委任権限、承認、宛先 | 旧主体の権限で新しい操作をしない |
| 実行中処理 | stream、job、再試行、通知、callback | 旧結果が新画面へ混入しない |

端末IDを利用者IDの代わりにしません。サーバーの認可ではtenantと利用者を信頼できる認証情報から導き、端末が送った会話所有者の自己申告だけで許可しないようにします。作業場所やシフトが同じでも、全員が同じ顧客情報を見てよいとは限りません。共有知識と個人・案件の会話履歴を別の権限範囲で管理します。

## TRANSITION_PROTOCOL
以下は辞典の提案です。交代時は、旧セッションの新規操作を止め、画面を直ちに覆い、旧主体に紐付くstream・音声・保留中のUI更新を無効にします。認証の終了と端末内データの清掃を実施し、完了を確認してから次の認証を許可します。一部の清掃に失敗した場合は、通常の引渡し画面へ進めず、管理された復旧経路にします。

このとき「ネットワーク要求を取消した」だけで、外部への送信や発注が取り消せたとは判断しません。成立済み・結果不明の操作は旧主体の監査記録に残し、権限のある担当者が照合します。監査記録の保存と、端末上の表示・アクセスの排除も別です。ログアウトのためにサーバーの保存義務や調査証拠を無条件に削除しません。

遅れて戻る結果には、開始時のtenant、利用者、セッション世代を付けます。画面へ反映する直前に現在値と比較し、一致しない結果を破棄します。これはクライアントの表示制御であり、サーバーの認可の代替ではありません。再ログインした同一人物でも世代が異なれば、前セッションで始めた更新を自動採用しないことを基本に、明示的な再開条件を設けます。

## FAILURE_AND_VERIFICATION
架空の利用者A・Bと架空データを用い、少なくとも次の経路を検査します。実顧客の機密を漏えいさせて試験しません。

| 試験 | 期待する結果 |
| --- | --- |
| A退出直後にBが利用 | Aの会話・添付・検索候補が表示されない |
| AのstreamがB認証後に到着 | Bの画面・通知・音声へ反映されない |
| アプリをバックグラウンドから復帰 | 現主体を確認するまで旧画面を露出しない |
| 旧会話IDやfile URLをBが指定 | サーバーが所有者・ACLを確認して拒否 |
| ネットワーク断でログアウト | 不確実な認証状態のまま次の利用を開始しない |
| 清掃途中の強制終了・再起動 | 未清掃を検出して通常利用を止める |
| 旧承認や再試行が残る | 新主体へ承認を移譲せず旧操作の結果を照合 |

ブラウザでは戻る履歴、タブ複製、Service Workerのcache、ローカル保存、ダウンロードを含めて確認します。機密画面のキャッシュ方針はHTTPヘッダーとアプリ両方で設定し、表示を消しただけで端末上の全コピーが消えたとは主張しません。ネイティブアプリではOSの通知、アプリ切替時のプレビュー、共有シート、音声再生を確認します。clipboardやダウンロードなどアプリが完全に回収できない面には、持出し制限・管理端末の設定・利用手順を組み合わせます。

## INDEPENDENT_FAILURE_SIGNAL
MSAL Androidの公開issue #2510には、共有デバイスのサインアウトと条件付きアクセスを組み合わせる構成に関する質問があります[S4]。公開の質問は製品の不具合が確定した証拠でも、全環境での解決が保証された証拠でもありません。認証方式や端末構成を指定せず、共有モードという名称だけで利用可能性を判断しないための追加の照合対象です。製品文書の挙動と現場構成の成立を別に検証します。

## LIMITATIONS_AND_OPEN_UNKNOWN
本記事では実端末・実tenantのサインアウト、MDM設定、ブラウザ残留検査は実施していません。使用中のAI製品、対応アプリ、OS・SDK版、broker、offline方針、server側失効時刻、メモリ保存範囲、connector tokenの失効方法は組織ごとに確認が必要です。プロンプトに「前の利用者を忘れろ」と書くことは、認可や保存制御の代わりになりません。

## SAFE_WORDING
「対象構成で、利用者交代・遅延応答・旧IDアクセス・清掃失敗を検査した」と表現します。グローバルサインアウト機能の存在だけから、全アプリ・全AIメモリの安全な消去を保証しません。

## SOURCES
- [S1] Microsoft, Shared device mode overview. https://learn.microsoft.com/en-us/entra/identity-platform/msal-shared-devices （製品仕様、2026-10-20確認）
- [S2] Microsoft, Shared device mode for Android devices. https://learn.microsoft.com/en-us/entra/msal/android/shared-devices （single-account / user change / global sign-out、同日確認）
- [S3] OWASP, Session Management Cheat Sheet. https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html （開発主体による指針、同日確認）
- [S4] MSAL Android issue #2510. https://github.com/AzureAD/microsoft-authentication-library-for-android/issues/2510 （公開利用者報告の存在を確認。確定不具合・修正版とは扱わない）
- 来歴: 統合台帳・原案台帳EA-529。既存の採集状態を分離実証や研究完成の証拠にしていません。

NEXT: /agent/start.json
STOP: This is a knowledge projection, not an execution order.