Web および Direct Line チャネル セキュリティの構成

重要

Power Virtual Agents 機能は、生成 AI への多大な投資と Microsoft Copilot 全体の統合の強化により、現在 Microsoft Copilot Studio の一部となっています

ドキュメントやトレーニング コンテンツが更新される間、一部の記事やスクリーンショットで Power Virtual Agents が参照される場合があります。

Microsoft Copilot Studio コパイロットを作成すると、コパイロット ID を知っている人なら誰でもすぐに デモ Web サイト および カスタム Web サイト チャネルで利用可能です。 これらのチャネルは既定で使用でき、構成の必要はありません。

Microsoft Teams アプリの場合、高度な Web チャネル セキュリティ オプションを構成できます。

注意

Teams 専用ライセンスをお持ちの場合、安全なアクセスを有効にするためのシークレットを生成することはできません。 セキュア アクセス トークンは自動的に作成され、セキュア アクセスはデフォルトで有効になっています。

ユーザーは Microsoft Copilot Studio 内から直接、または誰かからそれを受け取ることによって、コパイロット ID を見つけることができます。 しかし、コパイロットの機能と機密度によっては、望ましくない場合があります。

セキュリティ ベースの Direct Line を使用して、Direct Line シークレットまたはトークンで安全なアクセスを可能にすることよって制御する場所へのアクセスのみを有効にできます。

シークレットの交換および再生成、トークンの更新が可能で、保護されたアクセスを使用したくない場合は、簡単に無効にすることができます。

注意

Microsoft Copilot Studio では、Bot Framework Direct Line チャネル を使用して、Web ページまたはアプリをコパイロットに接続します。

Web チャネル セキュリティの有効化または無効化

個々のコパイロットごとに、シークレットとトークンの使用を適用できます。

このオプションを有効にすると、実行時に取得される シークレットを使用する か、シークレットを使用して生成されたトークンを使用する かのいずれかで、チャネルは要求を認証するクライアントが必要です。

このセキュリティ対策を提供しないコパイロットへのアクセスは、機能しません。

  1. ナビゲーション メニューの 設定セキュリティ を選択します。 次に、Web チャネル セキュリティ タイルを選択します。

    設定ポップアップで Web チャネル セキュリティが強調表示されたことを示すスクリーンショット。

  2. 安全なアクセスが必要のスイッチを有効に切り替えます。

    Web チャネル セキュリティのページを示すスクリーンショット。

警告

「保護されたアクセスの要求」が有効または無効になると、システムが設定を反映して有効になるまでに最大 2 時間かかることがあります。 それまでは、以前の設定が有効になります。 この変更を有効にするためにコパイロットを公開する必要はありません。

意図せずにコパイロットを公開しないように事前に計画する必要があります。

Web チャネル セキュリティのオプションを無効にする必要がある場合は、安全なアクセスの要求無効に切り替えます。 保護されたアクセスを無効にすると、反映されるまでに最大 2 時間かかります。

保護されたアクセスを無効にするときの確認メッセージを示すスクリーンショット。このアクションにより、デモ Web サイトおよびシークレットまたはトークンを使用していない Direct Line チャネルが利用可能になります。このアクションが有効になるまで、最大 2 時間かかることがあります。

シークレットまたはトークンを使用

サービス間アプリを作成している場合、認証ヘッダー リクエストでシークレットを指定するのが最も簡単な方法です。

クライアントが Web ブラウザーまたはモバイル アプリで実行されるアプリを作成している場合、またはコードが顧客に表示される可能性がある場合、シークレットをトークンと交換する必要があります。 トークンを使用しない場合は、秘密が侵害される可能性があります。 使用しているサービスでトークンを取得するリクエストを行う場合は、認証ヘッダーでシークレットを指定します。

トークンは、単一の会話に対してのみ機能し、更新しない限り有効期限が切れます。

状況に最適なセキュリティ モデルを選択してください。

警告

ブラウザーで実行される、ネットワーク呼び出しからハード コーディングされる、または転送されるのいづれかのコードのシークレットを、公開しないことを強くお勧めします。

サービス コードのシークレットを使用してトークンを取得することは、Microsoft Copilot Studio コパイロットを保護する最も安全な方法です。

シークレットを入手

アプリの認証ヘッダー リクエストなどで指定できるように、シークレットが必要になります。

  1. ナビゲーション メニューの 設定セキュリティ を選択します。 次に、Web チャネル セキュリティ タイルを選択します。

  2. シークレット 1 またはシークレット 2 のいづれかでコピーを選び、クリップボードにコピーします。 可視性アイコン 可視性アイコン。 を選択し、シークレットを明らかにします。 表示する前に、警告プロンプトが表示されます。

シークレットを交換する

コパイロットで使用されているシークレットを変更する必要がある場合は、ダウンタイムや中断なしで変更できます。

Microsoft Copilot Studio は、同時に機能する 2 つのシークレットを提供します。 使用しているシークレットを他のシークレットと交換できます。 シークレットが交換され、すべてのユーザーが新しいシークレットを使用し接続されたら、シークレットを再生成しても安全です。

シークレットの再生成

シークレットを再生成するには、シークレットのとなりにある再生するを選択します。

警告

元のシークレットまたはそのシークレットから取得したトークンを使用して接続されているユーザーは、すべて切断されます。

トークンを生成

単一のコパイロットの会話を開始するときに使用できるトークンを生成できます。 詳細については、コパイロットをモバイル アプリとカスタム アプリに追加する 記事のセクション Direct Line トークンを取得する を参照してください。

  1. シークレットを取得する

  2. サービス コードで次のリクエストを発行し、シークレットをトークンに交換します。 <SECRET> を手順 1 で取得したシークレットの値に置き換えます。

    POST https://directline.botframework.com/v3/directline/tokens/generate
    Authorization: Bearer <SECRET>
    

次のスニペットは、生成されたトークン リクエストとその応答の例を示しています。

トークン生成リクエストのサンプル

POST https://directline.botframework.com/v3/directline/tokens/generate
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0

トークン生成応答のサンプル

HTTP/1.1 200 OK
[other headers]
{
  "conversationId": "abc123",
  "token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
  "expires_in": 1800
}

リクエストが成功した場合、応答には 1 つの会話に有効なトークンと、トークンの有効期限が切れるまでの秒数を示す expires_in 値が含まれます。

トークンを使い続けるには、期限切れになる前に、トークンを更新する 必要があります。

トークンを最新の情報に更新

トークンは期限が切れていない限り、無制限に何度でも更新できます。

期限切れのトークンは更新できません。

トークンを更新するには、次のリクエストを発行して、<TOKEN TO BE REFRESHED> を更新するトークンに置き換えます。

POST https://directline.botframework.com/v3/directline/tokens/refresh
Authorization: Bearer <TOKEN TO BE REFRESHED>

次のスニペットは、トークン更新リクエストおよび応答の例を示しています。

更新リクエストのサンプル

POST https://directline.botframework.com/v3/directline/tokens/refresh
Authorization: Bearer CurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn

更新応答のサンプル

リクエストが成功した場合、応答には以前のトークンと同じ会話に有効な新しいトークンと、新しいトークンの有効期限が切れるまでの秒数を示す expires_in 値が含まれます。

新しいトークンを使い続けるには、期限切れになる前に、再度トークンを更新する必要があります。

HTTP/1.1 200 OK
[other headers]
{
  "conversationId": "abc123",
  "token": "RCurR_XV9ZA.cwA.BKA.y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xniaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0",
  "expires_in": 1800
}

トークンの更新の詳細については、Direct Line API - 認証 記事のセクション Direct Line トークンの更新 を参照してください。