次の方法で共有


認証設定を構成する

Customer Service 用オムニチャネルには、Dynamics 365 Customer Service Enterprise の機能を拡張する一連の機能が用意されていて、組織はデジタル メッセージング チャネルを通して顧客と即座につながり、やり取りできるようになります。 Customer Service 用オムニチャネルにアクセスする際は、追加のライセンスが必要です。 詳細については、Dynamics 365 Customer Service 価格の概要Dynamics 365 Customer Service 価格プラン ページを参照してください。

適用対象: Dynamics 365 Contact Center—埋め込み、Dynamics 365 Contact Center—スタンドアロン、Dynamics 365 Customer Service

ドメインからサインインした顧客を検証する認証設定を作成し、定義されているコンテキスト変数に基づいて情報を抽出できます。 匿名の顧客と認証済みの顧客を区別したり、コンテキスト変数に基づいたルールを作成できます。

たとえば、匿名の顧客と認証済みの顧客に対して別々のキューを設定できます。 認証された顧客に関する情報が多いので、ショッピング カートの値や特権ステータスなどの特定の変数に基づいて優先順位を付けることもできます。

認証設定レコードを作成したら、ワークストリームのチャネル設定内のチャネル インスタンスに追加して機能させる必要があります。 これらのチャネルでは、認証がサポートされています。

  • チャット
  • Apple Messages for Business

エージェントは会話の概要 セクションで通知を受け取り、顧客が認証されたかどうかを確認できます。 認証済み フィールドは、顧客の認証状態に基づいて はい または いいえ に設定されます。 詳細は、会話の要約を参照してください

前提条件

チャットの認証設定レコードを作成する

管理アプリで認証設定レコードを作成できます。

  1. Customer Service 管理センターのサイトマップで、顧客サポート顧客設定 を選択します。 顧客設定ページが表示されます。

  2. 認証設定セクションで、管理を選択します。 認証設定 ページが表示されます。

  3. 新しい認証設定を選択し、認証設定を追加ページで次の情報を入力します。

    • 名前: 認証設定の名前を入力します。

    • 所有者: 既定値を受け入れるか、必要な値に変更します。

    • 認証タイプ: 既定では、OAuth 2.0 は編集できません。

    • 公開キーの URL: ドメインの公開キーの URL を指定します。 この URL は、顧客がサインインしたドメインの JavaScript Object Notation (JSON) Web トークン (JWT) から入ってくる情報を検証するために使用されます。

    • JavaScript クライアント関数: 認証に使用する JavaScript クライアント関数を指定します。 この関数はトークン エンド ポイントからトークンを抽出します。

      チャット認証設定レコードを構成します。

    公開キーの URL と JavaScript クライアント機能を見つける方法の詳細については、この記事の最後の方にあるPower Apps ポータルの設定 または カスタム ポータルの設定セクションを参照してください。

  4. 保存 を選びます。

OAuth 2.0 を使用するチャットに対する認証設定レコードを作成する

  1. チャットの認証設定レコードを作成するの手順 1 から 3 を実行し、認証設定の追加ページに次の詳細を入力します。

    • 名前: 認証設定の名前を入力します。
    • チャネル タイプ: ライブ チャット
    • 認証の種類: OAuth 2.0
  2. 次へ を選び、詳細 ページで以下の情報を入力します。

    • トークン カスタム アクション: ID プロバイダーによって提供されるトークンを検証し、認証されたユーザーのユーザー ID を返すカスタム コード参照。
    • トークン URL: ユーザー ID を取得するためにカスタム アクションに渡されたトークンと認証コードを交換するために使用される URL。
    • リダイレクト URL: 元の認証コード要求に渡される URL で、トークン交換エンドポイントへの呼び出しで必須のパラメーターです。
    • クライアント ID: トークン交換エンドポイントに渡されるクライアントの ID。
    • クライアント シークレット: トークン交換エンドポイントに渡されるクライアントを認証するシークレット。
    • スコープ: フローで取得したトークンによってユーザーが認可されるスコープ。
  3. 変更を保存します。

チャット ウィジェットに認証を追加する

  1. Customer Service 管理センターで、作業ストリーム設定でチャット ウィジェットを編集し、動作タブに移動します。

  2. 認証設定ボックスで、チャット認証レコードを参照して選択します。

ポータルにサインインしている顧客がチャット ウィジェットを開くと、JavaScript クライアント機能が JWT をクライアントからサーバーに渡します。 JWT は公開キーを使用して復号化および検証され、その情報は Customer Service 用オムニチャネルのチャット エージェントに渡されます。 管理者として、カスタム コンテキスト変数を定義することで、サインインした顧客に関する追加情報を JWT に渡すこともできます。 コンテキスト変数は、チャット ウィジェットに関連付けられた作業ストリームで定義されたとおり正確に定義する必要があります。 詳細は、コンテキスト変数の管理を参照してください

Power Apps ポータルの設定

Power Apps ポータルを使用して開発された Web サイトでチャット ウィジェット認証を追加する場合は、公開キー URL、JavaScript クライアント関数はそのまま使用することができます。 Power Apps ポータルに有効な公開キー URL を取得するには カスタム証明書をアップロードする必要があります。

  • 公開キーの URL: <portal_base_URL>/_services/auth/publickey
  • JavaScript クライアント関数: auth.getAuthenticationToken

すぐに使用できる Power Apps ポータルの場合、JavaScript クライアント関数は、取引先担当者レコードを会話にリンクするための適切な要求を既定で持つトークンを返します。 このトークンには、ログインしているユーザーの連絡先 ID を含む sub 要求が含まれています。 このサブ クレームは、オムニチャネルがお客様の Dataverse 環境から取引先担当者レコードを自動的に識別してリンクするための一意の識別子を提供します。 詳細については、次のセクションの表を参照してください。

カスタム ポータルの設定

Power Apps ポータルを使用して開発されていないカスタム Web サイトに、認証済みチャット エクスペリエンスを追加する場合、Web 開発チームは、管理者が認証済みチャットを構成する前に、次の初期設定を行う必要があります。

  1. 認証サーバ-に公開キー/秘密キーのペアを生成します。 キーは RSA256 アルゴリズムを使用して生成する必要があります。

    次のサンプル コードは、秘密キーまたは公開キーのペアを生成します。

    openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
    openssl rsa -pubout -in private_key.pem -out public_key.pem
    
  2. 公開キーを返すエンドポイントを作成します。 オムニチャネル サーバーは、公開キーを使用して、チャット要求の承認の一環として渡された JWT トークンを検証します。 認証設定レコードを作成する際に、このエンドポイントの URL を管理アプリに入力します。

    公開キーのエンドポイントは、次の例のようになります。

      -----BEGIN PUBLIC KEY----- 
      NIIBIjANBgkqhkiG9w0BAQEFABCOPQ8AMIIBCgKCAQEAn+BjbrY5yhSpLjcV3seP 
      mNvAvtQ/zLwkjCbpc8c0xVUOzEdH8tq4fPi/X5P/Uf2CJomWjdOf1wffmOZjFasx 
      ELG+poTqy5uX2dNhH6lOMUsV31QGG36skLivpLBCSK6lWlzsV6WGkb/m8r86aGzp 
      jtNhw8yvoTYB4updDrJ8pC+tx4EWK0WEmKn1GsW6TjUtxJjcTLI1puSbmcGHbkSi 
      RSbWkKPqaEVFALprw+W5ZCung5QX3KOkY/rJd+2JwULm7okyQCQaF7qwa5i9Uf65 
      7M6ZL4vsDevq7E/v3tf6qxpSSHzt4XspXVQty9QHhqDqBEY3PfI4L2JjgIGuPhfS 
      YQIDAQAB 
      -----END PUBLIC KEY-----   
    
    

複数の公開鍵を使用する必要がある場合、公開キーのエンドポイントは <kid, publickey> 組のセットを返すことができ、ここで kid はキー ID を指します。 キー ID のペアは必ず一意にします。 手順 4 で JWT トークンに "kid" を渡す必要があります。 複数のキーを使用している場合、公開キーのエンドポイントは以下の例のようなものを返します。 公開キーは、Base64 でエンコードされます。

 [
      { 
          "kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp4in7hu4=",
          "publicKey": LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbjFLdXhtSEh3V3hjelZSWGRBVmMNCnBEaFZwa0FnYklhTGZBUWc1bFpvemZqc29vcWRGWkl0VlFMdmRERWFVeDNqTytrTkxZM0JFRnBYVDZTN3ZNZCsNCnZoM2hpMDNsQ1dINnNCTWtaSWtuUUliMnFpekFsT0diU2EvK3JrUElnYnpXQjRpT1QyWVhyOVB4bXR5d2o4WUINCnYram55VU5DSzMyZy9FYWsvM0k3YW1vZ2pJY0JISjNFTjVuQWJBMExVVnJwMW5DODJmeEVPOHNJTzNYdjlWNVUNCnc5QnVTVVFRSmtMejNQYVI5WTdRZUEyNW5LUGtqTXZ2Y0UxVU5oeVpIYlNLbmorSitkZmFjb1hsSGtyMEdGTXYNCldkSDZqR0pWcGNQMHBkNjFOa3JKa2c0aStheThwS2ZqdjNUOHN3NWdaVHFweFFaaitVRWxqaVM0SHRPTlhkNlENCnZRSURBUUFCDQotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0NCg==",
          "expiry": 1608495423
      },
 {
          "kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp__valid=",
          "publicKey": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbjFLdXhtSEh3V3hjelZSWGRBVmMNCnBEaFZwa0FnYklhTGZBUWc1bFpvemZqc29vcWRGWkl0VlFMdmRERWFVeDNqTytrTkxZM0JFRnBYVDZTN3ZNZCsNCnZoM2hpMDNsQ1dINnNCTWtaSWtuUUliMnFpekFsT0diU2EvK3JrUElnYnpXQjRpT1QyWVhyOVB4bXR5d2o4WUINCnYram55VU5DSzMyZy9FYWsvM0k3YW1vZ2pJY0JISjNFTjVuQWJBMExVVnJwMW5DODJmeEVPOHNJTzNYdjlWNVUNCnc5QnVTVVFRSmtMejNQYVI5WTdRZUEyNW5LUGtqTXZ2Y0UxVU5oeVpIYlNLbmorSitkZmFjb1hsSGtyMEdGTXYNCldkSDZqR0pWcGNQMHBkNjFOa3JKa2c0aStheThwS2ZqdjNUOHN3NWdaVHFweFFaaitVRWxqaVM0SHRPTlhkNlENCnZRSURBUUFCDQotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0NCg==",
          "expiry": 1608495423
      } 
 ]
  1. 認証されたユーザーのチャットを開始する際に、オムニチャネルのサーバーに送信する JWT を生成するサービスが必要になります。

    a. JWT ヘッダーは、次の例のようになります。

    { 
      "alg": "RS256", 
      "typ": "JWT", 
    } 
    

    複数の公開キーを使用している場合は、キー ID (kid) を渡す必要があります。 ヘッダーは、次の例のようになります。

    { 
      "alg": "RS256", 
      "typ": "JWT",
      "kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp4in7hu4="
    } 
    

    b. JWT のペイロードには、以下を含める必要があります。

    • 少なくとも、以下を含めます。

      請求 説明
      iss トークンの発行者。
      iat トークンが発行された日付 (数値の日付形式)。
      exp このトークンの有効期限 (数値の日付形式)。
      sub 要求の件名です。
      注意: サインインしているユーザーの顧客サービスの連絡先または取引先企業レコードの GUID を渡すことをお勧めします。 この GUID は、連絡先レコードを識別して会話にリンクするために使用されます。 レコード検索では、取引先担当者または取引先企業のアクティブな状態コードを持つレコードが特定されます。 カスタム状態コードを使用する場合、レコードの識別は機能しません。
    • lwicontexts ルーティングの目的で、またはエージェントに表示するために、会話の一部として渡すコンテキスト変数。
      詳細情報 :
      カスタム コンテキストの管理
      setAuthTokenProvider メソッド
      コンテキスト変数を使用してレコードを自動的に識別する

    • その他の渡すデータ。

    ペイロードは、次のようになっている必要があります。

      { 
          "sub" : "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",  
          "lwicontexts" :"{\"msdyn_cartvalue\":\"10000\", \"msdyn_isvip\":\"false\", \"portalcontactid\":\"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb\"}", 
          "iat" : 1542622071, 
          "iss" : "contosohelp.com", 
          "exp" : 1542625672, 
          "nbf" : 1542622072 
      } 
    

    c. JWT の署名は秘密キーで署名されている必要があります。

    ヒント

    • トークンの有効期限が切れているか無効な場合、チャット ウィジェットはエラー イベントをスローします。
    • setContextProvider メソッドは、認証されているチャットには対応していません。 lwicontexts を JWT ペイロードの一部として渡す必要があります。
  2. コールバック関数を受け入れて、コールバック関数に JWT を返す JavaScript 関数を Web サイト上に作成します。 タイムアウトを回避するために、この javascript 関数は 10 秒以内に JWT を返す必要があります。 この JWT は、次の条件を満たす必要があります。

    • 手順 3 のヘッダー、ペイロード、署名を含んでいる。

    • 手順 1 のキー ペアの秘密ペアで署名されている。

      JWT は Web サーバー上で生成することをお勧めします。

      この JavaScript のメソッド名は、Customer Service 管理アプリの認証設定レコードを作成するために使用されます。

      // This is a sample JavaScript client function  
      
      auth.getAuthenticationToken = function(callback){ 
      
        var xhttp = new XMLHttpRequest(); 
        xhttp.onreadystatechange = function() { 
            if (this.readyState == 4 && this.status == 200) { 
                callback(xhttp.responseText); 
            } 
        }; 
        xhttp.onerror = function(error) { 
            callback(null); 
        }; 
      //Replace this with a call to your token generating service 
        xhttp.open("GET", "https://contosohelp.com/token", true); 
        xhttp.send(); 
      } 
      
  3. 開発者は、以下の情報をオムニチャネルの管理者と共有する必要があります。

    a. 手順2の公開キー サービスの URL。

    例: https://www.contoso.com/auth/publickey

    b. 手順 4 の javascript クライアント関数の名前。 チャット開始時にライブ チャット ウィジェットが内部でこの名前を呼び出します。

    例 : auth.getAuthenticationToken

    Note

    ユーザーが認証される前にチャット ボタンが表示される場合、必要に応じて認証ページにリダイレクトするようにしてください。 手順 4 に記載の方法でリダイレクトを設定することもできますが、ユーザー フローの初期の設定手順で行うこともできます。

    次の図は、セットアップを示しています。

    認証済のチャット設定。

    続いて、以下の手順で認証済みチャットを設定します :

認証付きチャットの設定

  1. 管理者アプリで、前のセクションの手順 5 の情報を使用して、認証設定レコードを作成します。 詳細は、チャットの認証設定レコードを作成するを参照してください

  2. 認証されたエクスペリエンスを持つチャット ウィジェットに認証設定を関連付けます。 詳細については、チャット ウィジェットに認証を追加するを参照してください

    次の図は、ユーザーが認証された設定でチャットにアクセスした場合のコールシーケンスを示しています。

    認証済みチャットのランタイム。

Apple Messages for Business の認証設定を作成する

前提条件

  • 認証設定を構成する管理者には、より多くのセキュリティ アクセス許可が必要です。 詳細は、フィールドのセキュリティ アクセス許可の設定を参照してください

  • 組織に OAuth 2.0 OpenID Connect フローの実務知識があること確認してください。 手順は、次のセクションで説明します。

  • 組織に Apple Messages for Business認証の種類のリッチ メッセージ が少なくとも 1 つあることを確認します。 このリッチ メッセージ構成は、セットアップに必要です。

OAuth 2.0 OpenID Connect フローを使用して Apple Messages for Business の認証設定レコードを作成する

  1. Customer Service 管理センター アプリのサイト マップで、顧客の設定 を選択し、認証設定の管理 を設定します。 既存の認証設定が表示されます。

  2. 新しい認証設定 を選択し、認証設定の追加 ページで次の詳細を入力します。

    1. チャネルの種類ページで名前を入力し、チャネルの種類として Apple Messages for Business を選択します。

    2. 認証の種類 OAuth 2.0 OpenID Connect フローを変更します。

    3. 認証設定の追加 ページで、以下の情報を入力します:

      • クライアント ID: 認証サーバーから発行される OAuth 2.0 のクライアント ID。
      • クライアント シークレット: 承認サーバーに送信された要求を認証するために使用するクライアント シークレット。
      • スコープ: 追加される各スコープによって、顧客にどのユーザー データを要求するかが指定されます。 スコープのコンテンツは、サービス プロバイダーから入手できるものと、完全に一致する必要があります。
      • アクセス トークン URL: アクセス トークンを要求できるサービス プロバイダーのエンドポイント。
      • 解読トークン URL: スコープで要求された顧客情報を OAuth 2.0 API が取得するためのエンドポイント。
      • 追加パラメーター: 要求からの追加パラメーターの取得を認証サービスに許可します。
    4. 追加の詳細 ページでは、オプションでアクセス トークンの有効期限を秒単位で定義できます。 既定の有効期限は 1 時間です。
      この有効期限を過ぎると、顧客概要セクションで、前回認証された会話の認証済みフィールドがいいえに変更されます。

    5. リッチ メッセージ ページで追加を選択してから、認証設定に関連付けるリッチ メッセージを 1 つ以上選択します。

    6. 概要 ページを確認し、次へ を選択します。 認証の設定を構成しました。

    7. リダイレクト情報 ページで URL をコピーします。 この URL は、認証サービス プロバイダーの Web サイトの [許可されたコールバック URL] の下に追加します。

    8. 完了を選択します。

Apple Messages for Business チャネルに認証を追加する

  1. 認証を追加するチャネル インスタンスを含む作業ストリームを開きます。

  2. チャネル設定の動作ページで認証設定に移動し、機能を有効にしてから、認証設定をドロップダウン メニューから選択します。 詳細については、Apple Messages for Business チャネルを構成するを参照してください

  3. 各チャネル インスタンスの認証設定を確認または更新するには、編集を選択します。

チャット ウィジェットの追加
会話の事前アンケートを構成する
クイック返信の作成
作業時間の作成および管理
チャット ウィジェットを Power Apps ポータルに埋め込む
顧客を自動的に識別する