Upgrade to Pro — share decks privately, control downloads, hide ads and more …

セキュアな認可付きリモートMCPサーバーをAWSマネージドサービスでつくろう! / Let's...

セキュアな認可付きリモートMCPサーバーをAWSマネージドサービスでつくろう! / Let's build an OAuth protected remote MCP server based on AWS managed services

2025/10/11
JAWS FESTA 2025 in 金沢
https://jawsfesta2025.jaws-ug.jp/

セキュアな認可付きリモートMCPサーバーをAWSマネージドサービスでつくろう!

高井 真人
ソフトウェアエンジニア

Avatar for 株式会社カミナシ

株式会社カミナシ

October 10, 2025
Tweet

More Decks by 株式会社カミナシ

Other Decks in Technology

Transcript

  1. MCPの認可仕様:基本的なフロー MCPクライアント MCPサーバー 認可サーバー 接続リクエスト WWW-Authentication: <保護リソースメタデータのURL> 保護リソースメタデータを要求 認可サーバーメタデータを要求 動的クライアント登録

    MCPクライアントが認可リクエストするために、自身を OAuthクライアントとして登録する。 MCPの仕様では動的クライアント登録に対応していなくても クライアントIDとシークレットをハードコードしてもよいと あるが、例えばMCP Inspectorでは動的クライアント登録の フローを前提として動く。 [1] MCP Inspector: https://github.com/modelcontextprotocol/inspector
  2. MCPの認可における実装上の課題 MCPサーバー (OAuthリソースサーバー) 認可サーバー RFC Draft OAuth 2.1 RFC9728 保護リソースサーバー

    メタデータ RFC8414 認可サーバーメタデータ RFC7591 動的クライアント登録 Cognitoも含めて、この2つの仕様に対応して いるIDaaSやOSSの認可サーバーはほぼない 多くの一般的な認可サーバーは認可サーバーメタデータや動的クライアント登録に未対応だが、 MCPの認可仕様に沿った認可付きのリモートMCPサーバーを作るには、これらの仕様に対応した認可 サーバーを用意しなければならない RFC Draft OAuth 2.1
  3. MCPゲートウェイの実装パターン MCPサーバーのプロキシとしての ゲートウェイ 例:Bedrock AgentCore Gateway 認可サーバーも含めたMCP仕様との ギャップを埋めるゲートウェイ 例:hyprMCP Gateway、本発表構成

    MCPゲートウェイ MCPサーバー 認可サーバー 認可サーバーメタデータや動的クライアント登録 ができないのでMCP Inspectorなどが通らない MCPゲートウェイ MCPサーバー 認可サーバー 仕様のギャップをMCPゲートウェイで吸収 MCPゲートウェイの実装パターンとして、MCPサーバー(リソースサーバー部分)だけカバーする形式と 認可サーバーの仕様ギャップもカバーする形式の2種類がある。 [2] Hypr MCP Gateway: https://github.com/hyprmcp/mcp-gateway
  4. Amazon API GatewayとAmazon Cognitoで認可付きリモートMCPサーバーを作ってみよう MCP Inspector MCPサーバー (AWS Lambda) 認可サーバー

    (Cognito) MCPゲートウェイ (API Gateway) 本発表で構成するMCPゲートウェイの全体構成図。 Lambdaの部分はElastic Container Service(ECS)など他のサービスでも問題ない。 なぜAPI Gatewayなのか: - 追加のコンピューティングリソースを用意しなくてよい - ルーティングやレートリミット、認可に関する基本的な機構はすでに揃っている *APIタイプはREST APIを選択
  5. 動的クライアント登録エンドポイントの実装 Cognitoオーソライザー ゲートウェイレスポンス /.well-known/oauth-protected -resource/mcp Mock統合 /.well-known/oauth-authoriza tion-server Mock統合 /register

    AWSサービス統合 AWSサービス統合によってCognitoのAPI [1]をバックエンドとして利用する。 ただし、RFC 7591とリクエスト形式が異なるため、API Gatewayのリクエスト テンプレートマッピング機能によってMCPクライアントのリクエストを変換して Cognitoにクライントを作成する。 Cognitoの応答もRFC 7591と異なるためレスポンステンプレートマッピング機 能によって仕様ギャップを埋める。 [1] Cognito クライアント作成APIのリファレンス https://docs.aws.amazon.com/ja_jp/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html
  6. - 2025-06-18版の現行MCP認可仕様は4つのOAuth拡張仕様からできている - 一部の仕様は一般的なIDaaSにおいて非対応のため困ることが多い - MCPゲートウェイというアーキテクチャパターン - ルーティング、レート制限、認可やオブザーバビリティなどを集約できる - 複数のMCPサーバーをまとめて統制できるので組織的なスケールが容易

    - Amazon API GatewayによるMCPゲートウェイの実装 - 追加のコンピューティングリソースが不要 - Mock統合やAWSサービス統合+リクエスト/レスポンスマッピングでCognitoと MCP認可仕様のギャップを埋める - 標準仕様を知ることの面白さ - 仕様を知ることで今なにができないか、これからどうなるかが分かってくる まとめ