本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 IAM 为 Connect 客户配置 SAML
Connect Customer 通过在 AWS IAM 中配置安全断言标记语言 (SAML) 2.0 来支持身份联合,以启用从您的组织到 Connect 客户实例的基于 Web 的单点登录 (SSO)。这允许您的用户登录组织中由 SAML 2.0 兼容身份提供商 (IdP) 托管的门户,并通过单点登录体验登录 Connect Customer 实例,无需为 Connect 客户提供单独的证书。
重要提示
在开始之前,请注意以下事项:
-
这些说明不适用于 Connect Customer 全球弹性部署。有关适用于互联客户全球业务连续性的信息,请参阅将您的身份提供商 (IdP) 与 Connect Customer 全球弹性 SAML 登录端点集成。
-
选择基于 SAML 2.0 的身份验证作为 Connect 客户实例的身份管理方法需要配置联合。AWS Identity and Access Management
-
Connect C RoleSessionName ustomer 中的用户名必须与身份提供商返回的 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 客户使用中的 AWS身份验证令牌对用户进行授权并在其浏览器中打开 Connect Customer。
为 Connect 客户启用 SAML-based 身份验证
要启用和配置 SAML 身份验证以用于您的 Connect 客户实例,需要执行以下步骤:
-
创建 Connect Customer 实例并选择基于 SAML 2.0 的身份验证进行身份管理。
-
在您的身份提供商和 AWS之间启用 SAML 联合。
-
将 Connect 客户用户添加到您的 Connect 客户实例中。使用您在创建实例时创建的管理员账户登录实例。转至用户管理页面,然后添加用户。
重要
-
有关用户名中允许使用的字符列表,请参阅CreateUser操作中该
Username属性的文档。 -
由于 Connect Customer 用户和 AWS IAM 角色之间的关联,该 RoleSessionName 用户名必须与您的 AWS IAM 联合集成的配置完全匹配,后者通常最终成为您目录中的用户名。用户名的格式应与与 Connect Customer 用户的RoleSessionName格式条件的交叉点相匹配,如下图所示:
-
-
针对 SAML 断言、身份验证响应和中继状态配置您的身份提供商。用户登录到您的身份提供商。成功后,它们将被重定向到您的 Connect 客户实例。IAM 角色用于与联合 AWS,这允许访问 Connect 客户。
在创建实例期间选择基于 SAML 2.0 的身份验证
在创建 Connect Customer 实例时,选择基于 SAML 2.0 的身份验证选项进行身份管理。在第二步中,当您为实例创建管理员时,所指定的用户名必须完全匹配您的现有网络目录中的相应用户名。没有用来为管理员指定密码的选项,因为密码是通过您的现有目录进行管理的。管理员是在 “连接客户” 中创建的,并分配了管理员安全配置文件。
您可以使用管理员账户通过您的 IdP 登录您的 Connect 客户实例来添加其他用户。
在您的身份提供商和之间启用 SAML 联合 AWS
要为 Connect 客户启用 SAML-based 身份验证,您必须在 IAM 控制台中创建身份提供商。有关更多信息,请参阅允许 SAML 2.0 联合身份用户访问 AWS 管理控制台。
为其创建身份提供商的过程对于 Connect Customer 来说 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 联合身份验证的角色中的主题所描述的信任策略。然后创建策略,为您的连接客户实例分配权限。权限从 “为 SAML-based 联合身份验证创建角色” 过程的步骤 9 开始。
创建向用于 SAML 联合身份验证的 IAM 角色分配权限的策略
-
在附加权限策略页面上,选择创建策略。
-
在创建策略页面上,选择 JSON。
-
复制以下示例策略之一,将其粘贴到 JSON 策略编辑器中,以替换任何现有文本。可以使用策略来启用 SAML 联合身份验证,或根据您的特定要求对其进行自定义。
使用此策略为特定 Connect Customer 实例中的所有用户启用联合。要进行 SAML-based 身份验证,请
Resource将的值替换为您创建的实例的 ARN:使用此策略启用与特定 Connect Customer 实例的联合。将
connect:InstanceId的值替换为您的实例的实例 ID。使用该策略为多个实例启用联合身份验证。注意在所列实例 ID 两侧加括号。
-
创建策略后,选择下一步:审核。然后返回到 “为 SAML 2.0 SAML-based 联合创建角色”(控制台)主题中的 “为联合创建角色” 过程中的步骤 10。
-
-
将您的网络配置为适用于 AWS的 SAML 提供商。有关更多信息,请参阅允许 SAML 2.0 联合身份用户访问 AWS 管理控制台。
-
为身份验证响应配置 SAML 断言。有关更多信息,请参阅为身份验证响应配置 SAML 断言。
-
对于 “连接客户”,将 “应用程序启动 URL” 留空。
-
覆盖身份提供商中的应用程序消费者服务 (ACS) URL,以使用与您的 Connect 客户实例一致 AWS 区域 的区域终端节点。有关更多信息,请参阅 将身份提供商配置为使用区域 SAML 端点。
-
将您的身份提供商的中继状态配置为指向您的 Connect 客户实例。用于中继状态的 URL 的构成如下:
https://region-id.console.aws.amazon.com/connect/federate/instance-id将替换为您创建 Connect 客户实例的区域名称,例如美国东部(弗吉尼亚北部)的 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
注意
目标中继 URL 不支持 HTTP。如果您指定 HTTP 网址,它会自动转换为 HTTPS。这会影响本地主机 URL 的本地开发。
-
将身份提供商配置为使用区域 SAML 端点
为了提供最佳可用性,我们建议使用与您的 Connect 客户实例一致的区域 SAML 终端节点,而不是默认的全局终端节点。
以下步骤与 IdP 无关;它们适用于任何 SAML IdP(例如 Okta、Ping、、Shibboleth、ADFS OneLogin、Azuread 等)。
-
更新(或覆盖)断言使用者服务 (ACS) URL。有两种方法可以做到这一点:
-
选项 1:下载 AWS SAML 元数据并将该
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 像提供预制 AWS 集成的 Okta 一样,你可以在管理员控制台中覆盖 ACS URL。 AWS 使用相同的格式覆盖您选择的地区(例如,https://
region-id.signin.aws.amazon)。com/saml)。
-
-
更新关联的角色信任策略:
-
需要对信任给定身份提供商的每个账户中的每个角色执行此步骤。
-
编辑信任关系,并将单数
SAML:aud条件替换为多值条件。例如:-
默认:”
SAML:aud“:https://signin.aws.amazon.com/saml”。 -
修改后:” “: [”,
SAML:audhttps://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 中使用目的地
当您为身份提供商配置中继状态时,可以使用 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 Customer 实例添加用户
将用户添加到您的连接实例中,并确保用户名与您的现有目录中的用户名完全匹配。如果名称不匹配,则用户可以登录到身份提供商,但不能登录到Connect Customer,因为在 Connect Customer 中不存在具有该用户名的用户帐户。可以在用户管理页面上手动添加用户,也可以使用 CSV 模板批量上传用户。将用户添加到 Connect Customer 后,您可以分配安全配置文件和其他用户设置。
当用户登录到身份提供商,但在 Connect Customer 中找不到具有相同用户名的帐户时,将出现以下 “访问被拒绝” 消息。
使用模板批量上传用户
您可以通过将用户添加到 CSV 文件来导入用户。然后,您可以将 CSV 文件导入到您的实例,这会添加该文件中的所有用户。如果您通过上传 CSV 文件来添加用户,请确保您为 SAML 用户使用模板。您可以在 “连接客户” 的 “用户管理” 页面上找到。使用不同的模板进行 SAML-based 身份验证。如果您之前下载了该模板,则应在使用 SAML-based身份验证设置实例后下载用户管理页面上可用的版本。该模板不应包含用于电子邮件或密码的列。
SAML 用户登录和会话持续时间
当您在 Connect Customer 中使用 SAML 时,用户必须通过您的身份提供商 (IdP) 登录连接客户。您的 IdP 配置为与 AWS集成。在身份验证后,为其会话创建一个令牌。然后,他们将被重定向到您的 Connect 客户实例,并使用单点登录自动登录到 Connect Customer。
作为最佳实践,您还应定义一个流程,让 Connect 客户用户在完成使用 Connect Customer 后注销。他们应该同时注销互联客户和您的身份提供商。如果他们不这样做,则下一个登录到同一台计算机的人无需密码即可登录 Connect Customer,因为先前会话的令牌在会话期间仍然有效。有效期为 12 小时。
关于会话过期
Connect 客户会话在用户登录 12 小时后过期。12 小时后,用户将自动被注销,即便他们仍在通话中。如果您的座席保持登录状态的时间超过 12 小时,则他们需要在会话令牌过期之前刷新此令牌。要创建新会话,代理需要注销 Connect Customer 和您的 IdP,然后重新登录。这将重置在令牌上设置的会话计时器,避免座席在接待客户期间被注销。当用户登录时会话过期时,将出现以下消息。要再次使用 Connect 客户,您必须登录您的身份提供商。
注意
如果您在登录时看到会话已过期消息,则可能只需要刷新会话令牌即可。访问您的身份提供商并登录。刷新 “连接客户” 页面。如果您仍然收到此消息,请联系您的 IT 团队。