本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 SAML 2.0 并创建 P WorkSpaces ools 目录
您可以通过使用 SAML 2.0 设置联合身份来启用 WorkSpaces 池 WorkSpaces 中的 WorkSpaces 客户端应用程序注册和登录。为此,您可以使用 AWS Identity and Access Management (IAM)角色和中继状态 URL 来配置您的 SAML 2.0 身份提供者(IdP),并为 AWS启用它。这会授予您的联合用户访问 WorkSpace 池目录的权限。中继状态是用户成功登录后被转发到的 WorkSpaces 目录端点 AWS。
重要
WorkSpaces 池不支持 IP-based SAML 2.0 配置。
主题
步骤 1:考虑要求
为 WorkSpaces 池目录设置 SAML 时,以下要求适用。
-
您的账户中必须存在 workspaces_ DefaultRole IAM 角色。 AWS 当您使用 WorkSpaces 快速设置或之前使用启动时,会自动创建此角色 AWS 管理控制台。 WorkSpace 它授予亚马逊代表您访问特定 AWS 资源的 WorkSpaces权限。如果该角色已经存在,您可能需要为其附加 AmazonWorkSpacesPoolServiceAccess托管策略,亚马逊 WorkSpaces 使用该策略来访问 WorkSpaces 池 AWS 账户中的所需资源。有关更多信息,请参阅创建 workspaces_ 角色 DefaultRole和AWS 管理策略: AmazonWorkSpacesPoolServiceAccess。
-
您可以在支持该 AWS 区域 功能的 WorkSpaces 池中配置 SAML 2.0 身份验证。有关更多信息,请参阅 AWS 区域 和 WorkSpaces 池的可用区。
-
要将 SAML 2.0 身份验证与一起使用 WorkSpaces,IdP 必须通过深度链接目标资源或中继状态端点 URL 支持未经请求的 IdP-initiated SSO。 IdPs 这种支持的示例包括 ADFS、Azure AD、Duo Single Sign-On、Okta 和。 PingFederate PingOne有关更多信息,请参阅 IdP 文档。
-
仅以下 WorkSpaces 客户端支持 SAML 2.0 身份验证。有关最新 WorkSpaces 客户,请参阅亚马逊 WorkSpaces 客户下载页面
。 -
Windows 客户端应用程序 5.20.0 或更高版本
-
macOS 客户端 5.20.0 或更高版本
-
Web Access
-
步骤 2:完成先决条件
在配置与 WorkSpaces 池目录的 SAML 2.0 IdP 连接之前,请完成以下先决条件。
-
配置 IdP 以与 AWS建立信任关系
-
有关配置 AWS 联合的更多信息,请参阅将第三方 SAML 解决方案提供商与 AWS集成。相关示例包括将 IdP 与 IAM 进行集成以访问 AWS 管理控制台。
-
使用您的 IdP 生成和下载联合身份验证元数据文档,该文档将您的组织描述为 IdP。此签名 XML 文档用于建立信赖方信任关系。将该文件保存您稍后可通过 IAM 控制台访问的位置。
-
使用 WorkSpaces 控制台创建 WorkSpaces 池目录。有关更多信息,请参阅 将活动目录与 WorkSpaces 池一起使用。
-
为可以使用支持的目录类型登录 IdP 的用户创建 WorkSpaces 池。有关更多信息,请参阅 创建 WorkSpaces 池。
步骤 3:在 IAM 中创建 SAML 身份提供者
要开始使用,您必须在 IAM 中创建 SAML IdP。此 IdP 使用组织中的 IdP 软件生成的元数据文档来定义贵组织的AWS 信任关系。 IdP-to有关更多信息,请参阅《AWS Identity and Access Management 用户指南》中的创建和管理 SAML 身份提供者。有关 IdPs 在中使用 SAML 的信息 AWS GovCloud (US) Regions,请参阅《AWS GovCloud (US) 用户指南》AWS Identity and Access Management中的。
步骤 4:创建 WorkSpace 池目录
完成以下步骤以创建 WorkSpaces 池目录。
在处打开 WorkSpaces 控制台https://console.aws.amazon.com/workspaces/v2/home
。 -
在导航窗格中,选择目录。
-
选择创建目录。
-
对于WorkSpace 类型,请选择 “池” 。
-
在该页面的用户身份源部分:
-
在用户访问 URL 文本框中输入占位符值。例如,在文本框中输入
placeholder。稍后在您的 IdP 中设置应用程序授权后,您需要对其进行编辑。 -
将中继状态参数名称文本框留空。稍后在您的 IdP 中设置应用程序授权后,您需要对其进行编辑。
-
-
在该页面的目录信息部分,输入目录的名称和描述。目录名称和描述必须少于 128 个字符,可以包含字母数字字符和以下特殊字符:
_ @ # % * + = : ? . / ! \ -。目录名称和描述不能以特殊字符开头。 -
在该页面的网络和安全部分:
-
选择对您的应用程序需要的网络资源有访问权的一个 VPC 和两个子网。为了提高容错能力,您应选择位于不同可用区中的两个子网。
-
选择一个允许 WorkSpaces 在您的 VPC 中创建网络链接的安全组。安全组控制允许哪些网络流量流 WorkSpaces 向您的 VPC。例如,如果您的安全组限制所有入站 HTTPS 连接,则访问您的 Web 门户的用户将无法从加载 HTTPS 网站。 WorkSpaces
-
-
Active Directory 配置为可选部分。但是,如果您计划在池中使用 AD,则应在创建 WorkSpaces 池目录时指定您的活动目录 (AD) 详细信息。 WorkSpaces 创建池目录后,您无法编辑 WorkSpaces 池目录的 Act ive Directory 配置。有关为 WorkSpaces 池目录指定 AD 详细信息的更多信息,请参阅为您的 WorkSpaces 池目录指定活动目录的详细信息。完成该主题中概述的过程后,应返回本主题以完成 P WorkSpaces ools 目录的创建。
如果您不打算在广告 WorkSpaces 池中使用 AD,则可以跳过 Act ive Directory 配置部分。
-
在该页面的流式传输属性部分:
-
选择剪贴板权限行为,选择“复制到本地字符限制”(可选),“粘贴到远程会话字符限制”(可选)。
-
选择允许或不允许打印到本地设备。
-
选择允许或不允许诊断日志记录。
-
选择允许或不允许智能卡登录。仅当您在本步骤前面启用了 AD 配置时,此功能才适用。
-
-
在该页面的存储部分,您可以选择启用主文件夹。
-
在该页面的 IAM 角色部分,选择一个可供所有桌面流实例使用的 IAM 角色。要创建新的 IAM 角色,请选择创建新的 IAM 角色。
当您将账户中的 IAM 角色应用到 WorkSpace 池目录时,您可以从 WorkSpace 池 WorkSpace 中发出 AWS API 请求,而无需手动管理 AWS 证书。有关更多信息,请参阅《AWS Identity and Access Management 用户指南》中的创建向 IAM 用户委派权限的角色。
-
选择创建目录。
步骤 5:创建 SAML 2.0 联合身份验证 IAM 角色
完成以下过程,在 IAM 控制台中创建 SAML 2.0 联合身份验证 IAM 角色。
-
使用 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中选择 Roles。
-
选择创建角色。
-
为受信任的实体类型选择 SAML 2.0 联合身份验证。
-
对于基于 SAML 2.0 的提供者,选择您在 IAM 中创建的身份提供者。有关更多信息,请参阅在 IAM 中创建 SAML 身份提供者。
-
选择仅允许编程访问以允许访问。
-
为该属性选择 SAML:sub _type。
-
对于值,请输入
https://signin.aws.amazon.com/saml。该值限制角色访问 SAML 用户流式传输请求,其中包括值为persistent的 SAML 主题类型断言。如果 SAML:sub _type 是永久性的,则您的 IdP 会在来自特定用户的所有 SAML 请求中为该NameID元素发送相同的唯一值。有关更多信息,请参阅《用户指南》中的在 SAML-based 联盟中唯一标识AWS Identity and Access Management 用户。 -
选择下一步以继续。
-
请勿在添加权限页面中进行更改或选择。选择下一步以继续。
-
输入角色的名称和描述。
-
选择创建角色。
-
在角色页面上,选择您必须创建的角色。
-
选择 Trust relationships(信任关系)选项卡。
-
选择编辑信任策略。
-
在编辑信任策略 JSON 文本框中,将 sts: TagSession 操作添加到信任策略。有关更多信息,请参阅《AWS Identity and Access Management 用户指南》中的在 AWS STS中传递会话标签。
结果应该类似以下示例。
-
选择更新策略。
-
选择权限选项卡。
-
在该页面的权限策略部分,选择添加权限,然后选择创建内联策略。
-
在该页面的策略编辑器部分,选择 JSON。
-
在策略编辑器 JSON 文本框中,输入以下策略。请务必替换以下内容:
-
<region-code>使用您创建 WorkSpace 池目录时所在 AWS 地区的代码。 -
<account-id>使用 AWS 账户 ID。 -
<directory-id>使用您之前创建的目录的 ID。你可以在 WorkSpaces控制台中获得这个。
对于中的资源 AWS GovCloud (US) Regions,请使用以下格式的 ARN:
arn:aws-us-gov:workspaces:。<region-code>:<account-id>:directory/<directory-id> -
-
选择下一步。
-
为策略输入名称,然后选择 Create policy (创建策略)。
步骤 6:配置 SAML 2.0 身份提供者
根据您的 SAML 2.0 IdP,您可能需要手动更新 IdP,以信任 AWS 作为服务提供者。为此,您可以下载在中找到的saml-metadata.xml文件 https://signin.aws.amazon.com/static/saml-metadata.xml
对于某些人来说 IdPs,更新可能已经配置好了。如果已经配置,可以跳过此步骤。如果您的 IdP 中尚未配置此更新,请查看您的 IdP 提供的文档,了解有关如何更新元数据的信息。一些提供者为您提供了以下选项:将 XML 文件的 URL 键入到控制面板并由 IdP 获取和安装该文件。另一些提供者则要求您从该 URL 处下载该文件,然后将其上传到控制面板。
重要
此时,您还可以授权您的 IdP 中的用户访问您在 IdP 中配置的 WorkSpaces应用程序。有权访问您的目录 WorkSpaces 应用程序的用户不会自动为他们 WorkSpace创建。同样,为其 WorkSpace 创建的用户不会自动获得访问该 WorkSpaces 应用程序的权限。要 WorkSpace 使用 SAML 2.0 身份验证成功连接到,用户必须获得 IdP 的授权,并且必须创建一个 WorkSpace 。
步骤 7:为 SAML 身份验证响应创建断言
将您的 IdP 发送到的信息配置 AWS 为身份验证响应中的 SAML 属性。根据您的 IdP,可能已经配置了此类信息。如果已经配置,可以跳过此步骤。如果尚未配置,请提供以下信息:
-
SAML 主题 NameID - 登录用户的唯一标识符。不要更改此字段 format/value 的名称。否则,主文件夹功能将无法按预期运行,因为该用户将被视为其他用户。
注意
对于已加入域的 WorkSpaces 池,用户的
NameID值必须以使用的domain\username格式提供sAMAccountName,或者使用或仅以使用的username@domain.comuserPrincipalName格式提供。userName如果您要使用sAMAccountName格式,则可以使用 NetBIOS 名称或完全限定域名(FQDN)指定域。Active Directory 单向信任方案需要sAMAccountName格式。有关更多信息,请参阅将活动目录与 WorkSpaces 池一起使用。如果仅提供userName,用户将登录到主域 -
SAML 主题类型(值设为
persistent)– 将值设为persistent可确保在来自特定用户的所有 SAML 请求中,您的 IdP 会为NameID元素发送相同的唯一值。请确保您的 IAM 策略包含一个条件,仅允许将 SAMLsub_type设置为persistent的 SAML 请求(如步骤 5:创建 SAML 2.0 联合身份验证 IAM 角色一节所述)。 -
AttributeName属性设置为的元素 https://aws.amazon.com/SAML/Attributes/Role — 此元素包含一个或多个元AttributeValue素,这些元素列出了您的 IdP 将用户映射到的 IAM 角色和 SAML IdP。角色和 IdP 指定为逗号分隔的 ARN 对。预期值的一个示例是arn:aws:iam::。<account-id>:role/<role-name>,arn:aws:iam::<account-id>:saml-provider/<provider-name> -
AttributeName属性设置为的元素 https://aws.amazon.com/SAML/Attributes/RoleSessionName -此元素包含一个元AttributeValue素,该元素为为 SSO 颁发的 AWS 临时证书提供标识符。AttributeValue元素中值的长度必须介于 2 到 64 个字符之间,只能包含字母数字字符和以下特殊字符:_ . : / = + - @。它不能包含空格。该值通常是电子邮件地址或用户主体名 (UPN)。该值不应包含空格,如用户的显示名称。 -
AttributeName属性设置为:email 的元素 https://aws.amazon.com/SAML/Attributes/PrincipalTag- 此元素包含一个提供用户电子邮件地址的元AttributeValue素。该值必须与 WorkSpaces 目录中定义的 WorkSpaces 用户电子邮件地址相匹配。标签值可能包括字母、数字、空格和_ . : / = + - @字符的组合。有关更多信息,请参阅《AWS Identity and Access Management 用户指南》中的 IAM 和 AWS STS的标记规则。 -
(可选)
AttributeName属性设置为https://aws.amazon.com/SAML/Attributes/PrincipalTag:UserPrincipalName— 此元素包含一个为登录用户提供 Active DirectoryuserPrincipalName的AttributeValue元素。必须采用username@domain.com格式提供该值。此参数与基于证书的身份验证一起使用,作为最终用户证书中的主题备用名称。有关更多信息,请参阅 Certificate-based 身份验证和 WorkSpaces 个人。 -
(可选)
AttributeName属性设置为https://aws.amazon.com/SAML/Attributes/PrincipalTag:ObjectSid (可选)的元素 -此元素包含一个为登录用户提供 Active Directory 安全标识符 (SID) 的AttributeValue元素。此参数与基于证书的身份验证一起使用,以启用到 Active Directory 用户的强映射。有关更多信息,请参阅 Certificate-based 身份验证和 WorkSpaces 个人。 -
(可选)
Name属性设置为:domain 的Attribute元素 https://aws.amazon.com/SAML/Attributes/PrincipalTag — 此元素包含一个为登录用户提供 Active Directory DNS 完全限定域名 (FQDN) 的元AttributeValue素。当用户的 Active DirectoryuserPrincipalName包含备用后缀时,此参数用于基于证书的身份验证。必须以domain.com格式提供该值,且必须包括所有子域名。 -
(可选)
Name属性设置为的Attribute元素 https://aws.amazon.com/SAML/Attributes/SessionDuration -此元素包含一个AttributeValue元素,该元素指定在需要重新进行身份验证之前,用户的联合流媒体会话可以保持活动状态的最大时间。默认值为3600秒(60 分钟)。有关更多信息,请参阅《AWS Identity and Access Management 用户指南》 SessionDurationAttribute中的 SAML。注意
虽然
SessionDuration是一个可选属性,但建议您将该属性包含在 SAML 响应中。如果您未指定此属性,则会话持续时间将设置为3600秒(60 分钟)的默认值。 WorkSpaces 桌面会话在其会话持续时间到期后将断开连接。
有关如何配置这些元素的更多信息,请参阅《AWS Identity and Access Management 用户指南》中的为身份验证响应配置 SAML 断言。有关 IdP 的具体配置要求的信息,请参阅 IdP 的文档。
步骤 8:配置联合身份验证的中继状态
使用您的 IdP 将联盟的中继状态配置为指向 WorkSpaces 池目录中继状态 URL。成功通过进行身份验证后 AWS,用户将被定向到 WorkSpaces 池目录端点,该端点定义为 SAML 身份验证响应中的中继状态。
以下为中继状态 URL 格式:
https://relay-state-region-endpoint/sso-idp?registrationCode=registration-code
下表列出了可用 WorkSpaces SAML 2.0 身份验证的 AWS 区域的中继状态端点。 AWS WorkSpaces 池功能不可用的区域已被移除。
| Region | 中继状态端点 |
|---|---|
| 美国东部(弗吉尼亚州北部)区域 |
|
| 美国西部(俄勒冈州)区域 |
|
| 亚太地区(孟买) 区域 | workspaces.euc-sso.ap-south-1.aws.amazon.com |
| 亚太地区(首尔) | workspaces.euc-sso.ap-northeast-2.aws.amazon.com |
| 亚太地区(新加坡)区域 | workspaces.euc-sso.ap-southeast-1.aws.amazon.com |
| 亚太地区(悉尼)区域 | workspaces.euc-sso.ap-southeast-2.aws.amazon.com |
| 亚太地区(东京)区域 | workspaces.euc-sso.ap-northeast-1.aws.amazon.com |
| 加拿大(中部) 区域 | workspaces.euc-sso.ca-central-1.aws.amazon.com |
| 欧洲地区(法兰克福)区域 | workspaces.euc-sso.eu-central-1.aws.amazon.com |
| 欧洲地区(爱尔兰)区域 | workspaces.euc-sso.eu-west-1.aws.amazon.com |
| 欧洲地区(伦敦)区域 | workspaces.euc-sso.eu-west-2.aws.amazon.com |
| 南美洲(圣保罗)区域 | workspaces.euc-sso.sa-east-1.aws.amazon.com |
| AWS GovCloud (US-West) |
注意有关 IdPs 在中使用 SAML 的信息 AWS GovCloud (US) Regions,请参阅 AWS GovCloud(美国)用户指南 WorkSpaces中的亚马逊。 |
| AWS GovCloud (US-East) |
注意有关 IdPs 在中使用 SAML 的信息 AWS GovCloud (US) Regions,请参阅 AWS GovCloud (美国)用户指南 WorkSpaces中的亚马逊。 |
第 9 步:在 Pool 目录上启用与 SAML 2.0 的 WorkSpace 集成
完成以下步骤,为 WorkSpaces 池目录启用 SAML 2.0 身份验证。
在处打开 WorkSpaces 控制台https://console.aws.amazon.com/workspaces/v2/home
。 -
在导航窗格中,选择目录。
-
选择池目录选项卡。
-
选择要编辑的目录 ID。
-
在该页面的身份验证部分,选择编辑。
-
选择编辑 SAML 2.0 身份提供者。
-
对于用户访问 URL(有时也称为“SSO URL”),将占位符值替换为您的 IdP 提供给您的 SSO URL。
-
对于 IdP 深层链接参数名称,输入适用于您的 IdP 和您配置的应用程序的参数。如果省略该参数名称,则默认值为
RelayState。下表列出了应用程序的各种身份提供者所独有的用户访问 URL 和深层链接参数名称。
身份提供者 参数 用户访问 URL ADFS RelayStatehttps://<host>/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID=<relaying-party-uri>Azure AD RelayStatehttps://myapps.microsoft.com/signin/<app-id>?tenantId=<tenant-id>二重奏单曲 Sign-On RelayStatehttps://<sub-domain>.sso.duosecurity.com/saml2/sp/<app-id>/ssoOkta RelayStatehttps://<sub-domain>.okta.com/app/<app-name>/<app-id>/sso/samlOneLogin RelayStatehttps://<sub-domain>.onelogin.com/trust/saml2/http-post/sso/<app-id>JumpCloud RelayStatehttps://sso.jumpcloud.com/saml2/<app-id>Auth0 RelayStatehttps://<default-tenant-name>.us.auth0.com/samlp/<client-id>PingFederate TargetResourcehttps://<host>/idp/startSSO.ping?PartnerSpId=<sp-id>PingOne 企业版 TargetResourcehttps://sso.connect.pingidentity.com/sso/sp/initsso?saasid=<app-id>&idpid=<idp-id> -
选择保存。
重要
撤销用户的 SAML 2.0 不会直接断开其会话连接。只有在超时开始后,才会删除这些会话。他们还可以使用 TerminateWorkspacesPoolSession API 将其终止。
问题排查
以下信息可以帮助您解决 WorkSpaces 矿池的特定问题。
完成 SAML 身份验证后,我在 P WorkSpaces ools 客户端中收到 “无法登录” 消息
SAML 声明中的 nameID 和 PrincipalTag:Email 需要与 Active Directory 中配置的用户名和电子邮件地址相匹配。调整某些属性后,某些 IdP 可能需要更新、刷新或重新部署。如果您进行了调整,但未反映在您的 SAML 捕获中,请参阅您的 IdP 文档或支持计划,了解使更改生效所需的具体步骤。