配置 SAML 2.0 和创建 WorkSpaces Pools 目录 - Amazon WorkSpaces
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置 SAML 2.0 和创建 WorkSpaces Pools 目录

重要

WorkSpaces Pools 功能不在北京和宁夏区域提供。

您可以使用 SAML 2.0 设置身份联合验证,从而进行 WorkSpaces 客户端应用程序注册并登录到 WorkSpaces Pools 中的 WorkSpace。为此,您可以使用 Amazon Identity and Access Management(IAM)角色和中继状态 URL 来配置您的 SAML 2.0 身份提供者(IdP),并为 Amazon 启用它。这将授予您的联合用户访问 WorkSpaces Pools 目录的权限。中继状态是 WorkSpaces 目录端点,系统会在用户成功登录 Amazon 后将其转发给该端点。

重要

WorkSpaces Pools 不支持基于 IP 的 SAML 2.0 配置。

步骤 1:考虑要求

为 WorkSpaces Pools 目录设置 SAML 时,需要满足以下要求。

  • workspaces_DefaultRole IAM 角色必须存在于您的 Amazon 账户中。当您使用 WorkSpaces 快速设置功能时或之前使用 Amazon Web Services 管理控制台 启动了 WorkSpace,系统会自动创建此角色。此角色授予 Amazon WorkSpaces 代表您访问特定 Amazon 资源的权限。如果此角色已经存在,您可能需要为其附加 AmazonWorkSpacesPoolServiceAccess 托管策略,以便 Amazon WorkSpaces 使用该策略访问 WorkSpaces Pools 中 Amazon 账户中的所需资源。有关更多信息,请参阅创建 workspaces_DefaultRole 角色Amazon 托管策略:AmazonWorkSpacesPoolServiceAccess

  • 您可以在 Amazon Web Services 区域为支持该功能的 WorkSpaces Pools 配置 SAML 2.0 身份验证。有关更多信息,请参阅 WorkSpaces Pools 的 Amazon Web Services 区域和可用区

  • 要在 WorkSpaces 中使用 SAML 2.0 身份验证,IdP 必须通过深度链接目标资源或中继状态端点 URL,支持未经请求的 IdP 发起的 SSO。支持 SSO 的 IdP 示例包括 ADFS、Azure AD、Duo Single Sign-On、Okta、PingFederate 和 PingOne。有关更多信息,请参阅 IdP 文档。

  • 仅以下 WorkSpaces 客户端支持 SAML 2.0 身份验证。有关最新的 WorkSpaces 客户端,请参阅 Amazon WorkSpaces 客户端下载页面

    • Windows 客户端应用程序 5.20.0 或更高版本

    • macOS 客户端 5.20.0 或更高版本

    • Web Access

步骤 2:完成先决条件

在配置与 WorkSpaces Pools 目录的 SAML 2.0 IdP 连接之前,需满足以下先决条件。

  • 配置 IdP 以与 Amazon 建立信任关系

  • 有关配置 Amazon 联合身份验证的更多信息,请参阅将第三方 SAML 解决方案提供商与 Amazon 集成。相关示例包括将 IdP 与 IAM 进行集成以访问 Amazon Web Services 管理控制台。

  • 使用您的 IdP 生成和下载联合身份验证元数据文档,该文档将您的组织描述为 IdP。此签名 XML 文档用于建立信赖方信任关系。将该文件保存您稍后可通过 IAM 控制台访问的位置。

  • 使用 WorkSpaces 控制台创建 WorkSpaces Pools 目录。有关更多信息,请参阅 将 Active Directory 与 WorkSpaces Pools 结合使用

  • 为可以使用受支持的目录类型登录 IdP 的用户创建 WorkSpaces Pools。有关更多信息,请参阅 创建 WorkSpaces Pools

步骤 3:在 IAM 中创建 SAML 身份提供者

要开始使用,您必须在 IAM 中创建 SAML IdP。该 IdP 通过组织中的 IdP 软件生成的元数据文档,定义了组织中 IdP 与 Amazon 之间的信任关系。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的创建和管理 SAML 身份提供者。有关在 Amazon GovCloud (US) Regions使用 SAML IdP 的信息,请参阅《Amazon GovCloud (US)用户指南》中的 Amazon Identity and Access Management

步骤 4:创建 WorkSpace Pools 目录

完成以下过程以创建 WorkSpaces Pools 目录。

  1. 打开 WorkSpaces 控制台,网址为:https://console.aws.amazon.com/workspaces/v2/home

  2. 在导航窗格中,选择目录

  3. 选择创建目录

  4. 对于 WorkSpace 类型,选择

  5. 在该页面的用户身份源部分:

    1. 用户访问 URL 文本框中输入占位符值。例如,在文本框中输入 placeholder。稍后在您的 IdP 中设置应用程序授权后,您需要对其进行编辑。

    2. 中继状态参数名称文本框留空。稍后在您的 IdP 中设置应用程序授权后,您需要对其进行编辑。

  6. 在该页面的目录信息部分,输入目录的名称和描述。目录名称和描述必须少于 128 个字符,可以包含字母数字字符和以下特殊字符:_ @ # % * + = : ? . / ! \ -。目录名称和描述不能以特殊字符开头。

  7. 在该页面的网络和安全部分:

    1. 选择对您的应用程序需要的网络资源有访问权的一个 VPC 和两个子网。为了提高容错能力,您应选择位于不同可用区中的两个子网。

    2. 选择一个允许 WorkSpaces 在您的 VPC 中创建网络链接的安全组。安全组控制允许哪些网络流量从 WorkSpaces 流向您的 VPC。例如,如果您的安全组限制所有入站 HTTPS 连接,则访问您 Web 门户的用户将无法从 WorkSpaces 加载 HTTPS 网站。

  8. Active Directory 配置为可选部分。但是,在创建 WorkSpaces Pools 目录时,如果您计划在 WorkSpaces Pools 中使用 AD,则应指定 Active Directory(AD)详细信息。创建 WorkSpaces Pools 目录的 Active Directory 配置后,无法对其进行编辑。有关为 WorkSpaces Pools 目录指定 AD 详细信息的更多信息,请参阅为 WorkSpaces Pools 目录指定 Active Directory 详细信息。完成该主题中概述的过程后,应返回本主题以完成 WorkSpaces Pools 目录的创建。

    如果您不打算在 WorkSpaces Pools 中使用 AD,则可以跳过 Active Directory 配置部分。

  9. 在该页面的流式传输属性部分:

    • 选择剪贴板权限行为,选择“复制到本地字符限制”(可选),“粘贴到远程会话字符限制”(可选)。

    • 选择允许或不允许打印到本地设备。

    • 选择允许或不允许诊断日志记录。

    • 选择允许或不允许智能卡登录。仅当您在本步骤前面启用了 AD 配置时,此功能才适用。

  10. 在该页面的存储部分,您可以选择启用主文件夹。

  11. 在该页面的 IAM 角色部分,选择一个可供所有桌面流实例使用的 IAM 角色。要创建新的 IAM 角色,请选择创建新的 IAM 角色

    当您将 IAM 角色从账户应用到 WorkSpace 池目录时,可以从 WorkSpace Pools 中的 WorkSpace 发出 Amazon API 请求,而无需手动管理 Amazon 凭证。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的创建向 IAM 用户委派权限的角色

  12. 选择创建目录

步骤 5:创建 SAML 2.0 联合身份验证 IAM 角色

完成以下过程,在 IAM 控制台中创建 SAML 2.0 联合身份验证 IAM 角色。

  1. 通过 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

  2. 在导航窗格中选择 Roles

  3. 选择创建角色。

  4. 为受信任的实体类型选择 SAML 2.0 联合身份验证

  5. 对于基于 SAML 2.0 的提供者,选择您在 IAM 中创建的身份提供者。有关更多信息,请参阅在 IAM 中创建 SAML 身份提供者

  6. 选择仅允许编程访问以允许访问。

  7. 对于“属性”,选择 SAML:sub_type

  8. 对于,请输入 https://signin.aws.amazon.com/saml。该值限制角色访问 SAML 用户流式传输请求,其中包括值为 persistent 的 SAML 主题类型断言。如果 SAML:sub_type 为 persistent,则在来自特定用户的所有 SAML 请求中,您的 IdP 会为 NameID 元素发送相同的唯一值。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的唯一识别基于 SAML 的联合身份验证中的用户

  9. 选择下一步以继续。

  10. 请勿在添加权限页面中进行更改或选择。选择下一步以继续。

  11. 输入角色的名称和描述。

  12. 选择创建角色

  13. 角色页面上,选择您必须创建的角色。

  14. 选择 Trust relationships(信任关系)选项卡。

  15. 选择编辑信任策略

  16. 编辑信任策略 JSON 文本框中,将 sts:TagSession 操作添加到信任策略中。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的在 Amazon STS 中传递会话标签

    结果应该类似以下示例。

    信任策略的示例。
  17. 选择更新策略

  18. 选择 Permissions(权限)选项卡。

  19. 在该页面的权限策略部分,选择添加权限,然后选择创建内联策略

  20. 在该页面的策略编辑器部分,选择 JSON

  21. 策略编辑器 JSON 文本框中,输入以下策略。请务必替换以下内容:

    • <region-code> 替换为您在其中创建 WorkSpace Pools 目录的 Amazon 区域代码。

    • <account-id> 替换为 Amazon 账户 ID。

    • <directory-id> 替换为您之前创建的目录的 ID。您可以在 WorkSpaces 控制台中执行此操作。

    对于 Amazon GovCloud (US) Regions中的资源,对 ARN 使用以下格式:arn:aws-us-gov:workspaces:<region-code>:<account-id>:directory/<directory-id>

  22. 选择“下一步”。

  23. 为策略输入名称,然后选择 Create policy (创建策略)

步骤 6:配置 SAML 2.0 身份提供者

根据您的 SAML 2.0 IdP,您可能需要手动更新 IdP,以信任 Amazon 作为服务提供者。为此,您需要通过以下网址下载 saml-metadata.xml 文件:https://signin.aws.amazon.com/static/saml-metadata.xml,然后将其上传到 IdP。这会更新您 IdP 的元数据。

对于某些 IdP,更新可能已经过配置。如果已经配置,可以跳过此步骤。如果您的 IdP 中尚未配置此更新,请查看您的 IdP 提供的文档,了解有关如何更新元数据的信息。一些提供者为您提供了以下选项:将 XML 文件的 URL 键入到控制面板并由 IdP 获取和安装该文件。另一些提供者则要求您从该 URL 处下载该文件,然后将其上传到控制面板。

重要

此时,您还可以授权 IdP 中的用户访问您在 IdP 中配置的 WorkSpaces 应用程序。有权访问您目录的 WorkSpaces 应用程序的用户不会自动为其创建 WorkSpace。同样,为自己创建了 WorkSpace 的用户也不会自动获得访问 WorkSpace 应用程序的权限。要使用 SAML 2.0 身份验证成功连接到 WorkSpace,用户必须获得 IdP 的授权,并且必须创建 WorkSpace。

步骤 7:为 SAML 身份验证响应创建断言

配置一些信息,IdP 会在其身份验证响应中将这些信息作为 SAML 属性发送给 Amazon。根据您的 IdP,可能已经配置了此类信息。如果已经配置,可以跳过此步骤。如果尚未配置,请提供以下信息:

  • SAML 主题 NameID - 登录用户的唯一标识符。请勿更改此字段的格式/值。否则,主文件夹功能将无法按预期运行,因为该用户将被视为其他用户。

    注意

    对于已加入域的 WorkSpaces Pools,用户的 NameID 值必须使用 sAMAccountNamedomain\username 格式提供,或者使用 userPrincipalNameusername@domain.com 格式提供,抑或仅提供 userName。如果您要使用 sAMAccountName 格式,则可以使用 NetBIOS 名称或完全限定域名(FQDN)指定域。Active Directory 单向信任方案需要 sAMAccountName 格式。有关更多信息,请参阅将 Active Directory 与 WorkSpaces Pools 结合使用。如果仅提供 userName,用户将登录到主域

  • SAML 主题类型(值设为 persistent– 将值设为 persistent 可确保在来自特定用户的所有 SAML 请求中,您的 IdP 会为 NameID 元素发送相同的唯一值。请确保您的 IAM 策略包含一个条件,仅允许将 SAML sub_type 设置为 persistent 的 SAML 请求(如步骤 5:创建 SAML 2.0 联合身份验证 IAM 角色一节所述)。

  • Name 属性设置为 https://aws.amazon.com/SAML/Attributes/Role 的 Attribute 元素 - 此元素中包含一个或多个 AttributeValue 元素,以列出您的 IdP 将用户映射到哪个 IAM 角色和 SAML IdP。角色和 IdP 指定为逗号分隔的 ARN 对。预期值的一个示例是 arn:aws:iam::<account-id>:role/<role-name>,arn:aws:iam::<account-id>:saml-provider/<provider-name>

  • Name 属性设置为 https://aws.amazon.com/SAML/Attributes/RoleSessionName 的 Attribute 元素 - 此元素包含一个 AttributeValue 元素,可为针对 SSO 颁发的 Amazon 临时凭证提供标识符。AttributeValue 元素中值的长度必须介于 2 到 64 个字符之间,只能包含字母数字字符和以下特殊字符:_ . : / = + - @。它不能包含空格。该值通常是电子邮件地址或用户主体名 (UPN)。该值不应包含空格,如用户的显示名称。

  • Name 属性设置为 https://aws.amazon.com/SAML/Attributes/PrincipalTag:Email 的 Attribute 元素 - 此元素包含一个可提供用户电子邮件地址的 AttributeValue 元素。该值必须与 WorkSpaces 目录中定义的 WorkSpaces 用户电子邮件地址相匹配。标签值可能包括字母、数字、空格和 _ . : / = + - @ 字符的组合。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的 IAM 和 Amazon STS 的标记规则

  • (可选)Name 属性设置为 https://aws.amazon.com/SAML/Attributes/PrincipalTag:UserPrincipalName 的 Attribute 元素 - 此元素包含一个 AttributeValue 元素,可为登录用户提供 Active Directory userPrincipalName。必须采用 username@domain.com 格式提供该值。此参数与基于证书的身份验证一起使用,作为最终用户证书中的主题备用名称。有关更多信息,请参阅 基于证书的身份验证和 WorkSpaces 个人版

  • (可选)Name 属性设置为 https://aws.amazon.com/SAML/Attributes/PrincipalTag:ObjectSid 的 Attribute 元素 - 此元素包含一个 AttributeValue 元素,可为登录用户提供 Active Directory 安全标识符(SID)。此参数与基于证书的身份验证一起使用,以启用到 Active Directory 用户的强映射。有关更多信息,请参阅 基于证书的身份验证和 WorkSpaces 个人版

  • (可选)Name 属性设置为 https://aws.amazon.com/SAML/Attributes/PrincipalTag:Domain 的 Attribute 元素 - 此元素包含一个 AttributeValue 元素,可为登录用户提供 Active Directory DNS 完全限定域名(FQDN)。当用户的 Active Directory userPrincipalName 包含备用后缀时,此参数用于基于证书的身份验证。必须以 domain.com 格式提供该值,且必须包括所有子域名。

  • (可选)Name 属性设置为 https://aws.amazon.com/SAML/Attributes/SessionDuration 的 Attribute 元素 - 此元素包含一个 AttributeValue 元素,以指定在需要进行重新验证之前,用户在联合流式传输会话中保持活动状态的最长时间。默认值为 3600 秒(60 分钟)。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的 SAML SessionDurationAttribute

    注意

    虽然 SessionDuration 是一个可选属性,但建议您将该属性包含在 SAML 响应中。如果您未指定此属性,则会话持续时间将设置为默认值 3600 秒(60 分钟)。WorkSpaces 桌面会话将在会话持续时间到期后断开连接。

有关如何配置这些元素的更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的为身份验证响应配置 SAML 断言。有关 IdP 的具体配置要求的信息,请参阅 IdP 的文档。

步骤 8:配置联合身份验证的中继状态

使用您的 IdP 配置联合身份验证的中继状态以指向 WorkSpaces Pools 目录中继状态 URL。在 Amazon 成功进行身份验证后,系统会将用户定向到 WorkSpaces Pools 目录端点,该端点在 SAML 身份验证响应中定义为中继状态。

以下为中继状态 URL 格式:

https://relay-state-region-endpoint/sso-idp?registrationCode=registration-code

下表列出了提供 WorkSpaces SAML 2.0 身份验证的 Amazon 区域的中继状态端点。AmazonWorkSpaces Pools 功能不可用的区域已被移除。

区域 中继状态端点
美国东部(弗吉尼亚州北部)区域
  • workspaces.euc-sso.us-east-1.aws.amazon.com

  • (FIPS) workspaces.euc-sso-fips.us-east-1.aws.amazon.com

美国西部(俄勒冈州)区域
  • workspaces.euc-sso.us-west-2.aws.amazon.com

  • (FIPS) workspaces.euc-sso-fips.us-west-2.aws.amazon.com

亚太地区(孟买)区域 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
Asia Pacific(Tokyo)Region 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
Amazon GovCloud(美国西部)
  • workspaces.euc-sso.us-gov-west-1.amazonaws-us-gov.com

  • (FIPS) workspaces.euc-sso-fips.us-gov-west-1.amazonaws-us-gov.com

注意

有关在 Amazon GovCloud (US) Regions使用 SAML IdP 的信息,请参阅《Amazon GovCloud(美国)用户指南》中的 Amazon WorkSpaces

Amazon GovCloud(美国东部)
  • workspaces.euc-sso.us-gov-east-1.amazonaws-us-gov.com

  • (FIPS) workspaces.euc-sso-fips.us-gov-east-1.amazonaws-us-gov.com

注意

有关在 Amazon GovCloud (US) Regions使用 SAML IdP 的信息,请参阅《Amazon GovCloud(美国)用户指南》中的 Amazon WorkSpaces

步骤 9:在 WorkSpaces Pools 目录上与 SAML 2.0 进行集成

完成以下过程,为 WorkSpaces Pools 目录启用 SAML 2.0 身份验证。

  1. 打开 WorkSpaces 控制台,网址为:https://console.aws.amazon.com/workspaces/v2/home

  2. 在导航窗格中,选择目录

  3. 选择池目录选项卡。

  4. 选择要编辑的目录 ID。

  5. 在该页面的身份验证部分,选择编辑

  6. 选择编辑 SAML 2.0 身份提供者

  7. 对于用户访问 URL(有时也称为“SSO URL”),将占位符值替换为您的 IdP 提供给您的 SSO URL。

  8. 对于 IdP 深层链接参数名称,输入适用于您的 IdP 和您配置的应用程序的参数。如果省略该参数名称,则默认值为 RelayState

    下表列出了应用程序的各种身份提供者所独有的用户访问 URL 和深层链接参数名称。

    身份提供者 参数 用户访问 URL
    ADFS RelayState https://<host>/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID=<relaying-party-uri>
    Azure AD RelayState https://myapps.microsoft.com/signin/<app-id>?tenantId=<tenant-id>
    Duo Single Sign-On RelayState https://<sub-domain>.sso.duosecurity.com/saml2/sp/<app-id>/sso
    Okta RelayState https://<sub-domain>.okta.com/app/<app-name>/<app-id>/sso/saml
    OneLogin RelayState https://<sub-domain>.onelogin.com/trust/saml2/http-post/sso/<app-id>
    JumpCloud RelayState https://sso.jumpcloud.com/saml2/<app-id>
    Auth0 RelayState https://<default-tenant-name>.us.auth0.com/samlp/<client-id>
    PingFederate TargetResource https://<host>/idp/startSSO.ping?PartnerSpId=<sp-id>
    企业版 PingOne TargetResource https://sso.connect.pingidentity.com/sso/sp/initsso?saasid=<app-id>&idpid=<idp-id>
  9. 选择 Save

重要

撤销用户的 SAML 2.0 不会直接断开其会话连接。只有在超时开始后,才会删除这些会话。此外,还可以使用 TerminateWorkspacesPoolSession API 终止会话。

故障排除

以下信息可帮助您排查与 WorkSpaces Pools 相关的特定问题。

完成 SAML 身份验证后,我在 WorkSpaces Pools 客户端中收到“无法登录”这一消息

SAML 声明中的 nameIDPrincipalTag:Email 需要与 Active Directory 中配置的用户名和电子邮件地址相匹配。调整某些属性后,某些 IdP 可能需要更新、刷新或重新部署。如果您进行了调整,但未反映在您的 SAML 捕获中,请参阅您的 IdP 文档或支持计划,了解使更改生效所需的具体步骤。