资讯中心

Our News
您的位置: 首页 > 资讯中心 > 将 Okta 中的用户和组同步到 Amazon QuickSight 商业智能博客

将 Okta 中的用户和组同步到 Amazon QuickSight 商业智能博客

发布时间:2026-01-27 浏览量:32

将 Okta 用户与组同步到 Amazon QuickSight

by Srikanth Baheti Ashok Dasineni 和 Raji Sivasubramaniam 于 2024 年 3 月 28 日发布在 Amazon QuickSight 商业智能 中级 (200) 永久链接 评论 分享

关键要点

新功能:自 2023 年 8 月起,Amazon QuickSight 支持与 AWS IAM 身份中心集成,允许通过 Okta 等外部身份提供商登录。解决方案概述:通过 AWS Lambda、Step Functions 和 EventBridge 自动同步 Okta 用户和组信息。最佳实践:为确保高效同步,建议参考当前的 API Token 设置及身份提供者的配置。

注意:自 2023 年 8 月起,Amazon QuickSight 现已成为支持 AWS IAM 身份中心的应用程序。此功能允许订阅 QuickSight 的管理员使用 IAM 身份中心,通过 Okta 和其他外部身份提供商启用用户登录。有关更多信息,请参见 通过 Amazon QuickSight 和 IAM 身份中心简化商业智能身份管理AWS 博客文章以及 使用 IAM 身份中心配置 Amazon QuickSight 帐户 的文档。我们建议您使用此新集成。本文仅作为现有帐户配置的参考。

Amazon QuickSight 是一款基于云的无服务器嵌入式商业智能 (BI) 服务,使组织内每个人都能轻松获得洞察。作为一项完全托管的服务,QuickSight 允许您创建并发布互动仪表板,用户可以在任何设备上访问,并嵌入到您的应用程序、门户和网站中。

QuickSight 支持通过安全声明标记语言 20 (SAML 20) 进行身份联合,适用于标准版和企业版。通过联合,您可以使用企业身份提供商 (IdP) 管理用户,并在登录时将其传递到 QuickSight。IdP 包括 Microsoft Active Directory 联合服务、Ping One 联合服务器、Okta 等。

截至目前,QuickSight 支持联合单点登录 (SSO) 和 Active Directory (AD) 集成,作为企业级身份验证机制。后者允许无缝同步 native AD 组进行角色分配和内容授权。然而,在使用 SAML 进行联合 SSO 时,您可以自动配置具有适当角色的用户。目前,这种集成对于 IdP 和 QuickSight 之间的组和用户或组成员资格的自动同步存在滞后。这对于授权和授予适当的访问权限以支持自动配置用户至关重要。

主要面临的三个挑战是:

从第三方 IdP 自动同步用户和组自动将用户分配到组当用户从 IdP 中移除时,自动从 QuickSight 中去除用户和组

本文提供了克服这些挑战的步骤和代码示例,以可扩展的方式进行操作。我们以 Okta 为例进行演示,但您也可以使用其他 IdP。这是一种经过验证的解决方案,已被多个 QuickSight 客户使用和实施。

解决方案概述

这个解决方案结合 QuickSight 和下列 AWS 服务,自动同步来自 IdP 的用户、组及其成员资格。在这个例子中,IdP 充当单一可信数据源。

AWS Lambda 是一种无服务器的事件驱动计算服务,可以让您在不预配或管理服务器的情况下运行几乎任何类型的应用程序或后台服务。您可以通过超过 200 种 AWS 服务和软件即服务 (SaaS) 应用程序触发 Lambda,只需为您使用的部分付费。AWS Step Functions 是一种可视化工作流服务,帮助开发人员使用 AWS 服务构建分布式应用程序、自动化流程、编排微服务,并创建数据和机器学习 (ML) 流水线。Amazon EventBridge 是一种无服务器服务,通过事件连接应用程序组件,使构建可扩展的事件驱动应用程序变得轻而易举。您可以创建规则以匹配事件,并将其路由至一个或多个目标函数或流。AWS 身份与访问管理 (IAM) 帮助您安全控制用户对 AWS 资源的访问。您可以使用 IAM 控制谁可以使用 AWS 资源身份验证、他们可以使用的资源,以及如何使用这些资源授权。有关更多信息,请参见 IAM 用户指南。

以下图示展示了从第三方 IdP 执行用户和组同步的工作流。

您可以通过按需或计划模式实施解决方案。在这两种情况下,该解决方案的第一步是触发 Step Functions 工作流OktaQuickSightSync,该工作流协调一系列 Lambda 函数的运行:

QuickSightOktaGroupSync 在 IdP 和 QuickSight 之间同步组QuickSightOktaUserSync 创建用户及其组成员资格QuickSightOktaUserDeprovisioning 从 QuickSight 中去除用户,并将孤立资源转移给专用的 QuickSight 管理用户

在接下来的部分中,我们将解释使用 AWS CloudFormation 配置解决方案资源的步骤。首先,您需要检索 CloudFormation 堆栈所需的参数:

将 Okta 中的用户和组同步到 Amazon QuickSight 商业智能博客OKTAAPITokenOKTADomainOKTAQuickSighAPPIdQuickSightAdminUserNameQuickSightAdminIAMRoleQuickSightAuthorIAMRoleQuickSightReaderIAMRole

前置条件

您应具备以下前置条件:

一个 QuickSight 帐户订阅一个具备 与 QuickSight 联合功能的 Okta 订阅拥有 AWS 帐户的管理员访问权限

从 IdP 检索 OKTAAPIToken 以进行 Lambda 的 API 调用

我们首先来创建一个 API 令牌,以在 CloudFormation 堆栈中作为参数使用。请完成以下步骤:

使用管理员帐户登录到您的 Okta 域。

在导航窗格中,在 安全性 下选择 API。

在 令牌 标签上,选择 创建令牌。

输入令牌名称例如:QuickSight 用户和组同步的 Okta API 令牌,然后选择 创建令牌。

Okta 将生成令牌值。

复制生成的令牌值并保存,以备后用。选择 好,明白了 关闭模态窗口。Okta 报告生成的令牌值,如下所示。

有关令牌的详情可在 API 页面中找到。详细信息包括令牌创建的时间戳、过期时间和最后使用时间。

API 令牌的有效性因 Okta 帐户配置而异。如果 Lambda 代码因令牌过期而失败,请生成一个新令牌并更新 Lambda 配置。

检索 IdP 的 OKTADomain

要 定位您的 Okta 域名,请完成以下步骤:

使用管理员帐户登录到 Okta 组织。在仪表板的右上角查找全局页眉中的 Okta 域。复制完整的域 URL 以供后续步骤使用。

啊哈加速器官网

检索 OKTAQuickSighAPPId 以获取在 Okta 中配置的 QuickSight 应用

要 获取您的应用程序 ID,请完成以下步骤:

使用管理员帐户登录到 Okta 组织。在导航窗格中,在 应用程序 下选择 应用程序。选择 QuickSight 应用程序。复制在浏览器 URL 中显示的应用程序 ID,并将其保留以供后用。

检索 QuickSightAdminUserName 以将资源转移到管理员用户

当去除管理员或作者角色的用户时,我们使用此管理员用户来转移资产所有权。请完成以下步骤:

使用管理员访问权限登录到您的 QuickSight 帐户。

选择用户资料图标,然后选择 管理 QuickSight。

复制管理员用户名在本文中,我们使用 OktaSSOUser,并将其保留以供后用。

创建 QuickSight IAM 角色

按照 通过 Okta 联合 Amazon QuickSight 访问 博客文章中的步骤设置 IAM 角色。

管理员 QuickSightOktaAdminRole作者 QuickSightOktaAuthorRole阅读者 QuickSightOktaReaderRole

在此解决方案中,用户注册的 AWS Lambda 代码使用上述 IAM 角色。确保 IAM 角色的命名精确无误。部署后,您可以根据需要更新 IAM 角色。

现在您已经拥有 CloudFormation 模板所需的参数。

使用 AWS CloudFormation 创建资源

选择 启动堆栈 来配置您的资源:

在 创建堆栈 页面中选择 下一步。

输入上一步中捕获的参数并选择 下一步。

确认能力并选择 提交。

CloudFormation 成功部署后,所有资源将在其各自的帐户中部署。

启用 EventBridge 规则

作为已部署资源的一部分,创建了一个 EventBridge 规则。默认情况下,此规则处于禁用状态,以避免脚本意外运行。该规则设置为每天 1200 UTC 触发;您可以根据需要进行修改。

完成以下步骤以启用规则:

在 EventBridge 控制台中,导航到 总线,选择 规则。

在规则列表中,选择 CloudFormation 模板创建的规则OktaQSSyncEventsRule。

若要将现有规则配置从 1200 UTC 编辑为您自己的计划,请在 事件计划 部分选择 编辑。

选择 启用 以启用规则。

启用规则后,它将触发 Step Functions 工作流的运行,并开始从 Okta 到 QuickSight 的用户和组的自动同步。

注意事项

Okta 域名、Okta 应用程序 ID、API 密钥、以及分配给 QuickSight 应用的专用 QuickSight 管理员、用户和组是同步到 QuickSight 的唯一组。并非所有 Okta 中的用户和组都会被同步。

在 QuickSight 中去除或删除用户时,孤立资源的所有权将转移给 QuickSightOktaUserDeprovisioning Lambda 函数环境变量中配置的专用管理员用户。

清理

要进行清理,请删除 CloudFormation 堆栈,以去除其创建的所有资源。这将删除三个 Lambda 函数及其相关角色和策略、Step Functions 流程及其相关角色,以及 EventBridge 规则及其相关角色。

结论

本文提供了在 Okta 和 QuickSight 之间设置自动用户和组同步的说明。此解决方案消除了手动管理 QuickSight 中的组及其成员资格的需求,并消除了当用户从 Okta 中移除时在 QuickSight 中去除用户的必要性。

如果您有任何问题或反馈,请留言。

要获取更多讨论和答疑的帮助,请访问 QuickSight 社区。

关于作者

Ashok Dasineni 是 Amazon QuickSight 的解决方案架构师

QQ

在线咨询真诚为您提供专业解答服务

热线

13594780373
7*24小时服务热线

微信

二维码 扫一扫微信交流