Skip to main content

OAuth 2.1とOpenID Connectを使用して、MCPクライアントがMCPサーバーに安全に接続できるようにします。ユーザー認証、APIアクセスの制御、標準に準拠したクライアント登録、スコープを限定したトークン交換に対応しています。

Model Context Protocol (MCP) は、AIアプリケーションを外部のデータソース、ツール、ワークフローに一貫したインターフェースで接続するためのオープン標準です。MCPを使えば、エージェントがSaaSアプリや社内APIを利用したり、組織固有のワークフローを実行したりできます。また、用途ごとに個別に構築しなくても、既存の統合を再利用できます。
MCPの図MCPの図
Auth0のAuth for MCPを使用すると、開発者はOAuth 2.1とOpenID Connectを用いて、MCP仕様のうち認可に関する部分を安全かつ簡単に実装できます。サインイン、標準に準拠した検出とクライアント登録、リソース単位にスコープを限定したトークン、トークン交換の機能を備えているため、接続できるエージェント、アクセスできるリソース、実行できる操作を制御できます。

保護されたMCPサーバーへのアクセス

MCPサーバーがAuth0で保護されている場合、クライアントやAI agentがアクセスするには、まずOAuth 2.0のアクセストークンを取得する必要があります。Auth0は認可フローを管理し、ユーザーが自身の選択したIDプロバイダー (Okta、Entra ID、Ping、Google Workspaceなど) で確実に認証を行い、限定された権限をエージェントに委任できるようにします。 MCPクライアントは、発行されたトークンを使用してサーバーを呼び出します。認証、トークンの発行、権限の委任はAuth0が担います。MCPサーバーはトークンを検証し、そこに含まれる認可の決定を適用します。

Auth for MCPを使用するメリットの詳細

MCPのメタデータ検出とクライアント登録

標準に準拠した検出・登録の仕組みでMCPクライアントとサーバーを登録すれば、エージェントの接続先を承認済みのリソースに限定できます。Auth0はクライアントメタデータを検証し、クライアント認証情報を発行するとともに、必要な検出エンドポイントを公開します。これにより、MCPクライアントは手動で設定しなくても、適切な認可サーバーを見つけてトークンをリクエストできます。

MCPクライアントアプリケーションの登録方法を見る

ユーザーに代わってファーストパーティAPIを呼び出す

AI agentがMCPサーバーに接続すると、サーバーはデータの読み取りやワークフローのトリガーのために、内部APIを呼び出す必要が生じることがあります。こうしたAPIを呼び出すには、ユーザーが誰なのか、そしてサーバーに何が許可されているのかを反映したトークンが必要です。 Auth0は、この委任を実現するためにOn-Behalf-Ofトークン交換を実装しています。MCPサーバーは、クライアントから受け取ったトークンを、内部API向けにスコープが限定された有効期間の短い新しいアクセストークンと交換します。これにより、Auth0がアクセスの発行と管理を一元的に担いながら、MCPサーバーはユーザーに代わって内部APIを呼び出せるようになります。

このクイックスタートで、MCPサーバーからユーザーに代わってファーストパーティAPIを呼び出す方法を確認する

ユーザーに代わってサードパーティ API を呼び出す

MCPサーバーは多くの場合、AI AgentをGoogle、Microsoft、Jira、Notionなどのサードパーティサービスに接続します。Auth0のToken Vaultは、外部APIのトークンの発行、保管、ローテーション、失効を管理し、こうした統合を担います。Token Vaultを使えば認証情報を手動で扱う必要がなくなり、最新のSaaSエコシステム全体へMCPの接続を簡単に拡張できます。

はじめに

MCPサーバーで Auth for MCP を使い始めるには、以下のリソースを参照してください。

クイックスタート

MCPサーバーの認可

ユーザーに代わってファーストパーティAPIを呼び出す

ガイド

MCPクライアントアプリケーションを登録する

resourceパラメーター互換性プロファイル

MCP InspectorでMCPサーバーをテストする

Cloudflare MCP

サンプルアプリ

Task Vantage

Token Vaultを使用したMCP

On-Behalf-Of交換を使用したMCP

MCPのサンプル

SDK

JS SDK

Python SDK