

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Amazon Connect 中为聊天联系设置客户身份验证
<a name="customer-auth"></a>

您可以在聊天中提示客户登录并进行身份验证。例如，与聊天机器人互动的未通过身份验证的客户在被路由到座席之前，系统会提示他们先登录。

此内置功能利用了 Amazon Connect Customer Profiles 和 [Amazon Cognito](https://aws.amazon.com/cognito/)。使用 Customer Profiles 不会产生额外费用，如果您在设置过程中选择了默认设置，则已在您的 Amazon Connect 实例中[启用](enable-customer-profiles.md)了 Customer Profiles。有关 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. 打开 Amazon Connect 控制台，网址为[https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/)。

1. 在“实例”页面上，选择实例别名。实例别名也是您的**实例名称**，该名称显示在您的 Amazon Connect URL 中。下图显示了 **Amazon Connect 虚拟联系中心实例**页面，其中，实例别名周围有一个方框。  
![\[“Amazon Connect 虚拟联络中心实例”页面，实例别名。\]](http://docs.aws.amazon.com/zh_cn/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 Developer Guide》**中的 [Application-specific settings with app clients](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。这是您的客户登录后自动定向之处。在此页面中，您可以检查网址参数，如果有代码和状态，则可以使用这些值调用 [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 Connec StartChatContact t 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）的自定义标识符。