

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

# 在代理工作区中集成第三方应用程序
<a name="3p-apps"></a>

Connect Customer 代理工作区为您的代理提供工具和分步指导，以快速解决问题，并以更少的培训提供更好的客户体验。代理工作区包括本机第一方应用程序，例如客户档案、案例和代理协助。您还可以集成第三方应用程序。

**注意**  
Third-party 仅在 Connect Customer 代理工作区中支持应用程序；自定义代理桌面不支持应用程序。

例如，您可以将专有预订系统或第三方理赔管理系统仪表板集成到代理工作区中。

如果您是有意构建第三方应用程序的开发人员，请参阅[《座席工作区开发人员指南》](https://docs.aws.amazon.com/agentworkspace/latest/devguide/getting-started.html)。

**Topics**
+ [集成类型](#3p-apps-integration-types)
+ [所需的 IAM 权限](#onboard-3p-apps-requirements)
+ [添加 3P 应用程序](#onboard-3p-apps-how-to-integrate)
+ [删除集成](#delete-3p-apps)
+ [分配权限](assign-security-profile-3p-apps.md)
+ [3P 应用程序的 Iframe 权限](3p-apps-iframe-permissions.md)
+ [3P 应用程序的事件和请求](3p-apps-events-requests.md)
+ [访问代理工作区中的 3P 应用程序](3p-apps-agent-workspace.md)
+ [为 3P 应用程序设置 SSO 联合](3p-apps-sso.md)
+ [在 Connect Customer 代理工作区中使用第三方应用程序的屏幕弹出功能](no-code-ui-builder-app-integration.md)
+ [构建第三方应用程序的研讨会](https://catalog.workshops.aws/amazon-connect-agent-empowerment/en-US/third-party-applications/test)

## 集成类型
<a name="3p-apps-integration-types"></a>

集成将 Connect Customer 外部的东西连接到您的实例。您只需为一个 AWS 账户和区域创建一次集成，将其与一个或多个实例关联并授予其权限。您可以在 “**添加集成**” 页面上选择集成类型。该类型决定了您的配置内容以及 “连接客户” 如何实现集成。
+ **标准应用程序**：连接客户在代理工作区的 iframe 中呈现的 Web 应用程序。代理从**应用程序**启动器将其打开。您可以提供访问网址、iframe 权限和在应用程序刷新时设置的联系范围。将此类型用于您的代理人使用的应用程序，例如订单查询工具或日程安排应用程序。
+ **服务**：您构建并在代理工作区后台运行的无头应用程序。服务在代理工作区加载时启动，并在会话的其余部分中保持活动状态。它没有可供代理打开的接口。将此类型用于单独运行的工作，例如对联系人事件（例如连接、断开连接和联系工作后）做出反应，在满足条件时打开应用程序，或者在会话开始后立即完成身份验证流程。有关更多信息，请参阅《*代理工作区开发人员指南》[中的](https://docs.aws.amazon.com/agentworkspace/latest/devguide/building-3P-services.html)构建第三方服务*。
+ **MCP 服务器**：一种模型上下文协议服务器，为 Connect Customer 中的 AI 代理提供一组可供调用的工具。您可以通过 Bedrock AgentCore 网关而不是访问 URL 进行连接，并且每个网关都为一个 MCP 服务器提供服务。有关完整过程，请参阅[将 MCP 服务器与 Connect Customer 集成](3p-apps-mcp-server.md)。

以下步骤描述了如何添加标准应用程序。

## 所需的 IAM 权限
<a name="onboard-3p-apps-requirements"></a>

如果您使用自定义 IAM 策略来管理对第三方应用程序的访问权限，则您的用户需要额外的 IAM 权限。此外`AmazonConnect_FullAccess`，用户还需要以下内容：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "app-integrations:CreateApplication",
                "app-integrations:GetApplication",
                "iam:GetRolePolicy",
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy"
            ],
            "Resource": "arn:aws:app-integrations:{{us-east-1}}:{{111122223333}}:application/*",
            "Effect": "Allow"
        }
    ]
}
```

------

## 添加第三方应用程序
<a name="onboard-3p-apps-how-to-integrate"></a>

**注意**  
要向您的实例添加集成，请确保您的实例使用 Service-Linked 角色 (SLR)。如果您的实例当前不使用 SLR，但您希望添加集成，则需要迁移到 SLR。只能将集成添加到使用 SLR 的实例中。有关更多信息，请参阅 [适用于 2018 年 10 月之前创建的实例](connect-slr.md#migrate-slr)。

1. 打开 “连接客户” [ 控制台](https://console.aws.amazon.com/connect/)（https://console.aws.amazon.com/connect/）。

1. 在导航窗格中，选择**集成**。如果您没有看到此菜单，则说明您所在的 AWS 地区无法使用 3P 应用程序。要查看 3P 应用程序在哪里可用，请参阅[的可用性 Connect Customer 按地区划分的功能](regions.md)。

1. 在**集成**页面上，选择**添加集成**。  
![连接客户控制台上的集成页面。](https://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/integrations-list.png)

1. 在**添加集成**页面上，填写**集成信息**字段：
   + **显示名称**：3P 应用程序的友好名称。该名称出现在安全配置文件和代理工作区的选项卡上。您可以稍后进行更改。
   + **描述（可选）**：3P 应用程序的描述。代理看不到描述。
   + **集成类型**：指明集成是标准 Web 应用程序（3P 应用程序）、服务（3P 服务）还是 MCP 服务器。类型决定了代理如何与集成进行交互。
   + **集成标识符**：标准应用程序或服务类型的集成的唯一名称。如果每个访问 URL 只有一个应用程序，建议您使用该访问 URL 的来源。您无法更改空间名称。

   填写**集成详细信息**字段：
   + **联系范围**：指示 Web 应用程序是针对每个联系人刷新还是仅针对每个新的浏览器会话刷新。此设置会影响应用程序更新其数据的频率。
   + **初始化超时**：与工作空间建立连接的最大时间，以毫秒为单位。此设置有助于管理连接问题并确保应用程序及时启动。

   填写 “**访问权限**” 字段：
   + **访问网址**：托管应用程序的 URL。除非是本地主机`https`，否则该网址必须以开头。并非所有 URL 都可使用内嵌框架。有关更多信息，请参阅 [检查网址是否可以构图](#3p-apps-check-url-iframe)。
   + **批准的来源（可选）**：允许的其他网址，如果它们与访问网址不同。除非是本地主机`https`，否则每个 URL 都必须以开头。

   为[事件和请求添加权限](3p-apps-events-requests.md)，并设置 ** Iframe 配置**。两者都是可选的。

   在 “**实例关联” 下**，选择可以使用该应用程序的实例：
   + 您可以授予该 AWS 账户和区域中的任何实例访问该应用程序的权限。
   + 将集成与实例关联是可选的，但只有这样做才能使用该应用程序。
**注意**  
对于 MCP 服务器，您只能选择使用所选网关发现 URL 配置的实例。

1. 选择**添加集成**。

1. 如果成功创建集成，则会显示带有成功横幅的**集成详细信息**页面。  
![带有成功横幅的集成详情页面。](https://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/integrations-view.png)

   您可以编辑现有集成的某些属性，例如其显示名称、访问 URL 和权限。

   如果在创建集成或将其与实例关联时发生错误，则会显示一条错误消息。按照消息更正问题。

### 检查网址是否可以构图
<a name="3p-apps-check-url-iframe"></a>

并非所有 URL 都可使用内嵌框架。有两种方法可以检查网址是否可以 iframe：
+ 使用第三方工具 [ Iframe Tester ](https://iframetester.com) 来检查网址是否可以构图。
  + 如果网址可以成为 iframe，则该页面将呈现预览。
  + 如果某个 URL 无法构图，则该页面在预览中会显示错误。即使应用程序仍可以在代理工作区中使用 iframe，网站仍可能显示错误。应用程序开发人员可以限制其应用程序，使其只能嵌入到代理工作区中。如果您从应用程序开发者那里收到了应用程序，请仍尝试将其集成到代理工作区中。
+ 对于技术用户：查看要集成的应用程序的安全策略内容。
  + Firefox：打开汉堡菜单，然后选择 “**更多工具” **、“**Web 开发者工具” **、“**网络” **。
  + Chrome：打开三点式菜单，然后选择 “**更多工具”、“**开发者工具**” **、“**网络**”。
  + 其他浏览器：在开发者工具中查找网络设置。

  该`Content-Security-Policy frame-ancestors`指令应该是`https://{{your-instance}}.my.connect.aws`。如果指令为`same origin`或`deny`，则连接客户无法对该网址进行构图。

如果应用程序无法生成 iframe，你可以做以下操作：
+ 如果您控制应用程序或 URL，请更新应用程序的内容安全政策。有关指导，请参阅*代理工作区开发人员指南[中的](https://docs.aws.amazon.com/agentworkspace/latest/devguide/recommendations-and-best-practices.html)建议和最佳实践*。
+ 如果您无法控制应用程序或 URL，请要求应用程序开发者更新应用程序的内容安全政策。

### 示例：添加应用程序并分配权限
<a name="3p-apps-example-add-application"></a>

以下示例显示如何在中载入新应用程序并为其分配权限 AWS 管理控制台。在此示例中，您为应用程序分配了六个权限。

**基本信息和访问详情 **

![显示基本信息和访问字段的 “添加集成” 页面。](https://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/integrations-add-basic-info.png)


**工作空间数据集成的权限 **

![“添加集成” 页面的权限部分。](https://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/integrations-add-permissions.png)


**Iframe 配置**

![“添加集成” 页面的 iframe 配置部分。](https://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/integrations-add-iframe-config.png)


## 删除集成
<a name="delete-3p-apps"></a>

如果您不再需要集成，则可以将其删除。要暂时停止使用集成，请改为将其与实例取消关联。取消关联可以避免再次添加集成。要删除集成，请打开 AWS 管理控制台，选择集成，然后选择**删除**。

### 问题排查
<a name="delete-3p-apps-troubleshooting"></a>
+ 如果集成仍与实例关联，则删除失败。取消集成与每个实例的关联，然后将其删除。

**提示**  
如果您在 2023 年 12 月 15 日之前创建了集成，则可能无法更新其与实例的关联。您需要先更新您的 IAM 政策。

![由于权限不足，尝试删除集成时出现 IAM 错误。](https://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/delete-3p-apps.png)


更新您的 IAM 政策以包括以下权限：
+ `app-integrations:CreateApplicationAssociation`
+ `app-integrations:DeleteApplicationAssociation`

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "app-integrations:CreateApplication",
                "app-integrations:GetApplication"
            ],
            "Resource": "arn:aws:app-integrations:{{us-east-1}}:{{111122223333}}:application/*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "app-integrations:CreateApplicationAssociation",
                "app-integrations:DeleteApplicationAssociation"
            ],
            "Resource": "arn:aws:app-integrations:{{us-east-1}}:{{111122223333}}:application-association/*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:GetRolePolicy",
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy"
            ],
            "Resource": "arn:aws:iam::{{111122223333}}:role/aws-service-role/connect.amazonaws.com/AWSServiceRoleForAmazonConnect_*",
            "Effect": "Allow"
        }
    ]
}
```

------