

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

# 为托管的通信小部件启用客户身份验证
<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)数据块。此数据块可在流中对聊天联系进行身份验证，并根据身份验证结果将他们引导到特定路径。