設定驗證設定

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

為了指示客戶是否已通過身份驗證,座席會在「對話摘要 」部分收到通知 。 “已驗證” 字段根據客戶的身份驗證狀態設置為 “是 ”或 “否 ”。 有關詳細資訊,請參閱 對話摘要

先決條件

  • 請確定您的組織具備 OAuth 2.0 和 JSON Web 權杖 (JWT) 的相關工作知識。
  • 確認您是否有安全資料行的權限。 有關詳細資訊,請參閱 配置訪問安全列的許可權

建立聊天的驗證設定記錄

您可以在管理員應用程式中建立聊天驗證設定記錄。

  1. 在 Customer Service 系統管理中心的網站地圖中,選取客戶支援中的客戶設定客戶設定頁面隨即出現。

  2. 驗證設定區段中,選取管理驗證設定頁面會出現。

  3. 選擇「 新建身份驗證設置」,然後在「 添加身份驗證設置 」頁上提供以下資訊:

    • 名稱:輸入驗證設定的名稱。

    • 擁有者: 接受預設值或將其更改為必需值。

    • 身份驗證類型: 預設情況下,無法編輯 OAuth 2.0 隱式流。

    • 公開金鑰 URL:指定網域的公開金鑰 URL。 此 URL 用於驗證來自客戶登錄的域的 JavaScript 物件表示法 (JSON) Web 令牌 (JWT) 的資訊。

    • JavaScript 用戶端函數:指定要用於驗證的 JavaScript 用戶端函數。 此函數會從權杖端點擷取權杖。

      設定聊天驗證設定記錄。

    在本文後面的「門戶 設置 Power Apps 」或 「自定義門戶 的設置」部分中 了解有關如何查找公鑰 URL 和 JavaScript 用戶端函數的更多資訊。

  4. 選取儲存

使用 OAuth 2.0 建立聊天的驗證設定記錄

  1. 執行「為聊天 創建身份驗證設置記錄」中的步驟 1 到 3,然後在「 添加身份驗證設置 」頁面上輸入以下詳細資訊:

    • 名稱:驗證設定的名稱。
    • 管道類型即時聊天
    • 驗證類型:OAuth 2.0 隱含流程
  2. 選取下一步,並在詳細資料頁面中輸入下列資訊:

    • 權杖自訂動作:自訂代碼參考,以驗證識別提供者提供的權杖並傳回已驗證使用者的使用者識別碼。
    • 令牌 URL:用於交換您的授權代碼的 URL,用於交換傳遞給自定義操作以獲取使用者 ID 的令牌。
    • 重定向 URL:傳遞給原始授權代碼請求的 URL,這是調用令牌交換 端點 時的必填參數。
    • 用戶端 ID:傳遞給令牌交換 端點 的用戶端的 ID。
    • 用戶端金鑰:對傳遞給令牌交換 端點 的客戶端進行身份驗證的密鑰。
    • 範圍:使用者透過流程中取得之權杖所獲授權的範圍。
  3. 儲存變更。

新增聊天 Widget 驗證

  1. 在 Customer Service 系統管理中心 中,在工作流設置中編輯 聊天 Widget,然後轉到 “行為” 選項卡。

  2. 驗證設定方塊中,瀏覽並選取聊天驗證記錄。

當入口網站上的登入客戶開啟聊天 Widget 時,JavaScript 用戶端函數會將 JWT 從用戶端傳遞至伺服器。 使用公鑰對 JWT 進行解密和驗證,然後將資訊傳遞給聊天代理 Customer Service 全通路。 做為系統管理員,您也可以定義自訂的上下文變數,傳遞有關 JWT 登入客戶的其他資訊。 上下文變數的定義必須與它們在與 聊天 Widget 關聯的工作流中的定義完全相同。 有關詳細資訊,請參閱 管理上下文變數

設定 Power Apps 入口網站

如果您在使用 Power Apps 門戶開發的網站上為 聊天 Widget 添加身份驗證,則公鑰 URL 和 JavaScript 用戶端函數開箱即用。 您需要 上傳自定義證書 才能在門戶上 Power Apps 獲得有效的公鑰 URL。

  • 公開金鑰 URL<portal_base_URL>/_services/auth/publickey
  • JavaScript 用戶端函數auth.getAuthenticationToken

門戶 Power Apps 嘗試通過其 JavaScript 用戶端函數中傳遞的上下文自動將聯繫人記錄 連結 到對話中。

設定自訂入口網站

如果將經過身份驗證的聊天體驗添加到不是使用 Power Apps 門戶開發的自定義網站,則 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 會參考金鑰識別元。 金鑰識別元配對必須是唯一的。 在第 4 步中,需要將孩子傳入 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)。 您的標頭類似於以下示例:Your header looks similar to the following example:

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

    b. JWT 承載應包含下列項目:

    • 至少,以下聲明:

      索賠 定義
      iss 權杖的簽發者。
      iat 以數值日期格式發行權杖的日期。
      exp 此權杖的到期日 (數值日期格式)。
      sub 宣告的主旨。
      注意: 我們建議您將聯繫人或客戶記錄的 GUID 客戶服務 傳遞給已登錄的使用者。 此 GUID 用於識別聯繫人記錄並將其 連結 到對話中。 記錄搜索可識別具有聯繫人或帳戶的活動狀態代碼的記錄。 如果您使用自定義狀態代碼,則記錄標識不起作用。
    • lwicontexts 這個內容變數可傳入做為交談之一部分,以作路由傳遞之用,或顯示給專員。
      請至下列地方深入了解
      管理自訂上下文
      setAuthTokenProvider 方法
      使用內容變數來自動識別記錄

    • 任何其他要傳遞的資料。

    有效負載應類似於以下示例:Your payload should look similar to the following example:

      { 
          "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 簽章應以您的私密金鑰來簽署。

    注意

  2. 在您的網站上創建一個 JavaScript 函數,該函數接受回調函數並將 JWT 傳回給回調函數。 為避免逾時,此 JavaScript 函數必須在 10 秒內傳回 JWT。 此 JWT 必須滿足以下條件:

    • 它必須包含步驟 3 中的標頭、有效負載和簽名。

    • 它必須由步驟 1 中金鑰對中的私鑰簽名。

      我們建議在您的 Web 伺服器上產生您的 JWT。

      此 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 用戶端函數的名稱。 即時 聊天 Widget 在聊天開始時在內部調用此名稱。

    範例:auth.getAuthenticationToken

    注意

    如果使用者體驗會在驗證使用者使用者之前公開聊天按鈕,請務必視需要將這些使用者重新導向至您的驗證頁面。 您可以在步驟 4 中的方法中設置重定向,也可以在使用者流中作為早期步驟設置重定向。

    下圖示範安裝程式。

    已驗證的聊天設定。

    您可以接著依照下列步驟設定已驗證的聊天:

設定已驗證的聊天

  1. 轉到管理員應用,並使用上一部分第 5 步中的資訊創建身份驗證設置記錄。 有關詳細資訊,請參閱 創建聊天的身份驗證設置記錄

  2. 將身份驗證設置關聯到具有經過身份驗證體驗的 聊天 Widget。 有關詳細資訊,請參閱 向 聊天 Widget 添加身份驗證

    下圖示範使用者在已驗證設定中存取聊天時的呼叫順序。

    已驗證的聊天執行階段。

建立 Apple Messages for Business 的驗證設定

先決條件

  • 配置身份驗證設置的管理員需要更多安全許可權。 有關詳細資訊,請參閱 為欄位設置安全許可權

  • 確保您的組織具有 OAuth 2.0 OpenID 連線 流程的應用知識。 下一節將概述步驟。

  • 確認您的組織至少有一個 Apple Messages for Business 驗證類型多媒體訊息。 設置需要此豐富的消息配置。

使用 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. 新增驗證設定頁面中,提供下列資訊:

      • 用戶端值:授權伺服器所簽發的 OAuth 2.0 用戶端識別碼。
      • 用戶端密碼:用於驗證傳送至授權伺服器之要求的用戶端密碼。
      • 範圍:添加的每個範圍都指定您從客戶處請求的用戶數據片段。 範圍內容必須完全符合透過服務提供者所提供的內容。
      • 存取權杖 URL:服務提供者可從中要求存取權杖的端點。
      • 解密的令牌 URL:OAuth 2.0 API 可以在其中檢索範圍內請求的客戶資訊的 端點。
      • 其他參數:允許驗證服務接受要求中的額外參數。
    4. 其他詳細資料頁面上,您可以選擇定義存取權杖到期時間 (以秒為單位)。 預設到期時間為一小時。
      在指定時間之後,先前經過身份驗證的對話的「客戶摘要」部分中的「 已驗證」 欄位將更改為 「否 」。

    5. 在「豐富消息 頁上,選擇「添加 ,然後選擇一個或多個要與此身份驗證設置關聯的豐富消息。

    6. 檢閱摘要頁面,然後選取下一步。 驗證設定已設定。

    7. 重新導向資訊頁面中,複製 URL。 您可以將此 URL 添加到身份驗證服務提供者的網站,位於允許的回調 URL 下。

    8. 選取完成

將驗證新增至 Apple Messages for Business 管道

  1. 打開包含要為其添加身份驗證的通道實例的工作流。

  2. 在通道設置的「 行為 」頁上,導航到 「身份驗證設置」 啟用該功能,然後從下拉功能表中選擇正確的設置。 有關詳細資訊, 請參閱 Apple Messages for Business 配置頻道

  3. 若要查看或更新每個通道實例的身份驗證設置,請選擇“編輯 ”。

新增聊天 widget
設定交談前問卷
建立快速回覆
建立和管理營運時間
在 Power Apps 入口網站中內嵌聊天 Widget
自動識別客戶