次の方法で共有


組み込みの MCP サーバー承認を構成する (プレビュー)

App Service 認証 を使用すると、MCP クライアントに ID プロバイダーによる認証を要求することで、モデル コンテキスト プロトコル (MCP) サーバーへのアクセスを制御できます。 この記事の手順に従って、アプリを MCP サーバー承認仕様 に準拠させることができます。

Important

MCP サーバー承認では、サーバーへのアクセスが定義され、個々の MCP ツールやその他のコンストラクトに対するきめ細かい制御は提供されません。

ID プロバイダーを構成する

ID プロバイダーを使用して App Service 認証を構成します。 ID プロバイダーの登録は、MCP サーバーに対して一意である必要があります。 別のアプリケーション コンポーネントから既存の登録を再利用しないでください。

登録を作成するときに、登録または ID プロバイダーのドキュメントで定義されているスコープを書き留めます。

保護されたリソース メタデータを構成する (プレビュー)

MCP サーバー承認では、サーバーが 保護されたリソース メタデータ (PRM) をホストする必要があります。 App Service 認証での PRM のサポートは現在プレビュー段階です。

MCP サーバーの PRM を構成するには、 WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES アプリケーション設定を、アプリケーションのスコープのコンマ区切りの一覧に設定します。 必要なスコープは、アプリ登録の一部として定義されるか、ID プロバイダーによって文書化されます。 たとえば、Microsoft Entra ID プロバイダーを使用し、App Service に登録を任せた場合、既定のスコープのapi://<client-id>/user_impersonationが作成されました。 WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPESをその値に設定します。

MCP クライアントに関する考慮事項

ユーザーをサインインさせるには、MCP クライアントを ID プロバイダーに登録する必要があります。 一部のプロバイダーは動的クライアント登録 (DCR) をサポートしていますが、Microsoft Entra ID など、多くはサポートしていません。 DCR が使用できない場合は、クライアント ID を使用してクライアントを事前に構成する必要があります。 クライアント ID を指定する方法については、クライアントまたはクライアント SDK のドキュメントを参照してください。

Microsoft Entra ID を使用している場合は、既知のクライアント アプリケーションを指定し、アクセス用に事前認証済みとしてマークできます。 可能な場合は事前認証をお勧めします。 事前認証を行わない場合、ユーザーまたは管理者は 、MCP サーバーの登録 と必要なアクセス許可に同意する必要があります。

ユーザーの同意シナリオでは、同意の作成には、対話型ログインを使用して同意プロンプトを表示する MCP クライアントが含まれます。 一部の MCP クライアントでは、対話型ログインが表示されない場合があります。 たとえば、Visual Studio Code で GitHub Copilot によって使用される MCP ツールを構築している場合、クライアントはログイン ユーザーのコンテキストを使用しようとしますが、同意プロンプトは表示されません。 このような場合は、同意の問題を回避するために、クライアント アプリケーションを事前認証する必要があります。

開発/テストの目的で、ブラウザーでアプリケーションに直接サインインすることで、ユーザーの同意を自分で作成できます。 <your-app-url>/.auth/login/aadに移動すると、サインイン フローが開始され、必要に応じて同意を求められます。 その後、別のクライアントからサインインを試みることができます。

MCP サーバーに関する考慮事項

App Service 認証は、MCP クライアントによって提供されるトークンを検証し、MCP 初期化要求に応答する前に構成済みの承認ポリシーを適用します。 MCP シナリオの承認規則を更新する必要がある場合があります。 たとえば、Microsoft Entra ID プロバイダーを使用し、App Service で登録を作成できるようにする場合、既定のポリシーでは、アプリ自体によって取得されたトークンのみが許可されます。 そのため、認証構成の許可されたアプリケーションの一覧に MCP クライアントを追加します。 詳細については、「 組み込みの承認ポリシーを使用する」を参照してください。

MCP サーバー フレームワークは、多くの場合、トランスポートを抽象化しますが、場合によっては、基になる HTTP コンテキストを公開する可能性があります。 HTTP コンテキストが使用可能な場合は、App Service 認証によって提供される ユーザー要求やその他の認証情報にアクセス できます。

注意事項

MCP サーバーの承認に使用されるトークンは、ダウンストリーム リソースではなく、MCP サーバーへのアクセスを表します。 サーバーがトークンを転送するパススルー シナリオでは、セキュリティの脆弱性が発生するため、これらのパターンは避けてください。 ダウンストリーム リソースにアクセスする必要がある場合は、代理フローまたは明示的な委任のための別のメカニズムを使用して新しいトークンを取得します。