本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 IAM 为 Connect 客户配置 SAML
Connect Customer 支持身份联合,方法是使用 AWS IAM 配置安全断言标记语言 (SAML) 2.0,以启用从您的组织到 Connect Customer 实例的基于 Web 的单点登录 (SSO)。这允许您的用户登录组织中由兼容 SAML 2.0 的身份提供商 (IdP) 托管的门户,并以单点登录体验登录到 Connect Customer 实例,而不必为 Connect 客户提供单独的凭据。
重要提示
在开始之前,请注意以下事项:
-
这些说明不适用于 Connect 客户全球弹性部署。有关适用于 Connect 客户全球弹性的信息,请参阅将您的身份提供商 (IdP) 与 Connect 客户全球弹性 SAML 登录端点集成。
-
选择基于 SAML 2.0 的身份验证作为 Connect Customer 实例的身份管理方法需要配置联合。AWS Identity and Access Management
-
Connect Customer 中的用户名必须与身份提供者 RoleSessionName 返回的 SAML 响应中指定的 SAML 属性相匹配。
-
Connect Customer 不支持反向联合。也就是说,您无法直接登录 Connect Customer。如果您尝试,则会收到会话已过期消息。身份验证应通过身份提供商 (IdP) 完成,而不是通过服务提供商 (SP) (Connect Customer) 完成。
-
默认情况下,大多数身份提供商使用全球 AWS 登录终端节点作为应用程序使用者服务 (ACS),该服务托管在美国东部(弗吉尼亚北部)。建议覆盖此值,以使用与在其中创建实例的 AWS 区域 匹配的区域端点。
-
所有 Connect Customer 用户名都区分大小写,即使在使用 SAML 时也是如此。
-
如果您有使用 SAML 设置的旧 Connect 客户实例,并且需要更新您的 Connect 客户域,请参阅个人设置。
在 Connect 客户中使用 SAML 的概述
下图显示了 SAML 请求对用户进行身份验证并与 Connect Customer 联合的步骤顺序。它不是威胁模型的流程图。
SAML 请求将经历以下步骤:
-
用户浏览内部门户,其中包含用于登录 Connect Customer 的链接。该链接由身份提供商定义。
-
联合身份验证服务请求从组织的身份存储进行身份验证。
-
该身份存储将对用户进行身份验证,并将身份验证响应返回到联合身份验证服务。
-
在身份验证成功后,联合身份验证服务会将 SAML 断言发布到用户的浏览器。
-
用户的浏览器将 SAML 断言发布到 AWS 登录 SAML 端点 ()。https://signin.aws.amazon.com/saml AWS 登录接收 SAML 请求,处理请求,对用户进行身份验证,并使用身份验证令牌启动浏览器重定向到 Connect Customer 端点。
-
Connect Customer 使用中的身份验证令牌对用户进行授权,并在其浏览器中打开 Connect Customer。 AWS
为 Connect 客户启用 SAML-based 身份验证
要启用和配置 SAML 身份验证以用于您的 Connect Customer 实例,需要执行以下步骤:
-
创建 Connect Customer 实例,然后选择基于 SAML 2.0 的身份验证进行身份管理。
-
在您的身份提供商和 AWS之间启用 SAML 联合。
-
将 Connect 客户用户添加到您的 Connect 客户实例。使用您在创建实例时创建的管理员账户登录实例。转至用户管理页面,然后添加用户。
重要
-
有关用户名中允许使用的字符列表,请参阅CreateUser操作中该
Username属性的文档。 -
由于 Connect Customer 用户和 AWS IAM 角色之间存在关联,因此用户名必须与您的 AWS IAM 联合集成配置完全匹配,后者通常会成为您目录中的用户名。 RoleSessionName 用户名的格式应与RoleSessionName和 C onnect Customer 用户的格式条件的交集相匹配,如下图所示:
-
-
针对 SAML 断言、身份验证响应和中继状态配置您的身份提供商。用户登录到您的身份提供商。成功后,他们将被重定向到您的 Connect 客户实例。IAM 角色用于与联合 AWS,从而允许访问 Connect 客户。
在创建实例期间选择基于 SAML 2.0 的身份验证
在创建 Connect Customer 实例时,请选择基于 SAML 2.0 的身份验证选项进行身份管理。在第二步中,当您为实例创建管理员时,所指定的用户名必须完全匹配您的现有网络目录中的相应用户名。没有用来为管理员指定密码的选项,因为密码是通过您的现有目录进行管理的。管理员在 Connect Customer 中创建并分配管理员安全配置文件。
您可以使用管理员帐户通过您的 IdP 登录您的 Connect Customer 实例,添加其他用户。
在您的身份提供商和之间启用 SAML 联合 AWS
要为 Connect Customer 启用 SAML-based 身份验证,您必须在 IAM 控制台中创建身份提供商。有关更多信息,请参阅允许 SAML 2.0 联合用户访问 AWS 管理控制台。
为 Connect 客户创建身份提供者的 AWS 过程与创建身份提供者的过程相同。上面流程图中的第 6 步显示客户端被发送到您的 Connect 客户实例,而不是 AWS 管理控制台。
启用 SAML 联合所需的步骤 AWS 包括:
-
在中创建 SAML 提供商。 AWS有关更多信息,请参阅创建 SAML 身份提供商。
-
使用 AWS 管理控制台创建用于 SAML 2.0 联合身份验证的 IAM 角色。仅为联合身份验证创建一个角色(仅需要一个角色并用于联合身份验证)。IAM 角色决定通过您的身份提供商登录的用户在 AWS中拥有的权限。在本例中,权限用于访问 Connect 客户。您可以使用 Connect Customer 中的安全配置文件来控制 Connect Customer 功能的权限。有关更多信息,请参阅创建用于 SAML 2.0 联合身份验证的角色(控制台)。
在步骤 5 中,选择 “允许编程访问 AWS 和管理控制台”。创建过程准备创建用于 SAML 2.0 联合身份验证的角色中的主题所描述的信任策略。然后创建策略来为您的 Connect 客户实例分配权限。权限从 “为 SAML-based 联合身份验证创建角色” 过程的第 9 步开始。
创建向用于 SAML 联合身份验证的 IAM 角色分配权限的策略
-
在附加权限策略页面上,选择创建策略。
-
在创建策略页面上,选择 JSON。
-
复制以下示例策略之一,将其粘贴到 JSON 策略编辑器中,以替换任何现有文本。可以使用策略来启用 SAML 联合身份验证,或根据您的特定要求对其进行自定义。
使用此策略为特定 Connect Customer 实例中的所有用户启用联合。要进行 SAML-based 身份验证,请
Resource将的值替换为您创建的实例的 ARN:使用此策略启用与特定的 Connect 客户实例的联合。将
connect:InstanceId的值替换为您的实例的实例 ID。使用该策略为多个实例启用联合身份验证。注意在所列实例 ID 两侧加括号。
-
创建策略后,选择下一步:审核。然后返回到 “为 SAML 2.0 SAML-based联合创建角色(控制台)” 主题中 “为联合身份验证创建角色” 过程中的步骤 10。
-
-
将您的网络配置为适用于 AWS的 SAML 提供商。有关更多信息,请参阅允许 SAML 2.0 联合用户访问 AWS 管理控制台。
-
为身份验证响应配置 SAML 断言。有关更多信息,请参阅为身份验证响应配置 SAML 断言。
-
对于 Connect 客户,请将应用程序起始网址留空。
-
覆盖身份提供商中的应用程序使用者服务 (ACS) 网址,以使用与您的 Connect Customer 实例一致 AWS 区域 的区域终端节点。有关更多信息,请参阅 将身份提供商配置为使用区域 SAML 端点。
-
将身份提供商的中继状态配置为指向您的 Connect Customer 实例。用于中继状态的 URL 的构成如下:
https://region-id.console.aws.amazon.com/connect/federate/instance-id将替换为您创建 Connect Customer 实例的地区名称,例如美国东部(弗吉尼亚北部)的 us-east-1。
region-id将instance-id替换为您的实例的实例 ID。GovCloud 举个例子,网址是 https://console.amazonaws-us-gov.com/:
-
https://console.amazonaws-us-gov.com/connect/federate/instance-id
注意
您可以通过在 Connect Customer 控制台中选择实例别名来找到您的实例的实例 ID。实例 ID 是概述页面上显示的实例 ARN 中“/instance”后面的数字和字母集。例如,在下列实例 ARN 中的实例 ID 为 178c75e4-b3de-4839-a6aa-e321ab3f3770。
arn:aws:connect:us-east-1:450725743157:instance/178c75e4-b3de-4839-a6aa-e321ab3f3770
-
将身份提供商配置为使用区域 SAML 端点
为了提供最佳可用性,我们建议使用与您的 Connect Customer 实例一致的区域 SAML 终端节点,而不是默认的全局终端节点。
以下步骤与 IdP 无关;它们适用于任何 SAML IdP(例如 Okta、Ping、、 OneLogin Shibboleth、ADFS、AzuRead 等)。
-
更新(或覆盖)断言使用者服务 (ACS) URL。有两种方法可以做到这一点:
-
选项 1:下载 S AWS AML 元数据并将该
Location属性更新为您选择的区域。将此新版本的 AWS SAML 元数据加载到您的 IdP 中。以下是修订的示例:
<AssertionConsumerService index="1" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://region-id.signin.aws.amazon.com/saml"/> -
选项 2:覆盖您的 IdP 中的 AssertionConsumerService (ACS) 网址。对于 IdPs 像 Okta 这样提供预制 AWS 集成的内容,你可以在管理员控制台中覆盖 ACS 网址。 AWS 使用相同的格式覆盖您选择的区域(例如,https://
region-id.signin.aws.amazon。 com/saml)。
-
-
更新关联的角色信任策略:
-
需要对信任给定身份提供商的每个账户中的每个角色执行此步骤。
-
编辑信任关系,并将单数
SAML:aud条件替换为多值条件。例如:-
默认:"
SAML:aud“:"https://signin.aws.amazon.com/saml”。 -
经过修改:”
SAML:aud“:[” “,” https://signin.aws.amazon.com/saml https://region-id.signin.aws.amazon。 com/saml"]
-
-
请事先对信任关系进行这些更改。在事件发生期间,不应将它们作为计划的一部分来完成。
-
-
为 Region-specific 控制台页面配置中继状态。
-
如果您不执行最后一步,则无法保证 Region-specific SAML 登录过程会将用户转至同一区域内的控制台登录页面。此步骤因身份提供商不同而变化最大,但有一些博客(例如,如何使用 SAML 将联合身份验证用户自动转到特定的 AWS 管理控制台页面
)展示了如何使用中继状态来实现深层链接。 -
使用 technique/parameters 适合您的 IdP 的,将中继状态设置为匹配的控制台终端节点(例如,https://
region-id.console.aws.amazon。 com/connect/federateinstance-id/)。
-
注意
-
确保您的其他区域中未禁用 STS。
-
确保您的其他区域中没有 SCP 阻止 STS 操作。
在中继状态 URL 中使用目的地
在为身份提供者配置中继状态时,您可以使用网址中的目标参数将用户导航到您的 Connect Customer 实例中的特定页面。例如,当座席登录时,使用链接直接打开 CCP。必须为用户分配一个安全配置文件,以授予用户对实例中该页面的访问权限。例如,要将座席发送到 CCP,请为中继状态使用类似于以下内容的 URL。必须将 URL 编码
-
https://us-east-1.console.aws.amazon.com/connect/federate/instance-id?destination=%2Fccp-v2%2Fchat&new_domain=true
有效 URL 的另一个示例是:
-
https://us-east-1.console.aws.amazon.com/connect/federate/instance-id?destination=%2Fagent-app-v2
GovCloud 例如,网址是https://console.amazonaws-us-gov.com/。所以地址将为:
-
https://console.amazonaws-us-gov.com/connect/federate/instance-id?destination=%2Fccp-v2%2Fchat&new_domain=true
如果您想将目标参数配置为 Connect Customer 实例之外的网址(例如您自己的自定义网站),请先将该外部域名添加到账户已批准的来源中。例如,按以下顺序执行这些步骤:
-
在 Connect Customer 控制台中,将 https://
your-custom-website.com 添加到您批准的来源。有关说明,请参阅在 Connect Customer 中使用集成应用程序的许可名单。 -
在您的身份提供商中,将中继状态配置为
https://your-region.console.aws.amazon.com/connect/federate/instance-id?destination=https%3A%2F%2Fyour-custom-website.com -
当您的代理登录时,他们会被直接带到 https://
your-custom-website.com。
将用户添加到您的 Connect 客户实例
将用户添加到您的连接实例中,并确保用户名与您的现有目录中的用户名完全匹配。如果名称不匹配,则用户可以登录身份提供商,但不能登录到 Connect Customer,因为 Connect Customer 中不存在使用该用户名的用户帐户。可以在用户管理页面上手动添加用户,也可以使用 CSV 模板批量上传用户。将用户添加到 Connect Customer 后,您可以分配安全配置文件和其他用户设置。
当用户登录身份提供商,但在 Connect Customer 中找不到具有相同用户名的帐户时,将显示以下拒绝访问消息。
使用模板批量上传用户
您可以通过将用户添加到 CSV 文件来导入用户。然后,您可以将 CSV 文件导入到您的实例,这会添加该文件中的所有用户。如果您通过上传 CSV 文件来添加用户,请确保您为 SAML 用户使用模板。你可以在 Connect Customer 的用户管理页面上找到。使用不同的模板进行 SAML-based 身份验证。如果您之前下载过模板,则应在设置实例并使用 SAML-based身份验证后下载用户管理页面上提供的版本。该模板不应包含用于电子邮件或密码的列。
SAML 用户登录和会话持续时间
当你在 Connect Customer 中使用 SAML 时,用户必须通过你的身份提供商 (IdP) 登录 Connect Customer。您的 IdP 已配置为与集成。 AWS在身份验证后,为其会话创建一个令牌。然后,用户将被重定向到您的 Connect 客户实例,并使用单点登录自动登录到 Connect Customer。
作为最佳实践,您还应该为Connect客户用户定义一个在使用Connect Customer后注销的流程。他们应同时从 Connect 客户和您的身份提供商注销。如果他们不这样做,则下一个登录到同一台计算机的人无需密码即可登录 Connect Customer,因为之前会话的令牌在会话期间仍然有效。有效期为 12 小时。
关于会话过期
Connect 客户会话将在用户登录 12 小时后过期。12 小时后,用户将自动被注销,即便他们仍在通话中。如果您的座席保持登录状态的时间超过 12 小时,则他们需要在会话令牌过期之前刷新此令牌。要创建新会话,客服需要注销 Connect Customer 和您的 IdP,然后重新登录。这将重置在令牌上设置的会话计时器,避免座席在接待客户期间被注销。如果在会话过期时用户仍在登录,则会显示以下消息。要再次使用 Connect Customer,用户需要登录您的身份提供商。
注意
如果您在登录时看到会话已过期消息,则可能只需要刷新会话令牌即可。访问您的身份提供商并登录。刷新 Connect 客户页面。如果您仍然收到此消息,请联系您的 IT 团队。