コンテンツにスキップ

ソース&クレデンシャルのスコープ設定

ソース&クレデンシャルのスコープ設定(modules/sourcescope)は、実行時に 単一の問いに答えます。すなわち、エージェントやセッションが接続済みのソース(MCP サーバー、 モデル、プロバイダー、ナレッジベース、データソース)を参照するとき、このアクターは スコープ内にあるか、そしてどのクレデンシャル参照が適用されるかです。これは LIVE です。バインディングテーブル、その書き込み API、ランタイムの PEP が呼び出すリゾルバーが、 すべてバイナリに同梱されています。

これがカラムではなくモジュールである理由は、ここで強制されるスコープがいずれか1つの ソースエンティティの属性ではないからです。MCP 設定、モデル、プロバイダー、ナレッジベースは 異なるモジュールに存在し、ワークスペースをそもそも持つのはエージェント/セッション/リソースの 軸だけです。スコープはバインディングです: (source) → (workspace または agent-group)。これに省略可能なスコープ付きクレデンシャル参照を伴います。このモジュールが そのバインディングテーブルとリゾルバーを所有します。

/v1/m/sourcescope/bindings は標準的な CRUD 面で、sourcescope:binding:read:binding:write でゲートされます。バインディングは1つのソース種別(mcpmodelproviderknowledgedata)と1つのスコープツリー(workspaceagent_group)を 対象とし、値を持たない CredRef(論理名、ref_kind ロケーター(envvaultsecret_managerfileother)、省略可能なマスク済みヒント)を伴います。いずれの フィールドも利用可能なシークレットを保持できません。ハンドラーはインラインの クレデンシャルを拒否します。これは capabilities.mcp_config.secret_refs と同じ 最小データ不変条件です。

判定は deny-closed かつ合成的であり、2つ目の認可エンジンではありません。

  • 包含(Containment) — ワークスペース W に紐づけられたソースは、W 内のエージェントや セッションが追加設定なしで解決できます。
  • グラント(Grant)vi-governance からの、 x-models をまたぐスコープ付き Cedar グラントが、 別のワークスペースを開きます。
  • RBAC — テナント全体の権限は依然としてすべてを見渡せます。ワークスペースは ソフトアイソレーションであり、テナントがハードな境界です。
  • Forbid — スコープ付き Cedar の forbid は上記すべてを上書きします。

このゲートは**加算的(additive)**です。バインドされていないソースは後方互換のため グローバルなままです。バインドされているが包含するスコープも、グラントも、RBAC も ないソースは 拒否(denied) されます。リゾルバーは、モデルの execute-chain と viii-knowledge の検索(retrieval)に ScopeGate として組み込まれています。

境界づけられたコンテキスト(率直に)

Section titled “境界づけられたコンテキスト(率直に)”
  • これは参照バインディングのみです。実際のプロバイダー呼び出しにおける スコープ付きクレデンシャルの消費、およびエージェントの代理でサーバーへ接続する ランタイムの MCP ブローカーは、まだツリー内に存在しません。リゾルバーは スコープ内の参照を返しますが、ここではそれを使ってアウトバウンド呼び出しを認証する ものは何もありません。
  • アクターのスコープは、呼び出し元のアクター参照によって指定されたエージェント/ セッションから得られます。スコープ値は格納された行から読み取られます(呼び出し元が ワークスペースを注入することはできません)が、どのエージェントを選ぶかは呼び出し元 次第です。その参照をプリンシパルに束縛することは、ハードニングのフォローアップです。 honesty and limits を参照してください。
  • Governance (vi) — リゾルバーが合成する Cedar の grant/forbid 代数と RBAC。
  • Models (x)ScopeGate が動く execute-chain。
  • Knowledge (viii) — ガバナンス下の検索。 リゾルバーがゲートする2つ目の場所。