Microsoft Entra ID を使用してシングル サインオンを構成する

Copilot Studio では、シングル サインオン (SSO) がサポートされています。 SSO は、Web サイトのエージェントが、エージェントが展開されているページやアプリにすでにサインインしている場合に、顧客がサインインできるようになります。

たとえば、エージェントは社内のイントラネットまたはユーザーが既にサインインしているアプリでホストされます。

Copilot Studio の SSO を構成する、5 つの主な手順があります:

  1. Microsoft Entra ID を使用してエージェントの手動認証を有効にする

  2. Microsoft Entra ID でカスタム キャンバスにアプリ登録を作成します。

  3. Microsoft Entra ID でエージェントのカスタム スコープを定義します。

  4. カスタム スコープをエージェント構成に追加します。

  5. カスタム キャンバスのクライアント側コードを構成して、SSO を有効にします。

必要条件

紙幣

他の OAuth 2.0 プロバイダーを使用して SSO を構成するには、汎用 OAuth プロバイダーを使用したシングル サインオンの構成を参照してください。

サポート対象のチャネル

次の表は、現在 SSO をサポートしているチャネルの詳細です。 追加チャンネルのサポートについては、Copilot Studio アイデア フォーラムでご提案いただけます。

チャネル サポートあり
Azure Bot Service チャネル サポートしていません
カスタム Web サイト サポートあり
デモ Web サイト サポートしていません
Facebook サポートしていません
Microsoft Teams1 サポートあり
モバイル アプリ サポートしていません
Customer Service 用オムニチャネル2 サポートあり
SharePoint1 サポートあり

1 Teams チャネルを公開している場合は、Microsoft Teams のエージェント向け Microsoft Entra ID によるシングルサインオンの構成に関するドキュメントに記載されている設定の手順に従う必要があります。 そのページの指示に従って Teams SSO 設定を構成しないと、ユーザーは Teams チャネルを使用するときに常に認証に失敗します。

2 ライブ チャット チャネルのみがサポートされています。 詳細については、Dynamics 365 Customer Service へのハンドオフを構成する を参照してください。

重要

エージェントが、Power Apps ポータルに発行されている場合、SSO は現在サポートされていません。

カスタム Web サイト用のアプリ登録を作成する

SSO を有効にするには、2 つの別々のアプリ登録を作成してください:

  • 認証アプリの登録でじゃ、 エージェントの Microsoft Entra ID ユーザー認証を有効にします
  • カスタム Web ページの SSO を有効にするキャンバス アプリの登録

セキュリティ上の理由から、エージェントとカスタム Web サイトの両方で同じアプリ登録を再利用しないでください。

  1. 認証アプリの登録を作成するには、Microsoft Entra ID を使用したユーザー認証の構成の手順に従ってください。

  2. キャンバス アプリの登録で、2 つ目のアプリ登録を作成します。

トークンの交換 URL の追加

Copilot Studio で Microsoft Entra ID 認証設定を更新するには、トークン交換 URL を追加してアプリと Copilot Studio が情報を共有してください。

  1. 認証アプリの登録ページにある Azure ポータルで、API の公開に移動します。

  2. スコープの下で、クリップボードにコピー アイコンを選択します。

  3. Copilot Studio の設定メニューから、セキュリティを選択し、認証タイルを選択します。

  4. トークンの交換 URL (SSO に必要)に、先ほどコピーしたスコープを貼り付けます。

  5. 保存を選択します。

キャンバス アプリ クライアント ID を構成して API メニューを公開する

  1. 認証アプリの登録ページにある Azure portalで、概要に移動します。

  2. Essentials配下のアプリケーション (クライアント) ID の値をコピーします。

  3. ナビゲーション バーで管理>API の公開を選択します。

  4. 承認済みクライアント アプリケーションクライアント アプリケーションの追加を選択し、コピーしたクライアント ID を貼り付けます。

  5. 保存を選択します。

キャンバス アプリの登録を構成する

  1. キャンバス アプリの登録を作成した後は、認証にアクセスし、プラットフォームの追加を選択します。

  2. プラットフォームの構成プラットフォームの追加、次に SPA を選択します。

  3. リダイレクト URI 配下で、Web ページの URL を入力します。 たとえば、http://contoso.com/index.html などとします。

    Web の構成ページのスクリーンショット。

  4. 暗黙的な許可とハイブリッド フロー セクションで、アクセス トークン (暗黙的なフローに使用)ID トークン (暗黙的およびハイブリッド フローに使用) の両方をオンにします。

  5. 構成を選択します。

エージェントのトークン エンドポイント URL を見つける

  1. Copilot Studio でご利用のエージェントを開き、チャネルを選択します。

  2. モバイル アプリを選択します。

  3. トークン エンドポイントの下で、コピーを選択します。

    Copilot Studio でトークン エンドポイント URL をコピーしているスクリーンショット。

Web ページで SSO を構成する

重要

SSO が有効になっているアプリでは、ゲスト ユーザーは SharePoint および Graph Connectorの データソースから生成された AI 応答にアクセスできません。

Copilot Studio サンプル GitHub リポジトリ で提供されているコードを使用して、リダイレクト URL の Web ページを作成します。 GitHub リポジトリからコードをコピーし、次の手順に従ってそれを変更してください。

  1. Azure ポータルの概要ページに移動し、キャンバス アプリ登録からアプリケーション (クライアント) IDディレクトリ (テナント) ID をコピーします。

    概要、アプリケーション ID、およびディレクトリ ID が強調表示された、Azure portal のアプリ登録の概要ページのスクリーンショット。

  2. Microsoft Authentication Library (MSAL) を構成する方法:

    • clientIdアプリケーション (クライアント) ID に割り当てます。
    • authorityhttps://login.microsoftonline.com/ に割り当て、最後に ディレクトリ (テナント) ID を追加します。

    例:

    var clientApplication;
        (function (){
        var msalConfig = {
            auth: {
                clientId: '00001111-aaaa-2222-bbbb-3333cccc4444',
                authority: 'https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'     
            },
    
  3. theURL 変数を、すでにコピーしたトークン エンドポイント URL に設定します。 例:

    (async function main() {
    
        var theURL = "https://<token endpoint URL>"
    
  4. userId の値を編集して、カスタム接頭辞を含めます。 例:

    var userId = clientApplication.account?.accountIdentifier != null ? 
            ("My-custom-prefix" + clientApplication.account.accountIdentifier).substr(0, 64) 
            : (Math.random().toString() + Date.now().toString()).substr(0,64);
    
  5. 変更を保存。

  6. SSO が正常に構成されたことを確認します。

    エージェントのテスト時に、SSO が正常に構成されていない場合は、サインインを求められます。 ログイン手続きが完了すると、認証コードが発行されますので、それをチャット ウィンドウにコピーしてください。

    サインイン プロンプトが表示されたら、この手順のステップ 1 から 5 を正しく完了したか確認します。 SSO が正常に構成されている場合、サインインのプロンプトは表示されません。

    紙幣

    GitHub リポジトリのコードでは、ユーザーがサインイン ボタンを選択する必要があります。 運用環境では、ボタンの機能をページへの遷移など、より適切なイベントに置き換えることを検討してください。