使用 Auth0 为亚马逊 WorkSpaces 实施 SAML 2.0 身份验证和 AWS Managed Microsoft AD - AWS 规范指引

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

使用 Auth0 为亚马逊 WorkSpaces 实施 SAML 2.0 身份验证和 AWS Managed Microsoft AD

Siva Vinnakota 和 Shantanu Padhye,Amazon Web Services

Summary

此模式探讨了如何将 Auth0 与集成 AWS Directory Service for Microsoft Active Directory ,为您的亚马逊 WorkSpaces 环境创建强大的 SAML 2.0 身份验证解决方案。它解释了如何在它们之间建立联合, AWS 服务 以启用多因素身份验证 (MFA) 和自定义登录流程等高级功能,同时保持无缝的桌面访问权限。 AWS Managed Microsoft AD无论您的团队规模如何,这种集成都有助于为组织提供灵活性和安全性。此模式提供了设置过程的步骤,因此您可以在自己的环境中实施此解决方案。

先决条件和限制

先决条件

  • 活跃的 AWS 账户

  • AWS Managed Microsoft AD

  • Amazon Person WorkSpaces al 中与之关联的预配置桌面 AWS Managed Microsoft AD

  • 亚马逊弹性计算云 (Amazon EC2) 实例

  • Auth0 账户

限制

有些 AWS 服务 并非全部可用 AWS 区域。有关区域可用性,请参阅按区域划分的AWS 服务。有关特定端点,请参阅服务端点和配额页面,然后选择相应服务的链接。

架构

WorkSpaces 客户端应用程序的 SAML 2.0 身份验证过程包括五个步骤,如下图所示。这些步骤可代表典型的登录工作流。按照此模式中的说明进行操作后,您可以使用这种分布式方法进行身份验证,以帮助为用户提供结构化且安全的访问方法。

WorkSpaces 客户端应用程序的 SAML 2.0 身份验证过程的工作流程。

工作流:

  1. 注册。用户启动客户端应用程序 WorkSpaces 并输入其启用 SAML WorkSpaces 的目录的 WorkSpaces 注册码。 WorkSpaces 返回客户端应用程序的 Auth0 身份提供者 (IdP) 网址。

  2. 登录。 WorkSpaces 客户端使用 Auth0 网址重定向到用户的 Web 浏览器。 用户使用用户名和密码进行身份验证。Auth0 向客户端浏览器返回 SAML 断言。SAML 断言是一种用于断言用户身份的加密令牌。

  3. 认证。客户端浏览器将 SAML 断言发布到 AWS 登录 端点以对其进行验证。 AWS 登录 允许调用者扮演 AWS Identity and Access Management (IAM) 角色。这将返回一个包含 IAM 角色临时证书的令牌。

  4. WorkSpaces 登录。 WorkSpaces 客户端将令牌 WorkSpaces 提供给服务端点。 WorkSpaces 将令牌交换为会话令牌,并将带有登录 URL 的会话令牌返回给 WorkSpaces 客户端。当 WorkSpaces 客户端加载登录页面时。用户名值由 SAML 响应中传递的NameId值填充。

  5. 直播。用户输入密码并根据 WorkSpaces 目录进行身份验证。身份验证后,将令牌 WorkSpaces 返回给客户端。客户端重定向回 WorkSpaces 服务并出示令牌。这会促成 WorkSpaces 客户端与之间的流媒体会话 WorkSpace。

注意

要设置不需要密码提示的无缝单点登录体验,请参阅文档中的基于证书的身份验证和 WorkSpaces 个人。 WorkSpaces

工具

AWS 服务

其他工具

  • Auth0 是一个身份验证和授权平台,可帮助您管理对应用程序的访问权限。

操作说明

Task说明所需技能

使用在 Auth0 中安装活动目录 LDAP 连接器。 AWS Managed Microsoft AD

  1. 登录 Auth0 控制面板并选择身份验证企业Active Directory / LDAP。选择创建连接

  2. 提供 Active Directory 连接的名称,然后选择创建

  3. 安装选项卡上,下载适用于您的操作系统的代理。

    完成安装后,您的默认浏览器会提示您输入票证 URL。

  4. 输入预调配票证 URL(对于您的连接字符串而言,该网址应该是唯一的),然后选择继续

  5. AD LDAP 配置对话框中,对于用户名密码中,输入您的管理员凭证,然后选择保存

    与 Auth0 建立连接后,将显示配置日志,其中显示,所有检查的报告状态均为正常

云管理员、云架构师

在 Auth0 中创建应用程序以生成 SAML 元数据清单文件。

  1. 登录 Auth0 控制面板,并按照 Auth0 文档中的说明,创建新应用程序。

  2. 在 Auth0 控制面板上,选择应用程序名称以访问其配置设置。在AddOns选项卡上,选择 SAML2 Web 应用程序

  3. 在插件的 “设置” 选项卡上,在 “应用程序回调 URL” 中输入 https://signin.aws.amazon.com/sam l。SAML 令牌会将 POST 请求发送到此处。

  4. 设置选项卡的设置框中,以 JSON 格式粘贴以下 SAML 配置代码:

    { "audience": "https://signin.aws.amazon.com/saml", "mappings": { "email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sAMAccountName", "name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" }, "createUpnClaim": false, "passthroughClaimsWithNoMapping": false, "mapUnknownClaimsAsIs": false, "mapIdentities": false, "nameIdentifierFormat": "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "nameIdentifierProbes": [ "http://schemas.auth0.com/sAMAccountName" ] }
  5. 保存,然后选择然后启用

  6. 选择使用情况选项卡,然后下载身份提供者的元数据清单文件。您在后续步骤中需要此信息。

  7. 关闭 SAML2 Web 应用程序窗口。

  8. 在应用程序屏幕上,选择连接。在 “企业” 下,选择正确的活动 Directory/LDAP 连接器并将其启用。

云管理员、云架构师
Task说明所需技能

首先,在 IAM 中创建 SAML 2.0。

要将 SAML 2.0 设置为 IdP,请按照 IAM 文档中在 IAM 中创建 SAML 身份提供者中概述的步骤进行操作。

云管理员

创建用于 SAML 2.0 联合身份验证的 IAM 角色和策略。

  1. 创建用于 SAML 2.0 联合身份验证的 IAM 角色。有关说明,请参阅 WorkSpaces 文档中为 WorkSpaces 个人设置 SAML 2.0 的说明中的步骤 2

  2. 创建 IAM 策略,并将其与上一步中创建的角色关联。有关说明,请参阅 WorkSpaces 文档中为 WorkSpaces 个人设置 SAML 2.0 的说明中的步骤 3

云管理员
Task说明所需技能

配置 Auth0 和 SAML 断言。

您可以使用 Auth0 操作在 SAML 2.0 响应中配置断言。SAML 断言是一种用于断言用户身份的加密令牌。

  1. 登录到 Auth0 控制面板。选择操作创建操作从头开始构建

  2. 输入以下值,然后选择创建

    名称:为操作指定名称

    触发器:选择 Login/Post 登录

    运行时:选择节点 18

  3. 在下一个屏幕上,输入以下代码作:

    exports.onExecutePostLogin = async (event, api) => { if (event.client.name === "Workspace_Saml") { const awsRole = 'arn:aws:iam::030784294031:role/Workspace_Auth0,arn:aws:iam::030784294031:saml-provider/Auth0'; const awsRoleSession = event.user.sAMAccountName; const email = event.user.emails[0]; api.samlResponse.setDestination('https://signin.aws.amazon.com/saml'); api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/Role', awsRole) api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/RoleSessionName', awsRoleSession) api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/PrincipalTag:Email', email) } return; };
  4. 选择部署

WorkSpaces 个人桌面的 SAML 2.0 身份验证设置到此完成。架构部分说明了设置后的身份验证过程。

云管理员

故障排除

问题解决方案

中的 SAML 2.0 身份验证问题 WorkSpaces

如果您在实施 WorkSpaces 个人版 SAML 2.0 身份验证时遇到任何问题,请按照 re AWS : Post 中关于排除 SAML 2.0 身份验证的文章中概述的步骤和链接进行操作。

有关在访问时调查 SAML 2.0 错误的更多信息 WorkSpaces,请参阅:

相关资源