

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Amazon Connect 中為聊天聯絡設定客戶身分驗證
<a name="customer-auth"></a>

您可以提示客戶在聊天期間登入和驗證。例如，系統會提示與聊天機器人互動的未驗證客戶在轉接至客服人員之前登入。

此內建功能會利用 Amazon Connect Customer Profiles 和 [Amazon Cognito](https://aws.amazon.com/cognito/)。如果您在設定期間選擇預設設定，則使用 Amazon Connect 執行個體中[已啟用](enable-customer-profiles.md)的客戶設定檔無需額外費用。如需 Amazon Cognito 定價的詳細資訊，請參閱 [Amazon Cognito 定價](https://aws.amazon.com/cognito/pricing/)頁面。

若要設定聊天的客戶身分驗證：

1. 為您的 Amazon Connect 執行個體[啟用客戶身分驗證](enable-connect-managed-auth.md#enable-customer-auth)。

1. [啟用身分驗證訊息](enable-connect-managed-auth.md#enable-auth-message).

1. 將 [驗證客戶](authenticate-customer.md) 區塊新增至流程。

如果您的聯絡中心使用 Amazon Connect 外部的現有身分驗證解決方案，請參閱 [聊天前身分驗證](pre-chat-auth.md)。

# 啟用託管通訊小工具的客戶身分驗證
<a name="enable-connect-managed-auth"></a>

本主題說明如何在使用 Amazon Connect 託管通訊小工具進行聊天時設定身分驗證。您可以為 Amazon Connect 執行個體啟用客戶身分驗證，然後啟用身分驗證訊息，顯示開啟 Amazon Cognito 託管 UI 快顯視窗的連結。

## 必要的 IAM 政策
<a name="auth-page-iam-policies"></a>

如果您使用自訂 IAM 政策來管理對 Amazon Connect 主控台的存取，請參閱 [自訂 IAM 政策的必要許可](security-iam-amazon-connect-permissions.md) 以取得存取**客戶身分驗證**頁面所需的許可清單。

## 在 Amazon Connect 執行個體中啟用客戶身分驗證
<a name="enable-customer-auth"></a>

1. 在 [https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/) 開啟 Amazon Connect 主控台。

1. 在執行個體頁面上，選擇執行個體別名。執行個體別名也是您的**執行個體名稱**，它會出現在您的 Amazon Connect URL 中。下圖顯示 **Amazon Connect 虛擬聯絡中心執行個體**頁面，其中包含執行個體別名周圍的方塊。  
![\[Amazon Connect 虛擬聯絡中心執行個體頁面，即執行個體別名。\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/instance.png)

1. 在左側導覽功能表中，選擇**應用程式**、**客戶身分驗證**。如果您沒有看到此選項，則可能不適用於您的 AWS 區域。如需客戶身分驗證可用位置的詳細資訊，請參閱 [客戶身分驗證可用性 (按區域)](regions.md#customerauthentication_region)。

1. 在**客戶身分驗證**頁面上，選擇**在 Amazon Cognito 中建立使用者集區**。這樣會開啟 Amazon Cognito 主控台。

1. 透過您的身分提供者建立新的使用者集區。如需指示，請參閱《Amazon Cognito 開發人員指南》**中的[開始使用使用者集區](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-user-pools.html)。
**注意**  
當您設定 Amazon Cognito 應用程式用戶端時，必須選取**不要產生用戶端密碼**。僅支援沒有用戶端密碼的 Amazon Cognito 應用程式用戶端。如需詳細資訊，請參閱《Amazon Cognito 開發人員指南》**中的[使用應用程式用戶端的特定應用程式設定](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html)。

1. 建立 Amazon Cognito 使用者集區之後，請返回**客戶身分驗證**頁面，然後選擇**關聯使用者集區**。

1. 在**使用者集區**區段中，從下拉式功能表中選擇您建立的使用者集區，然後選擇**確認**。

   這會將使用者集區與您的 Amazon Connect 執行個體建立關聯。它可讓 [驗證客戶](authenticate-customer.md) 流程區塊存取使用者集區。

1. 繼續至下一個步驟：[啟用身分驗證訊息](#enable-auth-message)。

## 啟用身分驗證訊息
<a name="enable-auth-message"></a>

若要啟用身分驗證訊息，請在程式碼片段結尾新增身分驗證參數程式碼片段變數。如需新增程式碼片段變數的詳細資訊，請參閱 [Amazon Connect 中支援的可自訂小工具程式碼片段欄位](supported-snippet-fields.md)。下列程式碼是您需要新增的身分驗證參數程式碼片段範例。

```
amazon_connect('authenticationParameters', { 
    redirectUri: 'your_redirect_url', // https://example.com 
    identityProvider: 'your_identity_provider_name' //optional
 });
```

其中：
+ `redirectUri` 是您在 IdP (身分提供者) 和 Amazon Cognito 中設定的重新導向 URI。這是您的客戶在登入後自動導向的位置。在此頁面上，您可以檢查 URL 參數，如果有程式碼和狀態，您可以使用這些值呼叫 [UpdateParticipantAuthentication](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateParticipantAuthentication.html) API。API 呼叫完成後，請關閉快顯視窗；客戶會回到聊天體驗。
+ `identityProvider` 是您在 Amazon Cognito 中設定的身分提供者名稱。此欄位為選用欄位。如果提供值，則登入連結會自動將客戶導向身分提供者的登入頁面，而不是 Amazon Cognito 受管登入頁面，客戶必須在其中選取要用於登入的身分提供者。

 當流程到達 [驗證客戶](authenticate-customer.md) 區塊時，您可以註冊回撥並在本機儲存狀態，以在重新導向 URI 中驗證，如下列範例程式碼片段所示：

```
amazon_connect('registerCallback', {
       'AUTHENTICATION_INITIATED' : (eventName, data) => {
            console.log(data.state)
        },
      });
```

啟用客戶身分驗證後，請將 [驗證客戶](authenticate-customer.md) 區塊新增至流程。此區塊會在流程期間驗證聊天聯絡，並根據身分驗證結果將其轉接到特定路徑。

# 使用 Amazon Connect StartChatContact API 進行聊天前身分驗證
<a name="pre-chat-auth"></a>

在開始聊天之前在網站或行動應用程式中驗證的客戶，可以在啟動聊天時辨識為已驗證。您可以使用 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html) API 來執行此操作。

已驗證的客戶開始聊天後，請使用 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html) API 中的參數來設定其狀態，如下列程式碼片段所示：

```
"SegmentAttributes": {
    "connect:CustomerAuthentication" : { 
        "ValueMap": {
            "Status": {
                "ValueString": "AUTHENTICATED"
            }
        }
    },
    "CustomerId": "12345"
```

`CustomerId` 是識別客戶的選用欄位。這可以是 Amazon Connect Customer Profiles ID 或來自外部系統的自訂識別符，例如 CRM。