この記事では、エージェント テスト フレームワークの概要と、エージェント テスト ランナー Power Apps コンポーネント フレームワーク (PCF) を使用して Copilot Studio エージェントをテストするための Microsoft 認証を設定する手順について説明します。
Architecture
Microsoft 認証は、テストシナリオ用に最適化された、ブラウザーからエージェント SDK への簡略化されたアーキテクチャを提供します。 この方法により、追加の認証インフラストラクチャを必要とせずに、テスト環境と Copilot Studio エージェント間の安全な通信が可能になります。
フロー アーキテクチャ
次のシーケンス図は、認証とテストの実行フローを示しています。
コンポーネント アーキテクチャ
次の図は、エージェント テスト ランナーの Microsoft 認証フローに関連する主要なコンポーネントを示しています。
Microsoft 認証を設定する
セットアップ プロセスには、Azure Active Directory アプリの登録の構成、Copilot Studio からのエージェント識別子の取得、Dataverse での構成レコードの作成が含まれます。
Azure portal
Azure portal で、アプリの登録を作成し、リダイレクト URL を追加して、API のアクセス許可を構成します。
注
テナント管理権限がある場合は、API のアクセス許可を構成できます。 それ以外の場合は、テナント管理者に依頼する必要があります。
Azure portal でアプリの登録を作成します。
アプリケーション (クライアント) ID とディレクトリ (テナント) ID の両方をコピーしてください。 これらの値は 、[概要 ] ページから取得できます。
Azure portal で API のアクセス許可を構成します。
アプリの登録で、 API のアクセス許可に移動します。
[アクセス許可の追加] を選択します。
[所属する組織で使用している API] タブを選択します。
Power Platform API を検索します。
注
一覧に Power Platform API が表示されない場合は、テナントに API を追加する必要があります。 Power Platform API 認証手順 2 の手順に従います。
[委任されたアクセス許可] を選択します。
[CopilotStudio] で、[CopilotStudio.Copilots.Invoke] を選択します。
アクセス許可の追加 を選択します。
あなたの組織に対して管理者同意を付与する<を選択します>。 ボタンが使用できない場合は、テナント管理者に依頼する必要があります。
Azure portal でトークン設定の構成を含むリダイレクト URL を追加します。
アプリの登録で [認証 ] に移動します。
[ プラットフォームの構成] で、[ プラットフォームの追加] を選択します。
シングル ページ アプリケーションを選択します。
次の形式で環境 URL を入力します。
https://[your-org].crm.dynamics.comアクセス トークン (暗黙的フローに使用) と ID トークン (暗黙的フローとハイブリッド フローに使用) の両方を選択します。
設定を選択します。
[サポートされているアカウントの種類] がこの組織ディレクトリの [アカウント] にのみ設定されていることを確認します。
Copilot Studio と Dataverse
Copilot Studio で、エージェントの環境 ID とエージェント識別子を取得して、Dataverse にエージェント構成レコードを作成します。
Copilot Studio で次を行います:
正しい環境にあることを確認します。
テストするエージェントを選択し、発行されていることを確認します。
[設定] で、[詳細設定>Metadata] を選択します。
[環境 ID] と [スキーマ名] の値をコピーします。 スキーマ名は エージェント識別子 であり、
cr123_agentname形式を使用します。
前の手順の値を使用して、Dataverse に エージェント構成 レコードを作成します。
フィールド 価値 Example ユーザー認証 Microsoft 認証 クライアント ID Azure portal の手順 1 のアプリケーション (クライアント) ID。 12345678-1234-1234-1234-123456789012テナント ID Azure portal の手順 1 のディレクトリ (テナント) ID。 87654321-4321-4321-4321-210987654321環境 ID 前の手順の環境 ID。 11111111-2222-3333-4444-555555555555エージェント識別子 前の手順のスキーマ名。 cr123_testagent
トラブルシューティング
このセクションでは、発生する可能性がある一般的なエラーのトラブルシューティング手順について説明します。
認証エラー
エラー: "AADSTS50011: 要求で指定された応答 URL が一致しません"
原因: Azure アプリの登録におけるリダイレクト URI の不一致。
解決策:
- Azure portal で、[アプリの 登録 ] に移動し、[ 管理>認証] を選択します。
- リダイレクト URI が環境 URL と正確に一致していることを確認します。
- 次の形式を使用します。
https://[your-org].crm.dynamics.com
エラー: "AADSTS65001: ユーザーまたは管理者が同意していません"
原因: API のアクセス許可または管理者の同意がありません。
解決策:
- Azure portal で、[アプリの 登録 ] に移動し、[ 管理>API アクセス許可] を選択します。
- CopilotStudio.Copilots.Invoke アクセス許可が追加されていることを確認します。
- 管理者の同意を許可する を選択します。
サインイン ポップアップが毎回表示される
原因: アカウントがキャッシュされていないか、ブラウザーの設定によってトークンストレージが妨げられます。
解決策:
- ブラウザーで Dynamics ドメインのポップアップ ウィンドウが許可されていることを確認します。
- ブラウザーがシークレット モードまたはプライベート モードであることを確認します。
- ブラウザーがサードパーティの Cookie をブロックしていないことを確認します。
- ブラウザーのキャッシュをクリアして、もう一度やり直してください。
- 組織のポリシーによって再認証が強制されているかどうかを確認します。
エラー: ブラウザーコンソール内の「InteractionRequiredAuthError」
原因: サイレント認証が失敗し、対話型サインインがトリガーされた場合の通常の動作。
想定される動作:
- このエラーは、サイレント認証が失敗したときに発生します。
- サインイン ポップアップが自動的に表示されます。
アクションが必要: なし。
エージェント SDK エラー
エラー: "404 Not Found - Agent not found" (404 が見つかりません - エージェントが見つかりません)
原因: エージェント ID または環境 ID が正しくありません。
解決策:
- Copilot Studio の [設定] > [Advanced > Metadata] で、エージェント識別子 (スキーマ名) を確認します。
- 環境 ID が、エージェントが発行されている環境と一致していることを確認します。
- エージェントが公開されており、アクセス可能であることを確認します。
エラー: "401 Unauthorized"
原因: 認証トークンの問題。
解決策:
- ユーザーが Copilot Studio 環境にアクセスできるかどうかを確認します。
- Azure アプリの登録アクセス許可を確認します。
- ブラウザーのキャッシュをクリアし、認証を再試行します。
エラー: "403 Forbidden"
原因: エージェントにアクセスするためのアクセス許可が不十分です。
解決策:
- ユーザーが Dataverse で適切なセキュリティ ロールを持っていることを確認します。
- エージェントでユーザーのセキュリティ ロールが許可されているかどうかを確認します。
- 環境のアクセス許可を確認します。
エージェント テストランナー コントロールエラー
エラー: "認証サービスの初期化に失敗しました"
原因: エージェント構成レコードの構成が無効です。
解決策:
- 4 つの構成値がすべて正しいことを確認します。
- クライアントID
- テナント ID
- 環境 ID
- エージェント識別子
- 余分なスペースまたは無効な文字がないか確認します。
- 4 つの構成値がすべて正しいことを確認します。
エラー: "外部サービス呼び出しがブロックされました"
原因: 外部サービスの使用が不足しています。
解決策:
-
モデル駆動型アプリのエンド ユーザーの場合:
- このエラーは、通常、デプロイまたは構成の問題を示します。
- システム管理者または開発者に問い合わせてください。
- 管理者または開発者の介入が必要であるため、この問題を解決できるユーザー アクションはありません。
-
システム管理者の場合:
- 組織のセキュリティ ポリシーによって外部呼び出しがブロックされているかどうかを確認します。
- ファイアウォールとプロキシの設定で、必要な Microsoft ドメインへの接続が許可されていることを確認します。
-
モデル駆動型アプリのエンド ユーザーの場合:
ネットワークと CORS のエラー
エラー: "CORS ポリシー: 'Access-Control-Allow-Origin' ヘッダーがありません"
原因: クロスオリジン要求がブロックされました。
解決策:
- Azure のリダイレクト URI がドメインと正確に一致していることを確認します。
- すべての URL に HTTPS を使用します。
- 混合コンテンツ (HTTP/HTTPS) の問題がないことを確認します。
エラー: "フェッチに失敗しました"
原因: ネットワーク接続またはファイアウォールの問題。
解決策:
- ネットワークの接続状態を次に対して確認してください。
login.microsoftonline.comapi.powerplatform.com
- ファイアウォールで送信 HTTPS トラフィックが許可されていることを確認します。
- 該当する場合は、プロキシ設定を確認します。
- ネットワークの接続状態を次に対して確認してください。
テスト実行エラー
エラー: "テスト実行タイムアウト"
原因: エージェントの応答に時間がかかりすぎます。
解決策:
- Copilot Studio でエージェントのパフォーマンスを確認します。
- エージェントが公開されていて正常に動作していることを確認します。
エラー: "会話の作成に失敗しました"
原因: エージェント SDK の初期化に失敗しました。
解決策:
- エージェントが公開されていることを確認します。
- Copilot Studio でエージェントの構成を確認します。
- エージェントがテスト シナリオをサポートしていることを確認します。
デバッグのヒント
ブラウザー開発者ツールを有効にする:
- F12 キーを押して開発者ツールを開きます。
- JavaScript エラーの [コンソール] タブを確認します。
- [ネットワーク] タブで失敗した要求を確認します。
認証フローを確認します。
- サインイン中に [ネットワーク] タブを監視します。
-
login.microsoftonline.comから 200 件の応答を探します。 - コンソール ログでトークンの取得を確認します。
構成を検証します。
- すべての GUID と識別子を確認します。
- 余分なスペースや特殊文字がないことを確認します。
- 環境とエージェントのアクセシビリティを確認します。
分離してテストする:
- エージェントを Copilot Studio で直接試します。