Azure Active Directory を使用してシングル サインオンを構成する

Power Virtual Agents はシングル サインオン (SSO) をサポートします。つまり、ボットが展開されているページにいる場合、チャットボットはユーザーをサインインできます。

前提条件

ボットが展開されているページまたはアプリで既にサインインしている場合、シングル サインオン (SSO) により Web サイトのチャットボットは顧客をサインインさせることができます。

Power Virtual Agents プレビューでは、カスタム Web サイト チャネルでのみ SSO がサポートされています。 次のチャネルではサポートされていません。

  • Azure ボット サービス
  • デモ Web サイト
  • Facebook
  • Microsoft Teams
  • Mobile app

またはボットが作成されたとき:

  • Teams、SharePoint Web サイト、または Power Apps ポータルに公開済み
  • Dynamics 365 Customer Service と統合済み

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

SSO を有効にするには、異なる 2 つのアプリ登録が必要です。

  • ボットでの Azure Active Directory (Azure AD) ユーザー認証を有効にする認証アプリ登録
  • カスタム Web ページの SSO を有効にするキャンバス アプリの登録

セキュリティ上の理由から、ボットとカスタム Web サイトの両方に対して同じアプリ登録を再利用することはお勧めしません。

  1. Azure AD を使用してユーザー認証を構成するの指示に従って、認証アプリの登録を作成します。
  2. もう一度同じ指示に従って、キャンバス アプリの登録として機能する 2 つ目のアプリ登録を作成します。
  3. この記事に戻ります。

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

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

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

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

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

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

  5. 構成を選択します。

ご利用のボットのトークン エンドポイント URL を確認する

  1. Power Virtual Agents で、設定に移動し、次にチャネルを選択します。

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

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

    Power Virtual Agents でトークン エンドポイント URL をコピーするスクリーンショット。

Web ページで SSO を構成する

Power Virtual Agents 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: '692e92c7-xxxx-4060-76d3-b381798f4d9c',
                authority: 'https://login.microsoftonline.com/7ef988bf-xxxx-51af-01ab-2d7fd011db47'     
            },
    
  3. theURL 変数を、すでにコピーしたトークン エンドポイント URL に設定します。 例:

    (async function main() {
    
        var theURL = "https://1c0.0.environment.api.powerplatform.com/powervirtualagents/bots/5a099fd/directline/token?api-version=2022-03-01-preview"
    
  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. 変更を保存。

Web ページを使用してボットをテストする

  1. ブラウザで Web ページを開きます。

  2. ログインを選択します。

    検証コードを使用したログインのスクリーンショット

    Note

    ブラウザーがポップアップをブロックしている場合、またシークレットまたはプライベートブラウザー ウィンドウを使用している場合は、ログインするよう求められます。 それ以外の場合は、ログインは検証コードを使用して完了します。

    新しいブラウザー タブが開きます。

  3. 新しいタブに切り替えて、検証コードをコピーします。

  4. ボットのあるタブに戻り、ボットの会話に検証コードを貼り付けます。