Share via


認証設定を構成する

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

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

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

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

  • チャット
  • Apple Messages for Business

エージェントは顧客が認証されたかどうかに関わらず、会話の概要 セクションで通知を受け取ります。 認証済み フィールドは、顧客の認証に基づいて はい または いいえ に設定されます。 詳細情報: 会話の概要

前提条件

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

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

  1. いずれかの管理アプリに移動して、次の手順を実行します。

    1. サイト マップで 顧客設定ユーザー管理 を選択します。 顧客設定ページが表示されます。
    2. 認証設定セクションで、管理を選択します。

    認証設定 ページが表示されます。

  2. 新規認証設定 を選択して、認証設定の追加 ページで以下の情報を入力します。

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

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

    • 認証タイプ: 既定では、OAuth 2.0 の暗黙的なフローは編集できません。

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

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

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

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

  3. 保存 を選びます。

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 は公開鍵を使用して復号化および検証され、その情報は Omnichannel for 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 クライアント関数で渡されたコンテキストを介して、取引先担当者レコードを会話に自動的にリンクしようとします。

カスタム ポータルの設定

開発に 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 で、kid を JWT トークンで渡す必要があります。 複数のキーを使用している場合、公開キーのエンドポイントは以下のようなものを返します。 公開キーは、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 のペイロードには、以下を含める必要があります。

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

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

    • その他の渡すデータ。

    ペイロードは次の例のようになります :

      { 
          "sub" : "87b4d06c-abc2-e811-a9b0-000d3a10e09e",  
          "lwicontexts" :"{\"msdyn_cartvalue\":\"10000\", \"msdyn_isvip\":\"false\", \"portalcontactid\":\"87b4d06c-abc2-e811-a9b0-000d3a10e09e\"}", 
          "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 のメソッド名は、オムニチャネル管理アプリの認証設定レコードを作成するために使用されます。

      // 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 コード フローや OAuth 2.0 OpenID 接続フローの実践的なナレッジが組織にあることを確認してください。 両方の種類の手順については、次のセクションで概要を説明します。

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

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

  1. Customer Service 管理センターまたはオムニチャネル管理センター アプリのサイト マップで、顧客設定 を選択してから 認証設定の管理 を選択します。 既存の認証設定のリストが表示されます。

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

    1. チャネルの種類 ページで名前を入力して、チャネルの種類として Apple Messages for Business を選択します。
      既定では、認証の種類は OAuth 2.0 コード フロー です。

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

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

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

    5. 概要 ページを確認し、終了 を選択します。 認証の設定を構成しました。

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

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

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

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

    2. 認証タイプ OAuth 2.0 OpenID 接続フロー を変更します。

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

      • クライアント ID: 認証サーバーが発行した OAuth 2.0 クライアント識別子。
      • クライアント シークレット: 承認サーバーに送信された要求を認証するために使用するクライアント シークレット。
      • スコープ: 追加された各スコープは、顧客に要求したユーザー データを指定します。 スコープのコンテンツは、サービス プロバイダーから入手できるものと、完全に一致する必要があります。
      • アクセス トークン 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 ポータルに埋め込む
顧客を自動的に識別する