Copilot Studio カスタムエージェントの外部脅威の検出と保護を有効化する (プレビュー)

[この記事はプレリリース ドキュメントであり、変更されることがあります。]

Copilot Studio で作成されたカスタムエージェントは既定で保護されています。 Copilot Studio のカスタムエージェントには、ユーザープロンプトインジェクション攻撃(UPIA)やクロスドメインプロンプトインジェクション攻撃(XPIA)など、さまざまな脅威に対する保護機能が標準搭載されています。 実行時に、エージェントはこの種の攻撃を遮断し、データ漏洩のリスクを低減します。

Copilot Studio では、カスタム エージェントの監視機能とセキュリティをさらに強化するため、組織は外部の脅威検出システムを構成して監視を強化できます。 これらのツールはエージェントの実行中に動作し、エージェントの活動を継続的に評価します。 システムが不審なツールやアクションを検出した場合は、その実行を阻止するために介入することができます。 この脅威検出機能により、リアルタイムの保護とコンプライアンスの強化が実現します。

重要

外部脅威検知は、生成オーケストレーションを使用する生成エージェントにのみ呼び出されます。 従来のエージェントでは、外部脅威の検知はスキップされます。

この機能の動作

外部の脅威検出システムは、ウェブサービスとして導入され、脅威検出エンドポイントを備えたREST APIが提供されます。 エージェントとエンドポイント間には安全な接続が確立されます。 実行時には、オーケストレーターがツールの呼び出しを検討するたびに、提案されたツールの使用に関する関連データを脅威検出エンドポイントに送信して評価を受けます。 脅威検知システムはデータを解析し、ツール呼び出しを許可するかブロックするかの判断を返します。

エージェントの動作中に脅威検知システムがセキュリティ上の問題を検知した場合、エージェントは直ちに処理を停止し、メッセージがブロックされたことをユーザーに通知します。 一方で、システムが操作を承認した場合、エージェントはユーザーにとって目に見える影響や中断なくシームレスに処理を継続します。

重要

この記事には Microsoft Copilot Studio プレビュー ドキュメントが含まれ、変更される可能性があります。

プレビュー機能は運用環境での使用を想定しておらず、機能が制限される可能性があります。 これらの機能は公式リリースの前に使用できるため、一足先にアクセスして フィードバックを送る ことができます。

運用に対応したエージェントを構築する場合は Microsoft Copilot Studio の概要 を参照してください。

外部脅威検出の設定オプション

Copilot Studio は、柔軟な「Bring Your Own Protection」 のアプローチをサポートしています。 組織は、独自の要件に最適なセキュリティ ソリューションを自由に統合できます。

オプションは次のとおりです。

  • 自分でカスタムモニタリングツールを開発するか、誰かに開発してもらいましょう。 エージェントが接続できるようにシステムエンドポイントを構築する方法の詳細については、Copilot Studioエージェント向けランタイム脅威検出システムの構築をご参照ください
  • Microsoft Defender による堅牢なエンタープライズソリューションを適用する
  • 他の信頼できるセキュリティプロバイダーの製品を使用する

脅威検知プロバイダーと共有されるデータは何ですか?

脅威検知システムへの接続を設定すると、エージェントは実行中に外部のセキュリティプロバイダーにデータを共有します。 エージェントは、ツールの呼び出しを検討するたびにサービスと通信します。 このデータ共有により、エージェントのユーザーのエクスペリエンスを低下させることなく、構成システムによる効率的な意思決定が保証されます。

システムと共有されるハイレベルなデータには、以下のようなものがあります:

  • ユーザーの最近のプロンプトと、エージェントとユーザー間で交換されたチャットメッセージの最新の履歴。
  • エージェントが過去に使用したツールの出力。
  • 会話メタデータ:エージェントの身元、やり取りするユーザー、ユーザーのテナント、およびトリガー(該当する場合)。
  • エージェントが呼び出したいツール。これには、そのツールが選択された理由に関するエージェント生成の推論、および提案された入力と値が含まれます。

重要

  • プロバイダーのデータ処理ポリシーは、Microsoft が使用するポリシーとは異なる可能性があります。 違いには、データが地理的な地域外で処理・保存される場合が含まれます。
  • プロバイダーおよび契約条件が、組織のデータ保護に必要な基準や規制を満たしていることを必ず確認してください。
  • 脅威検知サービスとのデータ共有をブロックしたい場合は、いつでも統合を解除できます。

必要条件

開始する前に、次のことが必要です。

  • エージェントのツール使用リクエストを評価するように設定された外部脅威検出サービス。 サービスはREST APIエンドポイントを公開する必要があります。 Copilot Studio 側の連携設定には、セキュリティプロバイダーの Web サービスのベース URL が必要です。 本記事ではこの URL をエンドポイントと呼んでいます。 エージェントはこのベース URL の API に脅威検出のリクエストを送信します。 この URL はセキュリティプロバイダーから入手してください。
  • 認証用アプリケーションを登録できるMicrosoft Entraテナント(エージェントと脅威検出サービス間の認証用)
  • Power Platform管理者ロールを持つユーザー(個別環境レベルおよび環境グループレベルで、エージェントと外部脅威検出システム間の接続を構成するため)。

外部脅威検知システムの構成

エージェントに外部脅威検知システムを構成するプロセスには、2 つのステップがあります:

  1. Microsoft Entra アプリケーションを作成する。

  2. Power Platform 管理センターで脅威検出を構成する。

ステップ 1: Microsoft Entra アプリケーションの構成

Microsoft Entra アプリケーションの構成には、2 つのパスが使用できます。

  • オプション A: PowerShell スクリプトを使用して構成する (推奨)
  • オプション B: Azure portal を使用して手動で構成する

提供されているPowerShellスクリプトを使って、Microsoft Entraアプリケーションの作成と設定を自動化できます。

PowerShell の構成の前提条件

  • Windows PowerShell 5.1 以降
  • Microsoft Entra テナントにおいてアプリケーション登録の作成に十分な権限
  • 脅威検出WebサービスのベースURL。 このURLは、後述のスクリプトパラメーターで Endpoint として参照されます。 この URL はセキュリティプロバイダーから入手してください。
  • 組織の Microsoft Entra テナント ID。 テナント ID は以降のスクリプトパラメーター内で TenantId として参照されます。

スクリプトをダウンロードして準備する

Create-CopilotWebhookApp.ps1 スクリプトのダウンロード。

スクリプト パラメーター

このスクリプトは、次のパラメーターを受け取ります:

パラメーター タイプ Required 内容
TenantId 文字列 GUID 形式の Microsoft Entra テナント ID (例: 12345678-1234-1234-1234-123456789012)。
エンドポイント 文字列 外部脅威検出サービスのベースURL(セキュリティプロバイダーが提供するもの)。 Microsoft Defenderをセキュリティプロバイダーとして使用している場合は、Defender ポータルからエンドポイントを取得できます。
DisplayName 文字列 アプリケーション登録用に指定する一意の表示名。 1〜120 文字にできます。
FICName 文字列 フェデレーション ID 資格情報に指定する一意の名前。 1〜120 文字にできます。
DryRun Switch いいえ 任意のフラグ。 -DryRun フラグを指定すると、スクリプトはリソースを作成せずに検証を行います。

スクリプトの実行

アプリケーションを作成する方法:

  1. 管理者として Windows PowerShell を開きます。

  2. スクリプトが含まれているディレクトリに移動します。

  3. 以下のスクリプトを実行し、TenantIdEndpointDisplayNameFICName のプレースホルダー値を独自のパラメータに置き換えてください。

    .\Create-CopilotWebhookApp.ps1 `
    -TenantId "11111111-2222-3333-4444-555555555555" `
    -Endpoint "https://provider.example.com/threat_detection/copilot" `
    -DisplayName "Copilot Security Integration - Production" `
    -FICName "ProductionFIC"
    

対話型スクリプトはコマンドライン上で実行されます。 スクリプトは作成された Microsoft Entra アプリケーションのアプリ ID を出力します。 Power Platform 管理センターで脅威検出を構成する際には、後ほどアプリ ID が必要となります。

オプション B: Azure portal を使用して手動で構成する

手動構成の前提条件

  • 組織の Microsoft Entra テナント ID。 以降の手順では、テナント ID は tenantId と表記されています。
  • Microsoft Entra テナントにおいてアプリケーション登録の作成に十分な権限。
  • ご利用中の脅威検出ウェブサービスの基本 URL。 これは今後の手順でエンドポイントと呼ばれます。 この URL はセキュリティプロバイダーから入手してください。

Microsoft Entra アプリケーションを登録する

Microsoft Entra アプリケーション登録を作成するには、次の手順に従います。 このアプリケーションは、エージェントと脅威検出ウェブサービス間の認証を確保するために使用されます。 このようなアプリを作成する方法については、Microsoft Entra ID にアプリケーションを登録する を参照してください。

  1. Azure portal にサインインし、Microsoft Entra ID のページに移動します。

  2. アプリの登録で、新しい登録を選択します。

  3. サポートされているアカウントの種類として、名前を指定し、この組織のディレクトリ内のアカウントのみ (シングル テナント)を選択します。

  4. アプリを登録します。

  5. アプリが作成されたら、アプリ ID をコピーしてください。 Power Platform 管理センターで脅威検出を構成する際には、後ほどアプリ ID が必要となります。

選択したプロバイダで Microsoft Entra アプリケーションを認証する

エージェントは、脅威検出システムプロバイダーとデータを交換するための安全でシークレット不要の認証方法として、Federated Identity Credentials(FIC)を使用します。 次の手順に従って、Microsoft Entra アプリケーションの FIC を構成します。 詳細については、外部 ID プロバイダーを信頼するユーザー割り当てマネージド ID の設定方法 を参照してください。

  1. Azure portal を開き、アプリの登録に進みます。 上記の手順 1 で作成したアプリケーションを選択します。

  2. サイドバーで、管理>認証 &シークレット>フェデレーション資格情報を選択します。

  3. 資格情報の追加を選択します。

  4. フェデレーション資格情報のシナリオのドロップダウンで、その他の発行者を選択します。

  5. 次の手順に従ってフィールドに入力します:

    • 発行者: 以下のURLを入力し、{tenantId} を組織の Microsoft Entra テナント ID に置き換えてください: https://login.microsoftonline.com/{tenantId}/v2.0

    • : 明示的なサブジェクト識別子を選択します。

    • : 次のように構造化された文字列を入力します: /eid1/c/pub/t/{base 64 encoded tenantId}/a/m1WPnYRZpEaQKq1Cceg--g/{base 64 encoded endpoint}

      組織のMicrosoft Entraテナント ID と脅威検知 Web サービスのベース URL に対してBase64エンコーディングを実行してください。 プレースホルダー {base 64 encoded tenantId} をBase64でエンコードしたテナント ID の値に、{base 64 encoded endpoint} をBase64でエンコードしたベース URL の値に置き換えてください。

      テナント ID とエンドポイント URL をBase64でエンコードするには、次のPowerShellスクリプトを使用してください。 必ず、プレースホルダー値「11111111-2222-3333-4444-555555555555」と「https://provider.example.com/threat_detection/copilot"」を、ご自身のテナント ID とエンドポイント URL の実際の値に置き換えてください。

      # Encoding tenant ID
      $tenantId = [Guid]::Parse("11111111-2222-3333-4444-555555555555")
      $base64EncodedTenantId = [Convert]::ToBase64String($tenantId.ToByteArray()).Replace('+','-').Replace('/','_').TrimEnd('=')
      Write-Output $base64EncodedTenantId
      
      # Encoding the endpoint
      $endpointURL = "https://provider.example.com/threat_detection/copilot"
      $base64EncodedEndpointURL = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($endpointURL)).Replace('+','-').Replace('/','_').TrimEnd('=')
      Write-Output $base64EncodedEndpointURL
      
    • 名前: わかりやすい名前を選択します。

  6. 追加ボタンを選択します。

手順 2: 脅威検出システムを構成する

次に、Power Platform管理センターで脅威検出システムを構成し、エージェントを外部セキュリティプロバイダーと連携させる必要があります。

Power Platform 管理センターで脅威検出を構成するための前提条件

  • 前の手順で作成したMicrosoft Entraアプリケーションのアプリ ID。
  • 外部監視システムのプロバイダーが提供するエンドポイントリンク。 エンドポイントリンクは、Microsoft Entraアプリケーションの設定時に使うベースURLエンドポイントと同じです。
  • 接続を構成するためのPower Platform管理者ロールを持つユーザー。
  • セキュリティプロバイダーが登録済みアプリケーションの承認に必要とするその他の手順も実行してください。 特定のオンボーディングおよび承認手順については、プロバイダーのドキュメント(該当する場合)を確認してください。

Power Platform管理センターで脅威検知システムを設定するには、以下の手順に従ってください。

  1. Power Platform 管理センター にサインインします。

  2. サイド ナビゲーションで [セキュリティ] を選択し、次に [脅威の検出] を選択します。 脅威の検知ページが開きます。

  3. [追加の脅威検出] を選択します。 ウィンドウが開きます。

  4. エージェント保護を強化したい環境を選択し、セットアップを選択します。 ウィンドウが開きます。

  5. [Copilot Studio が脅威検出プロバイダーとデータを共有することを許可する] を選択します。

  6. Azure Entra App ID 欄に、以前作成した Microsoft Entra アプリケーションのアプリ ID を入力してください。

  7. 外部監視システムのプロバイダーが提供する エンドポイントリンク を入力してください。 エンドポイントリンクは、Microsoft Entraアプリケーションの設定時に使うベースURLエンドポイントと同じです。

  8. [エラー時の動作設定] では、脅威検知システムが時間内に応答しない場合やエラーが発生した場合のシステムの既定挙動を定義します。 既定では エージェントの応答を許可に設定されていますが、リスクをさらに低減するために クエリをブロック オプションを選択することもできます。

    紙幣

    脅威の検出を構成すると、エージェントによるツールの呼び出し前に脅威の検出システムがトリガーされます。 エージェントがシステムから(許可またはブロックの)決定を1秒以内に受け取らない場合、デフォルトでは許可され、ツールの実行が計画通りに進みます。 既定の動作を変更するには、[エラー動作の設定] を構成してください。

  9. 保存を選択します。

重要

Microsoft Entra アプリが Microsoft Entra で正しく構成されていない場合や、選択したプロバイダーで正しく認証されていない場合、保存できません。

紙幣

Copilot Studio のすべての環境で外部セキュリティプロバイダーを自動的に有効化するグローバルまたはテナント全体の設定はありません。 外部脅威検出は、Copilot Studio 管理ポータルを通じて各環境ごとに手動で有効化する必要があります。 重要な考慮事項をいくつか以下に示します:

  • 外部セキュリティプロバイダーは環境ごとに設定されます。
  • PowerShell、API、または管理センターの設定によって、この構成を他の既存または将来の環境にグローバルに適用・伝播することはできません。
  • 環境を作成した後、新しい環境に対して脅威検出をオンにする必要があります。

トラブルシューティング​​

起こりうる問題とその対処法についての情報を以下に示します。

Power Platform 管理センターの脅威の検出構成の問題

次の表は、前述のステップで保存を選択した際に発生する可能性のある一般的なエラーと、これらのエラーの対処方法について説明したものです:

エラー 処理方法
設定の保存中に問題が発生しました。 もう一度保存をお試しください。それでも問題が解決しない場合は、管理者に問い合わせてください。 構成の保存に関する一般的な問題。 もう一度やり直してください。 それでも問題が解決しない場合は、Copilot Studio のサポートに問い合わせてください。
保護プロバイダーに接続する際に問題が発生しました。 プロバイダーに問い合わせてください。 このエラーは、提供されたエンドポイントへの呼び出しがタイムアウトまたは失敗した場合に表示されます。 プロバイダーに問い合わせ、サービスに問題がないことを確認してください。
保護プロバイダーに接続する際に問題が発生しました。 エンドポイント リンクを確認してください。 解決しない場合は、保護プロバイダーに連絡してサポートを受けてください。 このエラーは、提供されたエンドポイントへの呼び出しが失敗した場合に表示されます。 提供されたエンドポイントリンクを確認し、問題が解決しない場合は脅威検知サービスプロバイダーに連絡し、サービスにエラーが発生していないかご確認ください。
保護プロバイダーに接続する際に問題が発生しました。 もう一度試してください。それでもうまくいかない場合は、セキュリティ プロバイダーに連絡してサポートを受けてください。 このエラーは、提供されたエンドポイントへの呼び出しが失敗した場合に表示されます。 もう一度試して、それでも問題が解決しない場合は、プロバイダーに連絡して、サービスに問題が発生していないか確認してください。
構成に問題が発生しました。 入力内容とMicrosoft Entraの構成を確認してください。 それでも問題が解決しない場合は、管理者に問い合わせてください。 トークン取得に失敗しました。 Microsoft Entra アプリケーション構成とフェデレーション ID 資格情報を確認します。 具体的な問題の詳細は、[エラー情報をコピーする] を選択すると表示されます。
構成を変更するには、Power Platform の管理者権限を持っていることを確認してください。 必要な権限を持つユーザーがいること

詳細なエラー情報を確認するには、[エラー情報をコピーする] を選択してください。

Microsoft Entra と認証に関する一般的な問題

Microsoft Entra アプリと認証で発生する可能性のあるその他の一般的な問題を次に示します。

Microsoft Entra アプリケーションが存在しない

: トークンの取得に失敗しました: AADSTS700016: 識別子 '00001111-aaaa-2222-bbbb-3333cccc4444' を持つアプリケーションがディレクトリ 'Contoso' に見つかりませんでした。 これは、アプリケーションがテナントの管理者によってインストールされていないか、テナントのユーザーによって同意されていない場合に発生する可能性があります。 間違ったテナントに認証要求を送信した可能性があります。

処理方法: 指定されたアプリケーション ID が正しいこと、Azure に存在することを確認します。

アプリで FIC が構成されていない

例: トークン取得失敗: 設定の問題で認証ができません。詳細はサーバーからのエラーメッセージを確認してください。 構成は、アプリケーション登録ポータルで変更できます。 詳細は、https://aka.ms/msal-net-invalid-clientを参照してください。 元の例外: AADSTS70025: クライアント '00001111-aaaa-2222-bbbb-3333cccc4444'(Webhooks テスト) にフェデレーション ID 資格情報が構成されていません。

処理方法: 指定されたアプリに FIC が構成されていません。 ドキュメントに従い、それに応じて FIC を構成します。

無効な FIC 発行者

例: トークン取得失敗: 設定の問題で認証ができません。詳細はサーバーからのエラーメッセージを確認してください。 構成は、アプリケーション登録ポータルで変更できます。 詳細は、https://aka.ms/msal-net-invalid-clientを参照してください。 元の例外: AADSTS7002111: 提示されたアサーション発行者 「https://login.microsoftonline.com/262d6d26-0e00-40b3-9c2f-31501d4dcbd1/v2.0」 に一致するフェデレーション ID レコードが見つかりません。 フェデレーション ID 資格情報発行者が 「https://login.microsoftonline.com/{tenantId}/v2.0」 であることを確認してください。

処理方法: アプリで予想される発行者を持つ FIC が見つかりませんでした。 FIC 構成を開き、発行者をhttps://login.microsoftonline.com/{tenantId}/v2.0 (テナント ID を入力) に設定してください。

FIC サブジェクトが無効です

例: トークン取得失敗: 設定の問題で認証ができません。詳細はサーバーからのエラーメッセージを確認してください。 構成は、アプリケーション登録ポータルで変更できます。 詳細は、https://aka.ms/msal-net-invalid-clientを参照してください。 元の例外: AADSTS7002137: 提示されたアサーション サブジェクト '/eid1/c/pub/t/Jm0tJgAOs0CcLzFQHU3L0Q/a/iDQPIrayM0GBBVzmyXgucw/aHR0cHM6Ly9jb250b3NvLnByb3ZpZGVyLmNvbeKAiw' に一致するフェデレーション ID レコードが見つかりません。 フェデレーション ID 資格情報サブジェクトが '/eid1/c/pub/t/{tenantId}/a/iDQPIrayM0GBBVzmyXgucw/aHR0cHM6Ly9jb250b3NvLnByb3ZpZGVyLmNvbeKAiw' であることを確認します。

処理方法: アプリで予想されるサブジェクトを持つ FIC が見つかりませんでした。 FIC 構成を開き、エラー メッセージに示されているとおり、件名を期待される値に設定してください (テナント ID を入力してください)。 件名フィールドに余分な空白や空白行がないことを確認します。

アプリがプロバイダーで許可リストに登録されていない (Microsoft Defender 固有)

例: 認証トークン内のアプリケーション ID が、Webhook アクセス用に登録されているアプリケーションと一致しません。 正しいアプリケーション資格情報を使用していることを確認します。

対処方法: アプリケーションがプロバイダーの許可リストに登録されていません。 アプリの Webhook アクセスを許可するには、プロバイダーのドキュメントを参照してください。

脅威検知システムによる保護の切断

脅威の検知システムによるエージェントの監視を解除したい場合は、以下の手順に従ってください。

  1. Power Platform 管理センター にサインインします。

  2. サイド ナビゲーションで [セキュリティ] を選択し、次に [脅威の検出] を選択します。 脅威の検知ページが開きます。

  3. [追加の脅威検出] を選択します。 ウィンドウが開きます。

  4. 強化エージェント保護をオフにしたい環境を選択し、[セットアップ] を選択します。 ウィンドウが開きます。

  5. Copilot Studio が選択したプロバイダーとデータを共有できるようにする の選択を解除します。

  6. 保存を選択します。