Power Virtual Agents ボットにエンド ユーザー認証を追加

Power Virtual Agents ボットの会話内で、直接ユーザー認証を有効にすることができます。 ユーザー認証とは、ボット変数で名前や ID などのユーザーの基本プロパティを取得できるだけでなく、認証ノードを使用してサイン インし、そのユーザーのユーザー トークンを取得し、そのトークンを使用してバックエンド システムからユーザーの情報を取得できます。

注意

Microsoft Teams で作成されたボットには、Teams の認証を使用するように事前構成された認証が付属しています。

ユーザーが手動でサイン インする必要がないように、シングル サインオン (SSO) を構成できます。 詳細については、Web 用の SSO を設定する を参照してください。

前提条件

重要

このトピックは Power Virtual Agents プレビューのドキュメントを含み、今後変更される可能性があります。

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

運用に対応したボットを構築する場合は、Power Virtual Agents の概要 を参照してください。

ユーザー認証をトピックに追加して、顧客が会話内で直接サインインできるようにします。 次に、ユーザー変数を使用して会話をパーソナライズしたり、ユーザーの代わりにバック エンド システムにアクセスしたりすることができます。

Azure AD で認証を構成する

トピックで認証を使用する前に、Azure AD でユーザー認証を設定する必要があります。

  1. Azure AD でユーザー認証を構成するの指示に従ってください。
  2. この記事に戻ります。

サインイン システム トピック でユーザー認証を追加する

ボットを作成すると、Power Virtual Agents は自動的に Signin というシステム トピックを追加します。 これを使用するには、ボットの認証を手動に設定し、ユーザーにサインインを要求する必要があります。 顧客がボットと会話を始めると、Signin トピックがトリガーされ、ユーザーにサインインするよう促します。 Signin トピックは、ボットに合わせて適切にカスタマイズできます。

  1. ナビゲーション メニューの 設定セキュリティ を選択します。

  2. 認証 タイルを選択します。

  3. 手動 (カスタム Web サイト用) を選択してから、ユーザーにサインインを要求するを選択します。

    Power Virtual Agents ユーザーにログインを要求するが選択され、強調表示された認証ページのスクリーンショット。

    サインイン プロンプトのスクリーンショット。

カスタム トピックでユーザー認証を追加する

Signin トピックでは、会話の開始時にユーザーを認証します。 ユーザーが後でサインインできるようにするため、任意のカスタム トピックに認証ノードを追加できます。

顧客がユーザー名とパスワードを入力すると、検証コードを入力するよう促される場合があります。 ログインした後、別の認証ノードに到達した場合は、再度プロンプトが表示されることはありません。

  1. ナビゲーション メニューの 設定セキュリティ を選択します。

  2. 認証 タイルを選択します。

  3. ユーザーにサインインを要求するをオフにします。

  4. ナビゲーション メニューで、トピックを選択してから、認証を追加するトピックを開きます。

  5. ノードの追加 (+) を選択し、アクションの呼び出しを選択し、認証 を選択します。

  6. ID プロバイダーで構成されたユーザーを使用して、トピックをテストするを実行します。

チップ

サインインが成功した場合と失敗した場合の両方のパスを作成することが重要です。 サインインに失敗する理由は、ID プロバイダーのサインイン エクスペリエンスに関するエラーなど、複数あります。

認証変数

ユーザー認証をボットで設定すると、トピック内で認証変数を使用できます。 次の表は、選択した認証オプションに基づくこれらの変数の利用可能性を比較したものです。

認証変数 認証なし Teams 専用 手動
User.DisplayName 使用できません 使用できません 対応可能
User.Id 使用できません 使用できません 対応可能
User.IsLoggedIn 使用できません 使用できません 対応可能
User.AccessToken 使用できません 使用できません 対応可能
SignInReason 使用できません 使用できません 対応可能

User.DisplayName

警告

この変数に値が入ることは保証されていない。 トピックが正しく動作することを確認するために、ID プロバイダーのユーザーを使ってテストしてください。

User.DisplayName 変数には、ID プロバイダーに保存されている表示名が含まれます。 この変数を使用すると、ユーザーが明示的に名前を与えなくても、挨拶や言及したりできるため、会話がよりパーソナライズされたものになります。

Power Virtual Agents は、profile スコープが手動認証の設定時に定義されている限り、ID プロバイダーによって提供される name 要求から User.DisplayName の値を自動的に設定します。 スコープに関する詳細情報は、Azure AD で手動認証を設定するを参照してください。

User.Id

警告

この変数に値が入ることは保証されていない。 トピックが正しく動作することを確認するために、ID プロバイダーのユーザーを使ってテストしてください。

User.Id 変数には、ID プロバイダーに保存されている userID が含まれます。 UserID を値とする API を呼び出す場合は、Power Automate フロー でこの変数を使用する。

Power Virtual Agents は、ID プロバイダから提供される sub 要求からの User.DisplayName の値を自動的に設定します。

User.IsLoggedIn

User.IsLoggedIn とは、ユーザーのサインイン状態を含む格納するブール型の変数です。 true の値は、ユーザーがサインインしていることを示します。 この変数を使用して、サインインに成功したかどうかをチェックするトピック内の分岐ロジックを作成したり、ユーザーがサインインしている場合にのみユーザー情報を取得したりすることができます。

User.AccessToken

警告

信頼できるソースに対してのみ User.AccessToken 変数をパスしていることを確認してください。 これにはユーザー認証情報が含まれており、侵害された場合、ユーザーに害を及ぼす可能性があります。

User.AccessToken 変数には、ユーザーのサイン イン後に取得されるユーザーのトークンが含まれます。 この変数を Power Automate フロー に渡すことができるため、バック エンド API に接続してユーザーの情報を取得したり、ユーザーに代わってアクションを実行したりできます。

メッセージ ノード内または信頼できないフロー内で User.AccessToken を使用しないでください。

SignInReason

SignInReason は、ユーザーがいつサインインする必要があるかを示す選択タイプの変数です。 次の 2 つの値があります:

  • SignInRequired は、ユーザーが会話の最初に サインイン システム トピックを使用してサインインする必要があることを示しています。 ユーザーにサインインを要求するをオンにする必要があります

  • Initializer は、ユーザーがまだサインインしていない場合、会話の中で認証変数を使用するポイントに到達すると、サインインするように促されることを示しています。

ユーザーが手動でサイン インする必要がないように、シングル サインオン (SSO) を構成できます。 詳細については、Web 用の SSO を設定する を参照してください。