亚马逊AWS官方博客

AWS Single Sign-On 的新功能

大规模高效管理用户身份需要新的解决方案来连接许多组织现在使用的多个身份源。客户希望在自己的应用程序、第三方应用程序 (SaaS) 和 AWS 云环境中建立一个身份和权限策略。

今天,我们发布了 AWS Single Sign-On 的新功能,可支持使用 Azure AD 的企业将其现有的身份存储与 AWS Single Sign-On 搭配使用。此外,还支持通过 Azure AD 自动同步用户身份和组。用户现可使用其现有的 Azure AD 身份登录组成其 AWS 环境的多个账户和应用程序,而无需记住其他用户名和密码,用户将按照他们熟悉的步骤进行登录。此外,管理员还可以专注于管理 Azure AD 中用户身份的单一事实来源,同时可以方便地集中配置所有 AWS 账户和应用程序的访问权限。

假设我是一家企业的管理员,我们已使用 Azure AD 来获取用户身份,现在则希望我的用户能够通过其现有身份轻松简便地使用我们的 AWS 环境。我不想在 AWS Single Sign-On 中手动复制我的 Azure AD 组和用户会员资格设置,也不想维护两个身份系统,因此我还需要启用自动同步功能。我的用户将按照他们在 Azure AD 中已经熟悉的步骤来登录 AWS 环境。您可以单击此处了解关于在 Azure AD 中对应用程序启用单一登录的更多信息。要了解关于管理 AWS 账户和应用程序权限的更多信息,请参考 AWS Single Sign-On 用户指南

连接 Azure AD 作为 AWS Single Sign-On 的身份源
我的第一步是将 Azure AD 与 AWS Single Sign-On 连接。首先,我登录自己账户的 Azure 门户,并导航到 Azure Active Directory 控制面板。然后,从左侧导航面板中选择企业应用程序

接下来,单击 + 新应用程序,选择非库应用程序。在打开的添加自己的应用程序页面中,在名称字段中输入 AWS SSO,您可以使用任何喜欢的名称,然后单击添加。几秒钟后,我的新应用程序将完成创建,我将重定向到该应用程序的设置概览。

我将在这里配置各种设置来启用单一登录,并在 Azure AD 和 AWS Single Sign-On 之间交换联合元数据。我从导航面板中选择单一登录,然后单击 SAML 选项。在之后打开的设置页面中,我需要下载 SAML 签名证书面板中显示的联合元数据 XML 文件。默认情况下,该文件将命名为 AWS SSO.xml,将在后续步骤中用于配置 AWS Single Sign-On

下载完文件后,我打开另一个浏览器选项卡(我将“Azure AD”选项卡保持打开状态,因为我之后需要返回该选项卡),登录 AWS Single Sign-On 控制台。在控制面板主页,单击启用 AWS SSO 按钮。几秒钟后,我的账户就启用了单一登录,我可以继续配置与 Azure AD 的连接。

单击导航面板中的设置后,我首先通过单击更改链接并从选项列表中选择外部身份提供程序来设置身份源。我现在有两件事要做。首先,我需要使用页面上的链接下载 AWS SSO SAML 元数据文件,我在返回 Azure AD 门户后需要使用该文件。其次,在身份提供程序元数据部分浏览并选择从 Azure AD 下载的 XML 文件。

我单击下一步: 查看,在提供的字段中输入确认,最后单击更改身份源以完成流程的 AWS Single Sign-On 环节。

返回之前我打开的 Azure AD 选项卡的使用 SAML 设置单一登录设置页面,单击页面顶部的上传元数据文件按钮,在 AWS Single Sign-On 设置中浏览并选择我从 AWS SSO SAML 元数据链接下载的文件,然后在打开的 SAML 基本配置弹出窗口中,单击保存。此时,如果我已经在 AWS Single Sign-On 中拥有用户账户,且用户名与 Azure AD 中的用户相符,可以单击测试按钮来验证我的设置。

用户数量相对较少的客户可能希望继续维护 AWS Single Sign-On 中的用户账户,而不希望依靠自动预置功能,那可以在这里停止自动预置功能,只使用登录功能。但为了方便起见,我们建议启用自动预置功能。您添加到 Azure AD 组中的新用户将自动获得访问权限,而无需执行其他任何操作,从而使最终用户方便管理并提高工作效率。从 Azure AD 组中删除的用户将自动失去对 AWS Single Sign-On 中关联权限的访问权限,这是一项安全优势。

启用自动预置功能
既然我的 Azure AD 已配置单一登录,我的用户可以使用 AWS Single Sign-On 进行连接,我将启用用户账户的自动预置功能。将新账户添加到我的 Azure AD 中并分配给我创建的 AWS SSO 应用程序后,如果这些用户登录 AWS,系统将自动创建相应的 AWS Single Sign-On 用户。作为管理员,我无需执行任何操作即可在 AWS 中配置相应账户以映射到 Azure AD 用户。

AWS Single Sign-On 控制台中,导航到设置,然后单击启用身份同步链接。这将打开一个对话框,其中包含 SCIM 终端节点和 OAuth 持有者访问令牌(默认情况下隐藏)的值。我需要在 Azure AD 应用程序设置中同时使用这些值,因此要记下这些值,或者使用多个浏览器选项卡,并根据需要进行复制/粘贴。

切换回我的 Azure AD 浏览器选项卡和 AWS SSO 应用程序后,我单击导航面板中的预置,并将预置模式设置为自动。这会触发显示各种字段,我需要在这些字段中填写 AWS Single Sign-On 控制台的对话框中的值。首先,我将 SCIM 终端节点的值粘贴到租户 URL 字段。然后将访问令牌粘贴到机密令牌字段。

通过输入通知电子邮件的值来完成设置,并选择在发生预置故障时接收电子邮件,然后单击测试连接按钮来验证一切工作是否正常。假设一切工作正常,单击页面工具栏中的保存,然后仅需执行几个小步骤来配置属性映射,我就完成了!

展开映射,我单击将 Azure Active Directory 用户同步到 customappsso 链接(您的链接可能显示为“…到 AWS SSO”)。这会转到一个供我控制属性映射的页面。在该部分中,我删除了 facsimileTelephoneNumbermobile 属性,因为我不会使用它们,然后单击并编辑 mailNickname 属性,同时将 Source 属性更改为 objectId。我单击保存返回设置屏幕,还剩开启同步这一步,方法是在预置状态中单击,然后再次单击保存

请注意,第一次同步用时将比随后的每 40 分钟同步一次的用时更长。要查看进度,我可以在 Azure AD 中查看同步详细信息审核日志,也可以在 AWS Single Sign-On 控制台中,从导航面板中选择用户

配置完单一登录后,我现在该做什么?
Azure AD 现在将成为我的用户身份及其分配给组的单一事实来源,定期同步将自动在 AWS Single Sign-On 中创建相应的用户身份,使我的用户可以使用其 Azure AD 凭据和经验登录其 AWS 账户和应用程序,而不必记住其他用户名和密码。不过,就目前的情况来看,我的用户将只具备登录权限。要对用户登录 AWS 后可以访问哪些内容方面的权限进行管理,我需要使用 AWS Single Sign-On 控制台AWS Single Sign-On 中设置权限。AWS Single Sign-On 使用权限集概念进行分配。权限集实质上是指附加了 AWS Identity and Access Management (IAM) 策略的标准角色定义。定义权限集之后,我将组或用户分配给指定账户中的权限集。然后,AWS Single Sign-On 在指定的账户中创建基础的 AWS Identity and Access Management (IAM) 角色,包括授予该组或用户访问权限的所有正确信息。您可以在 AWS Single Sign-On 用户指南中详细了解权限集。

在下面的屏幕截图中,您可以看到自动同步的效果。在 Azure AD 中,我已创建三个组,并已将我的用户账户分配到其中两个组中(出于本博文演示目的)。同步完成后,切换到 AWS Single Sign-On 控制台,我看到系统已自动创建三个组,并已将我的用户账户分配到我所选的组中。

通过导航面板中的 AWS 账户应用程序链接中提供的权限集,我可以将一个或多个访问控制策略(我所创建的自定义策略或 AWS Identity and Access Management (IAM) 托管策略)关联到组和用户,从而在用户登录后控制权限。按照熟悉的 Azure AD 操作步骤完成登录后,用户将可以选择要使用的账户和角色。您还可以使用 AWS 控制台和 CLI 完成登录。在这篇博文中详细介绍了通过 AWS 命令行界面 (CLI) 版本 2 进行单一登录的详细信息。

在本博文中,我介绍了如何利用 AWS Single Sign-On 的新功能将 Azure AD 用户身份集中链接到 AWS 账户和应用程序,以便进行单一登录,并在管理和使用身份时利用新的自动预置支持来降低复杂性。管理员现可使用单一事实来源来管理其用户,并且用户无需再管理其他身份和密码即可登录其 AWS 账户和应用程序。

现已面向支持 AWS Single Sign-On 的区域中的所有用户推出这一新功能。您可以单击此处查看 AWS Single Sign-On 的可用区域。

– Steve