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

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

设置 SAML 2.0

使用 SAML 2.0 身份提供商 (IdP) 凭据和身份验证方法,通过使用 SAML 2.0 设置联合身份验证,为您的用户启用 WorkSpaces 客户端应用程序注册和登录。 WorkSpaces 要使用 SAML 2.0 设置身份联合验证,请使用 IAM 角色和中继状态 URL 来配置您的 IdP 并启用 Amazon。这会授予您的联合用户访问 WorkSpaces 目录的权限。中继状态是用户成功登录后被转发到的 WorkSpaces目录端点 Amazon。

要求

  • 以下区域提供 SAML 2.0 身份验证:

    • 美国东部(弗吉尼亚州北部)区域

    • 美国西部(俄勒冈州)区域

    • 非洲(开普敦)区域

    • 亚太地区(孟买)区域

    • 亚太地区(首尔)区域

    • 亚太地区(新加坡)区域

    • 亚太地区(悉尼)区域

    • Asia Pacific(Tokyo)Region

    • 加拿大(中部)区域

    • 欧洲地区(法兰克福)区域

    • 欧洲地区(爱尔兰)区域

    • 欧洲地区(伦敦)区域

    • 南美洲(圣保罗)区域

    • 以色列(特拉维夫)区域

    • Amazon GovCloud (美国西部)

    • Amazon GovCloud (美国东部)

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

  • SAML 2.0 身份验证将在使用 Simple AD WorkSpaces 启动时起作用,但不建议这样做,因为 Simple AD 未与 SAML 2.0 集成。 IdPs

  • 以下 WorkSpaces 客户端支持 SAML 2.0 身份验证。SAML 2.0 身份验证不支持其他客户端版本。打开 Amazon WorkSpaces 客户端下载以查找最新版本:

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

    • macOS 客户端 5.x 或更高版本

    • Web Access

    除非启用了回退,否则其他客户端版本将无法连接到 WorkSpaces 启用 SAML 2.0 身份验证。有关更多信息,请参阅在 WorkSpaces 目录上启用 SAML 2.0 身份验证

step-by-step 有关将 SAML 2.0 与 WorkSpaces 使用 ADFS、Azure AD、Duo 单点登录、Okta PingFederate 以及 PingOne 企业版集成的说明 OneLogin,请查看 A mazon WorkSpaces SAM L 身份验证实施指南。

先决条件

在配置 SAML 2.0 身份提供商 (IdP) 与目录的连接之前,请完成以下先决条件。 WorkSpaces

  1. 配置您的 IdP 以集成与该目录一起使用的 Microsoft 活动目录中的用户身份。 WorkSpaces 对于具有的用户 WorkSpace,Active Directory 用户的 S aM AccountName电子邮件属性以及 SAML 声明值必须匹配,用户才能 WorkSpaces 使用 IdP 登录。有关将 Active Directory 与 IdP 集成的更多信息,请参阅您的 IdP 文档。

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

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

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

  3. 使用 WorkSpaces 管理控制台 WorkSpaces 为创建或注册目录。有关更多信息,请参阅管理目录 WorkSpaces。以下目录类型支持 WorkSpaces SAML 2.0 身份验证:

    • AD Connector

    • Amazon 微软 AD 托管

  4. WorkSpace 为可以使用支持的目录类型登录 IdP 的用户创建。您可以使用 WorkSpaces 管理控制台或 WorkSpaces API 创建。 WorkSpace Amazon CLI有关更多信息,请参阅使用启动虚拟桌面 WorkSpaces

步骤 1:在 IAM 中 Amazon 创建 SAML 身份提供商

首先,在 IAM 中创建一个 SAML IdP Amazon 。此 IdP 使用组织中 IdP 软件生成的元数据文档定义贵组织的 IdP Amazon 信任关系。有关更多信息,请参阅创建和管理 SAML 身份提供者(Amazon Web Services 管理控制台)。有关 IdPs 在 Amazon GovCloud (美国西部)和 Amazon GovCloud (美国东部)使用 SAML 的信息,请参阅 Identity and Access Managem Amazon en t。

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

接下来创建 SAML 2.0 联合身份验证 IAM 角色。此步骤在 IAM 与您的组织的 IdP 之间建立信任关系,将您的 IdP 作为可信实体进行联合身份验证。

为 SAML IdP 创建 IAM 角色

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

  2. 在导航窗格中,选择角色 > 创建角色

  3. 对于 Role type,选择 SAML 2.0 federation

  4. 对于 SAML 提供者,选择您创建的 SAML IdP。

    重要

    请勿选择两个 SAML 2.0 访问方法(只允许编程访问允许编程访问和 Amazon Web Services 管理控制台访问)中的任何一个。

  5. 对于 Attribute,选择 SAML:sub_type

  6. 对于,输入 persistent。该值将角色访问权限仅局限于 SAML 用户的流式传输请求,其中包括值为 persistent 的 SAML 主题类型断言。如果 SAML:sub_type 为 persistent,在来自特定用户的所有 SAML 请求中,您的 IdP 会为 NameID 元素发送相同的唯一值。有关 SAML: sub_type 断言的更多信息,请参阅使用基于 SAML 的联合身份验证进行 API 访问的 “在基于 SAML 的联合身份验证中唯一标识用户” 部分。 Amazon

  7. 检查您的 SAML 2.0 信任信息,确认正确的可信实体和条件,然后选择 Next: Permissions

  8. Attach permissions policies (附加权限策略) 页面上,选择 Next: Tags (下一步:标签)

  9. (可选)为要添加的每个标签输入键和值。有关更多信息,请参阅标记 IAM 用户和角色

  10. 完成此操作后,选择 Next: Review (下一步:审核)。稍后您将为此角色创建并嵌入内联策略。

  11. 对于角色名称,输入有助于标识此角色作用的名称。由于多个实体可能引用该角色,因此,角色创建完毕后,您将无法编辑角色名称。

  12. (可选)对于角色描述,输入新角色的描述。

  13. 检查角色详细信息,然后选择 Create role

  14. 将 sts: TagSession 权限添加到您的新 IAM 角色的信任策略中。有关更多信息,请参阅在 Amazon STS中传递会话标签。在新 IAM 角色的详细信息中,选择信任关系选项卡,然后选择编辑信任关系*。当 “编辑信任关系” 策略编辑器打开时,添加 sts: TagSession * 权限,如下所示:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:saml-provider/IDENTITY-PROVIDER" }, "Action": [ "sts:AssumeRoleWithSAML", "sts:TagSession" ], "Condition": { "StringEquals": { "SAML:aud": "https://signin.aws.amazon.com/saml" } } }] }

IDENTITY-PROVIDER 替换为在步骤 1 中创建的 SAML IdP 的名称。然后选择更新信任策略

步骤 3:为 IAM 角色嵌入内联策略

接下来为您创建的角色嵌入内联 IAM 策略。嵌入内联策略时,策略中的权限不能意外分配给错误的主体实体。内联策略为联合用户提供了对 WorkSpaces 目录的访问权限。

重要

workspaces:Stream操作不支持 Amazon 根据源 IP 管理访问权限的 IAM 策略。要管理的 IP 访问控制 WorkSpaces,请使用 IP 访问控制组。此外,在使用 SAML 2.0 身份验证时,如果您的 SAML 2.0 IdP 提供了 IP 访问控制策略,则可以使用 IP 访问控制策略。

  1. 在您创建的 IAM 角色的详细信息中,选择权限选项卡,然后向该角色的权限策略添加所需的权限。创建策略向导将启动。

  2. Create policy (创建策略) 中,选择 JSON 选项卡。

  3. 将以下 JSON 策略复制并粘贴到 JSON 窗口中。然后,通过输入您的 Amazon 区域代码、账户 ID 和目录 ID 来修改资源。在以下策略中,"Action": "workspaces:Stream"是向您的 WorkSpaces 用户提供在 WorkSpaces 目录中连接到其桌面会话的权限的操作。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "workspaces:Stream", "Resource": "arn:aws:workspaces:REGION-CODE:ACCOUNT-ID-WITHOUT-HYPHENS:directory/DIRECTORY-ID", "Condition": { "StringEquals": { "workspaces:userId": "${saml:sub}" } } } ] }

    REGION-CODE替换为您的 WorkSpaces目录所在的 Amazon 区域。DIRECTORY-ID替换为 WorkSpaces 目录 ID,可在 WorkSpaces 管理控制台中找到。对于 Amazon GovCloud (美国西部)或 Amazon GovCloud (美国东部)中的资源,请使用以下格式的 ARN:。arn:aws-us-gov:workspaces:REGION-CODE:ACCOUNT-ID-WITHOUT-HYPHENS:directory/DIRECTORY-ID

  4. 完成后,选择 Review policy (审核策略)策略验证程序将报告任何语法错误。

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

接下来,根据您的 SAML 2.0 IdP,您可能需要手动更新您的 IdP,使其成为 Amazon 值得信赖的服务提供商,方法是将文件上传saml-metadata.xml到您的 IdP,网址为 https://signin.aws.amazon.com/static/saml-metadata.xml。此步骤会更新您的 IdP 的元数据。对于某些人来说 IdPs,更新可能已经配置好了。如果是这样,请继续下一步。

如果您的 IdP 中尚未配置此更新,请查看您的 IdP 提供的文档,了解有关如何更新元数据的信息。一些提供商为您提供了键入 URL 并由 IdP 获取并安装该文件的选项。另一些提供商则要求您从该 URL 处下载该文件,然后将其作为本地文件提供。

重要

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

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

接下来,将您的 IdP 发送到的信息配置 Amazon 为身份验证响应中的 SAML 属性。根据您的 IdP,此配置已完成,跳过此步骤,并继续执行步骤 6:配置联合身份验证的中继状态

如果您的 IdP 中尚未配置此信息,请提供以下内容:

  • SAML 主题 NameID – 登录用户的唯一标识符。该值必须与 WorkSpaces 用户名相匹配,通常是 Active Directory 用户的 s aM AccountName 属性。

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

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

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

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

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

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

  • Name 属性设置为 https://aws.amazon.com/SAML/Attributes/PrincipalTag:ClientUserNameAttribute 元素(可选) - 此元素包含一个提供备用用户名格式的 AttributeValue 元素。如果您的用例需要用户名格式(例如corp\username、或)username@corp.example.com才能使用 WorkSpaces 客户端登录corp.example.com\username,请使用此属性。标签键和值可以包含字母、数字、空格以及 _ : / . + = @ - 字符的任意组合。有关更多信息,请参阅《IAM 用户指南》中的标记 IAM 用户和 Amazon STS的规则。要声明 corp\usernamecorp.example.com\username 格式,请将 SAML 断言中的 \ 替换为 /

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

  • AttributeName属性设置为 https://aws.amazon.com/SAML/Attributes/ 的元素SessionDuration(可选)— 此元素包含一个AttributeValue元素,用于指定在要求重新进行身份验证之前,用户的联合流媒体会话可以保持活动状态的最长时间。默认值为 3600 秒(60 分钟)。有关更多信息,请参阅 SAML SessionDurationAttribute

    注意

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

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

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

接下来,使用您的 IdP 将联盟的中继状态配置为指向 WorkSpaces 目录中继状态 URL。成功通过身份验证后 Amazon,用户将被定向到 WorkSpaces 目录端点,该终端节点在 SAML 身份验证响应中定义为中继状态。

以下为中继状态 URL 格式:

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

根据您的 WorkSpaces 目录注册码和与您的目录所在区域关联的中继状态端点构建您的中继状态 URL。可以在 WorkSpaces 管理控制台中找到注册码。

或者,如果您使用跨区域重定向 WorkSpaces,则可以将注册代码替换为与主区域和故障转移区域中的目录关联的完全限定域名 (FQDN)。有关更多信息,请参阅 Amazon 的跨区域重定向。 WorkSpaces使用跨区域重定向和 SAML 2.0 身份验证时,需要使用与每个区域关联的中继状态端点,为 SAML 2.0 身份验证启用主目录和故障转移目录,并使用 IdP 进行独立配置。这将允许用户在登录前注册其 WorkSpaces 客户端应用程序时正确配置 FQDN,并允许用户在故障转移事件期间进行身份验证。

下表列出了可用 WorkSpaces SAML 2.0 身份验证的区域的中继状态端点。

支持 WorkSpaces SAML 2.0 身份验证的区域
区域 中继状态端点
美国东部(弗吉尼亚州北部)区域
  • workspaces.euc-sso.us-east-1.aws.amazon.com

  • (FIPS) 工作空间。 euc-sso-fips.us-east-1.aws.amazon.com

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

  • (FIPS) 工作空间。 euc-sso-fips.us-west-2.aws.amazon.com

非洲(开普敦)区域 workspaces.euc-sso.af-south-1.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
以色列(特拉维夫)区域 workspaces.euc-sso.il-central-1.aws.amazon
Amazon GovCloud (美国西部)
  • workspaces.euc-so。 us-gov-west-1。 amazonaws-us-gov.com

  • (FIPS) 工作空间。 euc-sso-fips。 us-gov-west-1。 amazonaws-us-gov.com

注意

有关更多信息,请参阅 Amazon GovCloud (美国)用户指南 WorkSpaces中的 Amazon

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

  • (FIPS) 工作空间。 euc-sso-fips。 us-gov-east-1。 amazonaws-us-gov.com

注意

有关更多信息,请参阅 Amazon GovCloud (美国)用户指南 WorkSpaces中的 Amazon

步骤 7:在您的 WorkSpaces 目录上启用与 SAML 2.0 的集成

您可以使用 WorkSpaces 控制台在 WorkSpaces 目录上启用 SAML 2.0 身份验证。

启用与 SAML 2.0 的集成
  1. 打开 WorkSpaces 控制台,网址为 https://console.aws.amazon.com/workspaces/

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

  3. 选择您的 “目录 ID” WorkSpaces。

  4. 身份验证下,选择编辑

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

  6. 选中启用 SAML 2.0 身份验证

  7. 对于用户访问 URLIdP 深层链接参数名称,输入适用于您 IdP 和您在步骤 1 中配置的应用程序的值。如果您省略此参数,则 IdP 深度链接参数名称的默认值RelayState为 “”。下表列出了应用程序的各种身份提供者所独有的用户访问 URL 和参数名称。

    要添加到允许列表的域和 IP 地址
    身份提供商 参数 用户访问 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://<DefaultTenatName>.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>

    用户访问 URL 通常由提供者针对未经请求的 IdP 发起的 SSO 定义。用户可以在 Web 浏览器中输入此 URL,以直接与 SAML 应用程序联合。要测试 IdP 的用户访问 URL 和参数值,请选择测试。将测试 URL 复制并粘贴到当前浏览器或其他浏览器的私有窗口,以便在不中断当前 Amazon 管理控制台会话的情况下测试 SAML 2.0 登录。当 IDP 启动的流程打开时,您可以注册您的 WorkSpaces 客户端。有关更多信息,请参阅身份提供者 (IdP) 启动的流程

  8. 通过选中或取消选中允许不支持 SAML 2.0 的客户端登录,管理回退设置。启用此设置可继续为用户提供 WorkSpaces 使用不支持 SAML 2.0 的客户端类型或版本的访问权限,或者如果用户需要时间升级到最新的客户端版本。

    注意

    此设置允许用户绕过 SAML 2.0 和使用旧版客户端通过目录身份验证进行的登录。

  9. 要将 SAML 与 Web 客户端一起使用,请启用 Web Access。有关更多信息,请参阅启用和配置 Amazon WorkSpaces Web Access

    注意

    Web Access 不支持带有 SAML 的 PCoIP。

  10. 选择保存。您的 WorkSpaces 目录现已启用 SAML 2.0 集成。您可以使用 IdP 启动的流程和客户端应用程序启动的流程来注册 WorkSpaces 客户端应用程序并登录。 WorkSpaces