Microsoft 365 Copilot のエージェントは、プラグインを通じてバックエンド サービスに接続します。 プラグインは、モデル コンテキスト プロトコル (MCP) サーバーまたは OpenAPI ドキュメントによって記述された API をラップできます。 プラグインが保護された MCP サーバーまたは API にアクセスできるようにするには、Microsoft 365 Copilot がサインイン ユーザーに代わって適切な資格情報を取得して送信できるように認証スキームを構成します。
注:
本記事で "プラグイン " とは、宣言型エージェント用のプラグイン マニフェストによって構成された技術的な MCP または API カスタム アクションを意味します。 より広範な顧客向けプラグイン製品、パッケージ、レジストリ、ライフサイクルについては、「Microsoft 365 Copilot のプラグイン」を参照してください。
このドキュメント セットでは、既定のチュートリアルとして MCP プラグイン (MCP サーバーまたは MCP アクションとも呼ばれます) を使用します。 各記事に記載されている場合を除き、OpenAPI ドキュメントからビルドされた API プラグインにも同じ構成手順が適用されます。
サポートされている認証スキーム
MCP サーバーまたは API がエンドポイントを保護する方法に一致する認証スキームを選択します。
| 認証スキーム | MCP プラグイン | API プラグイン。 | 記事 |
|---|---|---|---|
| Microsoft Entra シングル サインオン (SSO) | サポート | サポート | Microsoft Entra SSO 認証を構成する |
| 動的クライアント登録 (DCR) | サポート | サポート対象外 | 動的クライアント登録の構成 |
| OAuth 2.0 認証コード フロー | サポート | サポート | OAuth 2.0 認証を構成する |
| API キー | 非サポート | サポート | API キー認証を構成する |
| 認証なし (匿名) | サポート | サポート | 認証なしの構成 (匿名) |
注:
この記事では、プラグイン マニフェストで構成する プラグインの認証について説明します。 MCP サーバーを エージェント コネクタ として登録する場合は異なるサーフェスになります。Microsoft 365 アプリ マニフェストで agentConnectors ノードに対する承認を宣言します。 サポートされている承認の種類は、次の表のプラグイン スキームとは異なります。 たとえば、API キー認証は API プラグインでのみサポートされており、MCP プラグインではサポートされていません。 2 つのマニフェスト間のこの違いは、エラーではなく、想定されたことです。 エージェント コネクタの承認については、「 MCP サーバーをエージェント コネクタとして登録する」を参照してください。
プラグイン認証のしくみ
各スキームは、 認証構成 (auth config) に依存します。これは、Microsoft Enterprise トークン ストアに保存されるレコードで、MCP サーバーまたは API への認証に必要な資格情報またはクライアントの詳細情報を保持します。 認証構成は、次の 3 つの方法のいずれかで作成します。
- Microsoft 365 Agents Toolkit では、認証構成が作成され、エージェントのビルド時にプラグイン マニフェストが自動的に更新されます。
- 宣言型エージェントの開発者スキル (MCP プラグインのみ) は、認証構成を作成し、自然言語の命令からマニフェストを更新します。
- Microsoft Teams 開発者ポータルを使用すると 、手動で認証構成を作成したり、エージェント ツールキットまたはスキルで作成した認証構成を管理したりできます。
プラグイン マニフェストは、 ランタイム認証オブジェクトの ID によって認証構成を参照します。 実行時に、Microsoft 365 Copilot は認証構成を使用してトークン ストアからトークンまたは API キーを取得し、プラグインが MCP サーバーまたは API を呼び出すときにそれを含めます。
選択した認証スキームの記事に従って、その特定の種類を構成します。
注:
Cowork MCP プラグインの場合は、これらの記事で説明されているのと同じ認証構成モデルに従います。 OAuth プロバイダーが Microsoft ID プラットフォーム を使用し、プラグインでトークンの自動更新が必要な場合は、API 固有の委任スコープを使用して [Scope] フィールドにoffline_accessを含めます。