使用 Okta 将多个身份提供商与 Amazon IAM Identity Center 整合

作者: Rodney Underkoffler, Aidan Keane |

在这篇博客文章中,我们将指导您如何使用 Okta 作为身份中心,将多个身份提供商与 Amazon IAM Identity Center 集成。这种方法为用户提供一致的身份验证体验,增强安全性并简化管理。

导言

在当今快速变化的商业格局中,企业面临着管理组织内多个身份存储的复杂挑战。这种分散的身份格局通常是由合并、收购或跨组织协作计划造成的,这使 IT 团队不得不管理一个由身份验证系统组成的多样化生态系统。无论是多个本地 Active Directory 环境、微软 Entra ID 等基于云的身份解决方案,还是自托管的安全断言标记语言 (SAML) 身份提供商解决方案,组织都需要一种简化的方法来管理这些不同系统的访问权限。将这些不同的身份源与云基础架构整合为许多组织带来了重大的运营、安全和治理挑战。解决这个问题的一种方法是使用第三方身份聚合或集线器解决方案。身份中心在一个集中的位置收集有关身份和相关群组成员身份的数据。

组织采用不同的方法,将来自不同身份来源的用户和群组信息整合到像 Okta 这样的集中式身份中心。适当的集成方法取决于您的特定身份提供商和业务需求。对于拥有 Active Directory 环境的企业,像 Okta Active Directory 代理这样的目录同步工具提供自动用户配置和属性映射。使用云身份提供商的组织可以利用跨域身份管理系统 (SCIM) 协议,该协议通过支持该标准的系统之间的实时同步来自动化用户生命周期管理。当自动同步选项不可用时,替代方法仍然可行。

您可以选择通过手动流程或自定义开发的自动化脚本直接在身份中心内管理用户和群组。一些实现利用 SAML 断言属性在身份验证流程中动态确定和更新群组成员资格,从而创建了一种即时访问管理方法。每种方法在复杂性、维护要求和同步时性方面都有不同的权衡取舍。优秀策略通常涉及根据贵组织的技术环境和运营能力将这些方法结合起来。

解决方案概述

在我们的示例中,我们将使用两个 Entra ID 租户作为源身份提供商。该解决方案适用于 SAML 身份提供商,例如 Active Directory 联合服务 (AD FS) 和 Shibboleth。该方法适用于不支持 SCIM 客户端的身份提供商。在本教程中,我们之所以选择 Entra ID,是因为 SAML IdP 的设置和配置很简单。如果您有访问权限,我们建议您使用支持的 SCIM 客户端。如图 1 所示,该解决方案允许您管理多个亚马逊云科技账户对资源的访问权限,同时保持源身份提供商的身份验证。

架构图显示了连接到 Okta 身份中心的两个 Entra ID 租户。Okta 身份中心是唯一与 Amazon IAM Identity Center 集成的身份提供商。

图 1:多个 SAML 身份提供商与 Okta 集成,向 Amazon IAM Identity Center 提供单一外部身份提供商。

在此架构中,两个 Entra ID 租户都被配置为 Okta 的身份提供商。Okta 是 Amazon IAM Identity Center 的单一身份提供商。该设置使用即时配置,在登录时填充 Okta。SCIM 配置用于同步 Okta 和 Amazon IAM Identity Center 之间的更改。有了基础架构,您就可以开始配置您的环境了。

先决条件

在开始演练之前,您需要完成以下内容:

  • 使用 Okta 的 IAM 身份中心应用程序的 Okta 账户。
  • 启用 IAM 身份中心的亚马逊云科技账户。有关更多信息,请参阅如何启用 IAM 身份中心。
  • Okta 作为 IAM 身份中心的身份提供商 (IdP) 和 SCIM 客户端,如使用 Okta 和 IAM 身份中心配置 SAML 和 SCIM 的步骤 1、2 和 3 中所述。
  • 包含两个 Entra ID 租户的 Azure 帐户订阅。基于群组的任务需要微软 Entra ID P1 或 P2 许可证。

操作演练

步骤 1:设置代表不同访问级别的群组

在每个 Entra ID 租户中创建三个群组。两个组代表不同的基于角色的访问权限,将用于向您的员工授予对亚马逊云科技资源的访问权限。第三组用于分配给 Okta 应用程序。

  1. 使用你的凭据登录 Microsoft Entra 管理中心
  2. 选择群组 > 所有群组 > 新建群组
  3. 在 "创建群组" 表单中:
    • 对于群组类型,选择安全
    • 对于组名,输入 IT 运营
    • 群组描述中,输入 IT 管理员对亚马逊云科技的访问权限
    • 将其他设置保留为默认设置
    • 单击 "创建"
  4. 重复步骤 2-3 再创建两个组:
    • 群组名称:亚马逊云科技全体员工和群组描述:亚马逊云科技只读访问权限
    • 群组名称:Amazon IAM Identity Center 分配和群组描述:对 Okta 应用程序的分配

配置第二个 Entra ID 租户:根据需要注销第一个租户,并使用第二个 Entra ID 租户的管理员凭据登录。按照与上述相同的步骤创建相同的群组。

在本步骤结束时,每个 Entra ID 租户中应该有三个组(总共六个组)

第 2 步:测试用户账户创建

接下来,您将按照本快速入门中的说明在每个 Entra ID 租户中创建一个测试用户帐户。在 Entra ID 中创建用户帐户步骤。一定要将 "anyorganizionx.onmicrosoft.com" 更改为租户域的名称。

输入 ID 租户 1

  • 用户主名:RichRoe@anyorganization1.onmicrosoft.com
  • 显示名称:Rich Roe
  • 电子邮件地址:RichRoe@anyorganization1.onmicrosoft.com
  • 群组成员:Amazon IAM Identity Center 分配、IT 运营和亚马逊云科技全体员工

输入 ID 租户 2

  • 用户主名:JohnStiles@anyorganization2.onmicrosoft.com
  • 显示名称:John Stiles
  • 电子邮件地址:JohnStiles@anyorganization2.onmicrosoft.com
  • 群组成员:Amazon IAM Identity Center Assignment 和亚马逊云科技所有员工

第 3 步:将 Okta 配置为 Entra ID 的服务提供商

您需要将身份验证委托给您的两个 Entra ID 租户。这允许在源租户上控制用户身份验证,从而使 Okta 能够根据用户帐户域名将身份验证请求重定向到相应的身份源。

  1. 按照 Okta 的集成指南将 Entra ID 添加为身份提供商
  2. 按照将 Azure 活动目录属性映射到 Okta 属性中的说明进行操作。将 Entra ID 属性映射到 Okta 时,使用以下映射,如图 2 所示:
    • 用户名 → 登录
    • 名字 → 名字
    • 姓氏 → 姓氏
    • 电子邮件 → 电子邮件
将 SAML 断言中的登录名、名字、姓氏和电子邮件属性映射到 Okta 用户个人资料。

图 2:将 SAML 断言中的 Entra ID 属性映射到 Okta。

  1. 在 Entra ID 中启用群组索赔,如图 3 所示:
    • 在 Entra 管理中心中,转到身份 > 应用程序 > 企业应用程序
    • 选择您的 Okta 企业应用程序
    • 导航到单点登录 > 属性和声明
    • 选择 "编辑",然后选择 "添加群组索赔"
    • 选择分配给应用程序的组选项
    • 从 "来源" 属性下拉菜单中选择 "仅限云端的群组显示名称"
    • 保存配置
重点介绍在 Entra ID SAML 断言中添加群组索赔的步骤

图 3:在 Entra ID SAML 断言中添加群组声明。

  1. 确保将 SSO 组添加到此应用程序的用户和群组中
  2. 按照 "测试 Azure 活动目录集成" 中的说明进行操作

注意:对第二个 Entra ID 租户重复上述操作。

使用您当前将 Okta 配置为服务提供商,将 Entra ID 租户设置为身份提供商,则需要 Entra ID 发起身份验证。例如,当用户从 "我的应用程序" 门户启动企业应用程序时,SAML 令牌将发送到 Okta 并由 Okta 处理。您需要配置 Okta 路由规则,这样,当用户使用 Okta 登录门户或亚马逊云科技访问门户访问应用程序时,他们将被定向到相应的身份提供商。在 Okta 关于该主题的文档中阅读更多相关信息。要创建身份提供商路由规则,请执行以下操作:

  1. 登录 Okta 管理控制台,前往 "安全" > "身份提供商"
  2. 在 "路由规则" 选项卡上,选择 "添加路由规则"。

一定要将 "anyorganizionx.onmicrosoft.com" 更改为租户域的名称。

  • 输入 ID 租户 1
    • 规则名称:anyorganization1.onmicrosoft.com
    • AND 用户匹配:登录时的域名列表
    • anyorganization1.onmicrosoft.com
    • 然后使用这个身份提供商:Entra ID 租户 1
  • 输入 ID 租户 2
    • 规则名称:anyorganization2.onmicrosoft.com
    • AND 用户匹配:登录时的域名列表
    • anyorganization2.onmicrosoft.com
    • 然后使用这个身份提供商:Entra ID 租户 2
  1. 单击 "创建规则激活" 以立即应用配置。

第 4 步:配置 Okta 群组

在此示例中,我们假设 SCIM 或其他自动用户/群组同步不可用。如果没有自动在 Okta 中填充用户和群组数据,最终填充到亚马逊云科技的下游数据,则需要在 Okta 中手动创建群组。要创建群组,如图 4 所示,请执行以下步骤:

  1. 登录 Okta 管理控制台,进入目录 > 群组 > 添加群组
  2. 对于任务组:
    • 在 "名称" 字段中输入 Amazon IAM Identity Center Assignment
    • 在描述字段中输入所有亚马逊云科技用户
    • 单击 "保存"
  3. 对于第一个推送组:
    • 再次单击 "添加群组"
    • 在 "名称" 字段中输入 IT 运营
    • 在描述字段中输入IT 管理员对亚马逊云科技的访问权限
    • 单击 "保存"
  4. 对于第二个推送组:
    • 再次单击 "添加群组"
    • 在 "姓名" 字段中输入 亚马逊云科技所有员工
    • 在 "描述" 字段中输入亚马逊云科技只读访问权限
    • 单击 "保存"
创建的三个 Okta 群组的亮点:AWS All Staff、IT Operations 和 AWS IAM Identity Center Assignment。

图 4:创建 Okta 任务组、推送组和映射组。

重要:在 Okta 中,群组不能既是任务群组又是推送组,这就是我们为此目的创建单独群组的原因。任务组控制 Okta 应用程序的访问权限,而推送组则决定 SCIM 将向 Amazon IAM Identity Center 配置哪些群组。如图 5 所示,创建应用程序任务:

  1. 登录 Okta 管理控制台
  2. 选择应用程序 > 应用程序
  3. 选择您的 Amazon IAM Identity Center 应用程序并查看 "任务" 选项卡
  4. 选择 "分配" 按钮,然后从下拉选项中选择 "分配到群组"。
  5. 选择您的 Amazon IAM Identity Center 任务组旁边的分配
  6. 选择 "完成"。
重点介绍为 Okta 应用程序创建小组任务所需的步骤。

图 5 — 将 Amazon IAM IAM Identity Center 分配组分配给 Okta 应用程序。

如图 6 所示,将您的群组分配给推送群组:

  1. 在 Okta 管理控制台中,选择应用程序 > 应用程序
  2. 选择您的 Amazon IAM Identity Center 应用程序并查看 "推送组" 选项卡
  3. 选择 "推送群组" 按钮,然后从下拉选项中选择 "按名称查找群组"。
  4. 在名称中输入 IT 运营
  5. 选择 "保存并添加另一个" 按钮。
  6. 在姓名中输入 亚马逊云科技所有员工
  7. 选择 "保" 按钮。
重点介绍创建推送群组任务以启用 SCIM 配置到 AWS IAM Identity Center 所需的步骤。

图 6 — 将群组分配给将同步到 Amazon IAM Identity Center 的推送组。

第 5 步:在 Amazon IAM Identity Center 中创建权限集

  1. 打开 IAM 身份中心控制台。
  2. 在 "多账户权限" 下,选择 "权限集"。
  3. 选择 "创建权限集"
  4. "选择权限集类型" 页面上,在 "权限集类型" 下,选择 "自定义权限集",然后选择 "下一步"。
  5. 指定策略和权限边界页面上,展开 亚马逊云科技托管策略
  6. 搜索并选择 "管理员访问策略",然后选择 "下一步"。
  7. 在 "指定权限集详细信息" 页面上,为权限集名称输入 IT-Operations,然后选择下一步
  8. 在 "查看并创建" 页面上,查看选项,然后选择 "创建"。

步骤 6:在您的亚马逊云科技组织中分配群组访问权限

  1. 在导航窗格中的多账户权限下,选择 亚马逊云科技账户
  2. 亚马逊云科技账户页面上,选中您要分配访问权限的一个或多个亚马逊云科技账户旁边的复选框。
  3. 选择 "分配用户或群组"。
  4. 群组选项卡上,选择映射到 IT 运营组的 Entra ID 群组 ID 名称,然后选择下一步
  5. 在 "将权限集分配给 "亚马逊云科技-账户名称" 页面上,选择 IT 运营权限集。
  6. 检查是否选择了正确的权限集,然后选择 "下一步"。
  7. 在 "查看并提交" 页面上,确认选择了正确的组和权限集,然后选择提交

亚马逊云科技全体员工组重复步骤 5 和步骤 6 中的操作。对于 亚马逊云科技所有员工,使用预定义的权限集并选择 "仅查看权限"。

第 7 步:为用户和群组配置即时配置

当 Entra ID 用户进行身份验证时,在 Okta 中启用自动用户和群组配置,如图 7 所示:

  1. 登录 Okta 管理控制台,前往 "安全" > "身份提供商"
  2. 选择您的第一个 Entra ID 租户旁边的操作,然后选择配置身份提供商选项。
  3. 选择 "编辑" 选项并配置 JIT 设置:
    • 查看 JIT 设置部分中的所有可用选项
    • 从 "群组任务" 下拉列表中选择 "群组完全同步"
    • 为 SAML 属性名称输入以下内容 http://schemas.microsoft.com/ws/2008/06/identity/claims/groups
  4. 输入与第一个 Entra ID 租户关联的群组的名称。在 "组过滤器" 字段中。群组筛选器将 IDP SAML 断言限制为修改您允许的特定群组。
  5. 选择 "更新身份提供商"。
Okta 中 JIT 功能的配置设置。

图 7 — 配置 Just-in-Time 群组用户和群组设置。

注意:对第二个 Entra ID 租户重复此过程,为所有身份源启用 JIT 配置。

测试配置

要验证您的设置是否正常运行,请测试来自两个 Entra ID 租户的用户的访问权限:

  1. 测试 Rich Roe(租户 1):
    • 登录我的应用程序门户,如图 8 所示,然后选择 Okta 应用程序
突出显示了 Okta 企业应用程序的 Microsoft 我的应用程序门户。

图 8 — 从 Microsoft 我的应用程序门户中选择 Okta 应用程序。

  • Okta My Apps 门户中选择 Amazon IAM Identity Center 应用程序,如图 9 所示。
重点介绍了 AWS IAM Identity Center 应用程序的 Okta My Apps 门户。

图 9:从 Okta My Apps 门户网站选择 Amazon IAM Identity Center 应用程序

  • 验证 IT 运营亚马逊云科技所有员工权限集均出现。
  • 如图 10 所示,选择任一权限集以确认相应的访问权限
突出显示了两个权限集的 AWS 访问门户:AWS-全员和IT运营。

图 10 — 使用亚马逊云科技访问门户验证权限

  1. 在单独的浏览器/私有窗口中测试 John Stiles(租户 2):
    • 登录我的应用程序门户并选择 Okta 应用程序
    • 验证 亚马逊云科技所有员工权限集是否出现
    • 选择它以确认只读访问权限

注意:如果权限集没有立即出现,请稍等片刻等待同步完成,然后重试。

故障排除

清理

通过这篇文章配置亚马逊云科技服务将预置资源,这会产生成本。优秀做法是删除不再使用的配置和资源,这样就不会产生意外费用。Amazon IAM Identity Center 免费提供。

为避免对您在 Okta 和 Entra ID 中创建的资源进行持续的收费和维护,请执行以下步骤:

  1. 从两个 Entra ID 租户中删除您创建的企业应用程序。
  2. 从两个 Entra ID 租户中删除您创建的测试用户和群组。
  3. 删除 Amazon IAM Identity Center 的 Okta 应用程序集成。
  4. 删除两个 Okta 身份提供商。
  5. 删除同步到 Okta 目录的用户和群组。

结论

在这篇博客中,我们展示了如何使用 Okta 作为身份中心,将多个 SAML 身份提供商与 Amazon IAM Identity Center 连接起来。通过实施这种模式,您将应对管理多个身份提供商的挑战,确保安全、一致地访问您的亚马逊云科技环境,让您的组织能够专注于创新而不是复杂的身份集成。

其他资源

  • Amazon IAM Identity Center 文档
  • Okta 集成网络
  • 微软 Entra ID 文档
  • SAML 2.0 技术概述
  • Okta 计划和定价


与任何其他云提供商相比,亚马逊云科技的服务和这些服务中的功能要多得多,这使得将现有应用程序迁移到云端并构建几乎任何你能想象的东西都能更快、更轻松、更具成本效益。为你的 Microsoft 应用程序提供所需的基础架构,以推动你想要的业务成果。访问我们的亚马逊云科技上的 .NET 和亚马逊云科技数据库博客,获取有关微软工作负载的更多指导和选项。联系我们,立即开始您的迁移和现代化之旅。



罗德尼·安德科夫勒

Rodney Underkoffler

Rodney 是亚马逊网络服务的高级解决方案架构师,专注于指导企业客户的云之旅。他具有基础架构、安全和 IT 业务实践方面的背景。他对技术充满热情,喜欢构建和探索新的解决方案和方法。

艾丹·基恩

Aidan Keane

Aidan 是亚马逊网络服务的高级专业解决方案架构师,专注于微软工作负载。他与企业客户合作,优化他们在亚马逊云科技上的微软环境并加快他们的云之旅。工作之余,他是一名体育爱好者,喜欢打高尔夫球、骑自行车和观看利物浦足球俱乐部,同时还享受家庭时光以及前往爱尔兰和南美旅行。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。