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

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

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

Siva Vinnakota 和 Shantanu Padhye,亚马逊 Web Services

摘要

此模式探讨了如何将 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 控制面板并选择身份验证企业、A ctive Directory/LDAP。选择创建连接

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

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

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

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

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

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

云管理员、云架构师

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

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

  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 IdP。

要将 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,请参阅:

相关资源