本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 SAML 2.0 并创建 WorkSpaces 池目录
您可以通过使用 SAML 2.0 设置联合身份 WorkSpaces 来启用 WorkSpaces 客户端应用程序注册和登录 WorkSpaces 池。为此,你使用 AWS Identity and Access Management (IAM) 角色和中继状态,URL用于配置您的 SAML 2.0 身份提供商 (IdP) 并将其启用 AWS。 这将授予您的联合用户访问 WorkSpace 池目录的权限。中继状态是成功登录用户后被转发到的 WorkSpaces 目录端点 AWS.
主题
第 1 步:考虑要求
在设置 P WorkSpaces ools 目录时SAML,需要满足以下要求。
-
workspaces_ DefaultRole IAM 角色必须存在于你的 AWS account。当您使用 “快速设置” 或之前使用 “ WorkSpaces 快速设置” 启动时,系统会自动创建此角色 WorkSpace AWS Management Console。 它授予亚马逊访问特定内容的 WorkSpaces权限 AWS 代表您提供的资源。如果该角色已经存在,则可能需要将 AmazonWorkSpacesPoolServiceAccess托管策略附加到该角色上,Amazon WorkSpaces 使用该策略来访问所需的资源 AWS WorkSpaces 矿池账户。有关更多信息,请参阅创建工作空间_ 角色 DefaultRole 和AWS 托管策略: AmazonWorkSpacesPoolServiceAccess。
-
可以在中为 WorkSpaces 池配置 SAML 2.0 身份验证 AWS 区域 支持该功能的。有关更多信息,请参阅 AWS 区域 和 WorkSpaces 池的可用区。
-
要将 SAML 2.0 身份验证与一起使用 WorkSpaces,IdP 必须支持通过深度链接目标资源或中继状态端点主动发起的 IdP SSO。URL这方面的 IdPs 支持示例包括 ADFS Azure AD、Duo 单点登录、Okta 和。 PingFederate PingOne有关更多信息,请参阅 IdP 文档。
-
SAML仅以下 WorkSpaces 客户端支持 2.0 身份验证。要了解最新 WorkSpaces 客户,请查看 Amazon WorkSpaces 客户端下载页面
。 -
Windows 客户端应用程序版本 5.20.0 或更高版本
-
macOS 客户端版本 5.20.0 或更高版本
-
Web Access
-
步骤 2:完成先决条件
在配置 SAML 2.0 IdP 到 WorkSpaces 池目录的连接之前,请完成以下先决条件。
-
配置您的 IdP 以与之建立信任关系 AWS.
-
请参阅将第三方SAML解决方案提供商与 AWS了解有关配置的更多信息 AWS 联邦。相关示例包括 IdP 集成IAM以访问 AWS Management Console.
-
使用您的 IdP 生成和下载联合身份验证元数据文档,该文档将您的组织描述为 IdP。此签名XML文件用于建立依赖方信任。将此文件保存到稍后可以从IAM控制台访问的位置。
-
使用 WorkSpaces 控制台创建 WorkSpaces 池目录。有关更多信息,请参阅 将活动目录与 WorkSpaces 池一起使用。
-
为可以使用支持的目录类型登录 IdP 的用户创建 WorkSpaces 池。有关更多信息,请参阅 创建 WorkSpaces 池。
步骤 3:在中创建SAML身份提供商 IAM
要开始使用,您必须在中创建 I SAML dP。IAM此 IdP 定义了贵组织的 IdP-to-AWS 使用组织中 IdP 软件生成的元数据文档建立信任关系。有关更多信息,请参阅中的创建和管理SAML身份提供商 AWS Identity and Access Management 用户指南。有关SAML IdPs 在中使用的信息 AWS GovCloud (US) Regions,请参阅 AWS Identity and Access Management中的AWS GovCloud (US) 用户指南。
步骤 4:创建 WorkSpace 池目录
完成以下过程以创建 WorkSpaces 池目录。
打开 WorkSpaces 控制台,网址为https://console.aws.amazon.com/workspaces/
。 -
在导航窗格中选择 “目录”。
-
选择创建目录。
-
对于WorkSpace 类型,请选择池。
-
在页面的用户身份来源部分:
-
在用户访问权限URL文本框中输入占位符值。例如,在文本框中输
placeholder
入。稍后您将在您的 IdP 中设置应用程序授权后对其进行编辑。 -
将中继状态参数名称文本框留空。稍后您将在您的 IdP 中设置应用程序授权后对其进行编辑。
-
-
在该页的目录信息部分,输入目录的名称和描述。目录名称和描述必须少于 128 个字符,可以包含字母数字字符和以下特殊字符:
_ @ # % * + = : ? . / ! \ -
。目录名称和描述不能以特殊字符开头。 -
在该页面的 “网络和安全” 部分:
-
选择 a VPC 和 2 个可以访问应用程序所需网络资源的子网。为了提高容错能力,您应该在不同的可用区中选择两个子网。
-
选择一个 WorkSpaces 允许在中创建网络链接的安全组VPC。安全组控制允许从哪些网络流量流 WorkSpaces 向您的流量VPC。例如,如果您的安全组限制所有入站HTTPS连接,则访问您的 Web 门户的用户将无法从中 WorkSpaces加载HTTPS网站。
-
-
活动目录 Config 部分是可选的。但是,如果您计划在池中使用 AD,则应在创建 WorkSpaces 池目录时指定活动目录 (AD) 详细信息。 WorkSpaces 创建 WorkSpaces 池目录的 Active Directory Config 后,您就无法对其进行编辑。有关为 WorkSpaces 池目录指定 AD 详细信息的更多信息,请参阅为 P WorkSpaces ools 目录指定活动目录的详细信息。完成该主题中概述的过程后,应返回本主题以完成创建 WorkSpaces 池目录。
如果您不打算在 WorkSpaces 池中使用 AD,则可以跳过 A ctive Directory Config 部分。
-
在页面的直播属性部分:
-
选择剪贴板权限行为,输入复制到本地字符的限制(可选),然后粘贴到远程会话的字符限制(可选)。
-
选择允许或不允许打印到本地设备。
-
选择允许或不允许诊断记录。
-
选择允许或不允许智能卡登录。仅当您在本步骤前面启用了 AD 配置时,此功能才适用。
-
-
在该页面的 “存储” 部分,您可以选择启用主文件夹。
-
在页面的IAM角色部分,选择一个可供所有桌面流媒体实例使用的IAM角色。要创建新角色,请选择创建新IAM角色。
当你将账户IAM中的角色应用到 WorkSpace 池目录时,你可以 AWS API来自 WorkSpace 池 WorkSpace 中的请求,无需手动管理 AWS 证书。有关更多信息,请参阅中的创建角色以向IAM用户委派权限 AWS Identity and Access Management 用户指南。
-
选择创建目录。
步骤 5:创建 SAML 2.0 联合IAM角色
完成以下步骤,在IAM控制台中创建 SAML 2.0 联合IAM角色。
-
打开IAM控制台,网址为https://console.aws.amazon.com/iam/
。 -
在导航窗格中选择 Roles。
-
选择 Create role(创建角色)。
-
为可信实体类型选择 SAML2.0 联合。
-
对于SAML基于 2.0 的提供商,请选择您在中创建的身份提供商。IAM有关更多信息,请参阅中的创建SAML身份提供商IAM。
-
选择 “仅允许编程访问” 以允许访问。
-
为属性选择:AUD SAML。
-
对于值,请输入
https://signin.aws.amazon.com/saml
。此值限制角色对包含SAML主题类型断言且值为的SAML用户流式传输请求的访问权限。persistent
如果:sub_type SAML 是永久性的,则您的 IdP 会在来自特定用户的所有请求NameID
中为该元素发送相同的唯一值。SAML有关更多信息,请参阅中在SAML基于联合身份验证中唯一标识用户 AWS Identity and Access Management 用户指南。 -
选择下一步以继续。
-
请勿在 “添加权限” 页面中进行更改或选择。选择下一步以继续。
-
输入角色的名称和描述。
-
选择 Create role(创建角色)。
-
在 “角色” 页面中,选择必须创建的角色。
-
选择 Trust relationships(信任关系)选项卡。
-
选择编辑信任策略。
-
在编辑信任策略JSON文本框中,将 sts: TagSession 操作添加到信任策略。有关更多信息,请参阅中的传递会话标签 AWS STS中的AWS Identity and Access Management 用户指南。
结果应该类似以下示例。
-
选择更新策略。
-
选择权限选项卡。
-
在页面的 “权限策略” 部分,选择 “添加权限”,然后选择 “创建内联策略”。
-
在页面的策略编辑器部分,选择JSON。
-
在策略编辑器JSON文本框中,输入以下策略。请务必更换:
-
<region-code>
用代码 AWS 您在其中创建 WorkSpace 池目录的区域。 -
<account-id>
与 AWS 账号。 -
<directory-id>
使用您之前创建的目录的 ID。你可以在 WorkSpaces控制台中获得这个。
有关资源,请参阅 AWS GovCloud (US) Regions,请使用以下格式表示ARN:
arn:aws-us-gov:workspaces:
。<region-code>
:<account-id>
:directory/<directory-id>
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "workspaces:Stream", "Resource": "arn:aws:workspaces:
<region-code>
:<account-id>
:directory/<directory-id>
", "Condition": { "StringEquals": {"workspaces:userId": "${saml:sub}"} } } ] } -
-
选择下一步。
-
为策略输入名称,然后选择 Create policy (创建策略)。
步骤 6:配置您的 SAML 2.0 身份提供商
根据您的 SAML 2.0 IdP,您可能需要手动更新您的 IdP 以获得信任 AWS 作为服务提供商。为此,您可以下载在 https://signin.aws.amazon.com/static/saml-metadata.xmlsaml-metadata.xml
文件,然后将其上传到您的 IdP。这会更新您的 IdP 的元数据。
对于某些人来说 IdPs,更新可能已经配置好了。如果已配置,则可以跳过此步骤。如果您的 IdP 中尚未配置更新,请查看您的 IdP 提供的文档,了解有关如何更新元数据的信息。有些提供商允许你选择将XML文件键入他们的控制面板,然后 IdP 会为你获取并安装文件。URL其他人则要求您从下载文件,URL然后将其上传到他们的控制面板。
重要
此时,您还可以授权 IdP 中的用户访问您在 IdP 中配置的 WorkSpaces应用程序。有权访问您目录中 WorkSpaces 应用程序的用户不会自动为他们 WorkSpace创建一个。同样,为其 WorkSpace 创建的用户也不会自动获得访问该 WorkSpaces 应用程序的权限。要成功连接到 usin WorkSpace g SAML 2.0 身份验证,用户必须获得 IdP 的授权并且必须已创建。 WorkSpace
步骤 7:为SAML身份验证响应创建断言
配置您的 IdP 发送到的信息 AWS 作为其身份验证响应中的SAML属性。这可能已经配置好了,具体取决于您的 IdP。如果已配置,则可以跳过此步骤。如果尚未配置,请提供以下信息:
-
SAML主题名称 ID-正在登录的用户的唯一标识符。请勿更改此字段的格式/值。否则,主文件夹功能将无法按预期运行,因为该用户将被视为不同的用户。
注意
对于已加入域的 WorkSpaces 池,必须使用以的格式为用户提供
NameID
值sAMAccountName
,或者domain\username
username@domain.com
格式使用userPrincipalName
或仅提供。userName
如果您使用的是该sAMAccountName
格式,则可以使用网络BIOS名称或完全限定域名 (FQDN) 来指定域。该sAMAccountName
格式是活动目录单向信任方案所必需的。有关更多信息,请参阅将活动目录与 WorkSpaces 池一起使用。如果userName
仅提供,则用户将登录到主域 -
SAML主题类型(值设置为
persistent
)-将该值设置为persistent
可确保您的 IdP 在来自特定用户的所有SAML请求中为该NameID
元素发送相同的唯一值。请确保您的IAM策略包含仅允许SAMLsub_type
设置为的SAML请求的条件persistent
,如步骤 5:创建 SAML 2.0 联合IAM角色部分所述。 -
Attribute
Name
属性设置为 “ https://aws.amazon.com/SAML/属性/角色” 的元素 — 此元素包含一个或多个元素,这些AttributeValue
元素列出了您的 I SAML dP 将用户映射到的角色IAM和 IdP。角色和 IdP 以逗号分隔的一对指定。ARNs预期值的一个示例是arn:aws:iam::
。<account-id>
:role/<role-name>
,arn:aws:iam::<account-id>
:saml-provider/<provider-name>
-
Attribute
Name
属性设置为 Att https://aws.amazon.com/SAML/ ributes/ 的元素 RoleSessionName — 此元素包含一个为该AttributeValue
元素提供标识符的元素 AWS 为颁发的临时证书SSO。AttributeValue
元素中的值必须介于 2 到 64 个字符之间,可以包含字母数字字符和以下特殊字符:_ . : / = + - @
。它不能包含空格。该值通常是电子邮件地址或用户主体名称 (UPN)。该值不应包含空格,如用户的显示名称。 -
Attribute
Name
属性设置为 Att https://aws.amazon.com/SAML/ ributes/: Email 的元素 PrincipalTag — 此元素包含一个提供AttributeValue
用户电子邮件地址的元素。该值必须与 WorkSpaces 目录中定义的 WorkSpaces 用户电子邮件地址相匹配。标签值可能包括字母、数字、空格和_ . : / = + - @
字符的组合。有关更多信息,请参阅中添加标签的IAM规则和 AWS STS中的AWS Identity and Access Management 用户指南。 -
(可选)
Name
属性设置为 A https://aws.amazon.com/SAML/ ttributes/PrincipalTag: 的Attribute
元素 UserPrincipalName — 此元素包含一个userPrincipalName
为登录用户提供 Active Directory 的AttributeValue
元素。该值必须username@domain.com
采用以下格式提供。此参数与基于证书的身份验证一起使用,作为最终用户证书中的主题备用名称。有关更多信息,请参阅 基于证书的身份验证和个人 WorkSpaces 。 -
(可选)
Name
属性设置为 A https://aws.amazon.com/SAML/ ttributes/PrincipalTag:ObjectSid (可选)的Attribute
元素-此元素包含一个为登录用户提供 Active Directory 安全标识符 (SID) 的AttributeValue
元素。此参数与基于证书的身份验证一起使用,以启用到 Active Directory 用户的强映射。有关更多信息,请参阅 基于证书的身份验证和个人 WorkSpaces 。 -
(可选)
Name
属性设置为 At https://aws.amazon.com/SAML/ tributes/: Domain 的Attribute
元素 PrincipalTag — 此元素包含一个为登录用户提供 Active Directory 完全DNS限定域名 () FQDN 的元素AttributeValue
。当用户的 Active DirectoryuserPrincipalName
包含备用后缀时,此参数用于基于证书的身份验证。该值必须以domain.com
格式提供,并且必须包含所有子域名。 -
(可选)
Name
属性设置为 A https://aws.amazon.com/SAML/ ttributes/ 的Attribute
元素 SessionDuration — 此元素包含一个AttributeValue
元素,用于指定在要求重新进行身份验证之前,用户的联合流媒体会话可以保持活动状态的最长时间。默认值为3600
秒(60 分钟)。有关更多信息,请参阅SAML SessionDurationAttribute中的 AWS Identity and Access Management 用户指南。注意
尽管它
SessionDuration
是一个可选属性,但我们建议您在SAML响应中包含该属性。如果您未指定此属性,则会话持续时间将设置为默认值,即3600
秒(60 分钟)。 WorkSpaces 桌面会话将在会话持续时间到期后断开连接。
有关如何配置这些元素的更多信息,请参阅中的为身份验证响应配置SAML断言 AWS Identity and Access Management 用户指南。有关 IdP 的具体配置要求的信息,请参阅 IdP 的文档。
步骤 8:配置联盟的中继状态
使用您的 IdP 将联盟的中继状态配置为指向 WorkSpaces 池目录中继状态。URL成功通过身份验证后 AWS,用户将被定向到 WorkSpaces 池目录端点,该端点定义为SAML身份验证响应中的中继状态。
以下是中继状态URL格式:
https://relay-state-region-endpoint/sso-idp?registrationCode=registration-code
下表列出了中继状态端点 AWS 提供 WorkSpaces SAML 2.0 身份验证的区域。 AWS 无法使用 WorkSpaces 池功能的区域已被移除。
区域 | 中继状态端点 |
---|---|
美国东部(弗吉尼亚州北部)区域 | workspaces.euc-sso.us-east-1.aws.amazon.com |
美国西部(俄勒冈州)区域 | workspaces.euc-sso.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 |
AWS GovCloud (美国西部) | workspaces.euc-so。 us-gov-west-1。 amazonaws-us-gov.com 注意有关SAML IdPs 在中使用的信息 AWS GovCloud (US) Regions,参见 Amazon WorkSpaces 中的 AWS GovCloud (美国)用户指南。 |
AWS GovCloud (美国东部) | workspaces.euc-so。 us-gov-east-1。 amazonaws-us-gov.com 注意有关SAML IdPs 在中使用的信息 AWS GovCloud (US) Regions,参见 Amazon WorkSpaces 中的 AWS GovCloud (美国)用户指南。 |
步骤 9:在 WorkSpace 池目录上启用与 SAML 2.0 的集成
完成以下步骤以启用 P WorkSpaces ool 目录的 SAML 2.0 身份验证。
打开 WorkSpaces 控制台,网址为https://console.aws.amazon.com/workspaces/
。 -
在导航窗格中选择 “目录”。
-
选择池目录选项卡。
-
选择要编辑的目录的 ID。
-
在该页面的 “身份验证” 部分选择 “编辑”。
-
选择编辑 SAML 2.0 身份提供商。
-
对于用户访问权限 URL(有时也SSOURL称为 “”),请将占位符值替换为您的 IdP SSO URL 提供给您的值。
-
在 IdP 深度链接参数名称中,输入适用于您的 IdP 和您配置的应用程序的参数。
RelayState
如果省略参数名称,则默认值为。下表列出了应用程序的各种身份提供商所独有的用户访问权限URLs和深度链接参数名称。
身份提供商 参数 用户访问权限 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>
/ssoOkta RelayState
https://
<sub-domain>
.okta.com/app/<app-name>
/<app-id>
/sso/samlOneLogin 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>
-
选择保存。