MCP 属性ベースのアクセス制御ポリシー

ポリシー名

MCP 属性ベースのアクセス制御

概要

層、IP、ヘッダー、クレームなどのユーザー情報に基づいてツール、リソース、プロンプトへのアクセスを制御します。

カテゴリ

MCP

使用可能な最小 Flex Gateway バージョン

v1.9.3

返される状況コード

400 - 無効なトークン

このポリシーでは、モデルコンテキストプロトコル (MCP) バージョン 2025-06-18 以前がサポートされます。MCP についての詳細は、 「MCP Specification (MCP 仕様)」​を参照してください。

概要

MCP 属性ベースのアクセス制御ポリシーでは、ランク、IP、ヘッダー、クレームなどのユーザー情報に基づいてサーバーツール、リソース、プロンプトへのアクセスを制御します。アクセスルールを定義するには Cedar ポリシー言語​を使用します。

このポリシーを使用するには、MCP 属性ベースのアクセス制御ポリシーの前に別の認証ポリシーを適用する必要があります。詳しい案内については、​Cedar ルールの記述​を参照してください。

ポリシーのパラメーターの設定

Flex Gateway のローカルモード

MCP 属性ベースのアクセス制御ポリシーは、ローカルモードではサポートされません。

管理 Flex Gateway および Flex Gateway の接続モード

UI からポリシーを API インスタンスに適用するときに、以下のパラメーターが表示されます。

要素 説明

Rules (ルール)

Cedar ポリシー言語​で記述されたツール、リソース、プロンプトへのアクセスを制御するルール。

Cedar Expression (Cedar 式)

アクセスルールを定義する Cedar 式。例: permit(principal,action == Action::"tools/call​ や ​resource == Tool::"calculator");​。要求によって提供される Cedar バインドについての詳細は、​Cedar ルールの記述​を参照してください。

認証種別

このポリシーの前に適用される認証ポリシーによって使用される認証の種別。

Cedar ルールの記述

MCP 属性ベースのアクセス制御ポリシーの前に、内部認証ポリシーまたはカスタム認証ポリシーを適用する必要があります。

内部認証ポリシー

適用したポリシーは、使用可能な Cedar ​principal​ バインドに影響します。

カスタム認証ポリシー

カスタム認証ポリシーでは、​Authentication​ injectable を使用してカスタムポリシーでの認証を行う必要があります。​Authentication​ injectable を設定するには、Accessing Request Authentication Informationを参照してください。

Rust ​AuthenticationData​ 構造の場合:

pub struct AuthenticationData {
    pub principal: Option<String>,
    pub client_id: Option<String>,
    pub client_name: Option<String>,
    pub properties: Value,
}

AuthenticationData​ パラメーターは次の Cedar バインドにマップします:

  • principal​: principal.principal

  • client_name​: principal.client_name

  • properties​: principal.properties.*