使用 AWS IAM 身份中心将 Tableau 和 Okta 与 Amazon Redshift
使用 AWS IAM 身份中心将 Tableau 与 Okta 和 Amazon Redshift 集成
关键要点
本文介绍如何通过 AWS IAM 身份中心将 Tableau 与 Amazon Redshift 集成,实现单点登录功能。这一整合有助于提升数据安全性,简化数据访问流程,使得用户可以更高效地在 Tableau 中分析数据。
本文由 Debu Panda、Sid Wray、Jade Koskela、Adiascar Cisneros、Harshida Patel、Ravi Bhattiprolu、Jade Koskela 和 Maneesh Sharma 共同撰写于 2024 年 6 月 3 日。
Amazon Redshift 是一个快速、可扩展的云数据仓库,旨在支持各种工作负载。通过将 Amazon Redshift 用作数据仓库,可以使用复杂查询和高级查询优化快速获取结果,供 Tableau 使用。为了实现使用单点登录功能将 Amazon Redshift 与 Tableau 集成,我们推出了 AWS IAM 身份中心集成,以便无缝实施身份验证和授权。
IAM 身份中心能够集中管理对 AWS 账户和应用程序的单点登录访问。Redshift 现在与 IAM 身份中心 集成,并支持 受信任身份传播,使得能够与像 Microsoft Entra IDAzure AD、Okta、Ping 和 OneLogin 等 第三方身份提供者 (IdP) 集成。这一整合将 Amazon Redshift 视为一个由 IAM 身份中心管理的应用,使得可以在数据仓库中应用基于角色的访问控制,以增强安全性。
AWS 和 Tableau 联手实现了对 Amazon Redshift 的单点登录支持。现有版本的 Tableau 支持与 Amazon Redshift 连接器的单点登录功能,以简化身份验证和授权。Tableau Desktop 20241 和 Tableau Server 202334 版本支持与 IAM 身份中心的受信任身份传播。这允许用户在 Tableau 中用外部 IdP 凭据无缝访问 Amazon Redshift 数据,而无需在 Tableau 中指定 AWS 身份和访问管理 (IAM) 角色。此单点登录集成适用于 Tableau Desktop、Tableau Server 和 Tableau Prep。
在本文中,我们将详述使用 IAM 身份中心和 Okta 作为 IdP 设置 Amazon Redshift 的单点登录的综合指南。通过遵循本指南,您将学会如何在 Tableau Desktop 中直接启用无缝单点登录,访问 Amazon Redshift 数据源,简化分析工作流程并提升安全性。
解决方案概述
以下图示说明了 Tableau 与 Amazon Redshift、IAM 身份中心和 Okta 集成的架构。
图 1 使用 IAM 身份中心和 Okta 的 Tableau 与 Amazon Redshift 集成的解决方案概述
该解决方案的步骤如下:
用户配置 Tableau,以使用 IAM 身份中心身份验证访问 Redshift在用户登录尝试时,Tableau 启动基于浏览器的 OAuth 流,并重定向用户到 Okta 登录页面以输入登录凭据认证成功后,Okta 向 Tableau 颁发身份验证令牌ID 和访问令牌Redshift 驱动程序然后向 Redshift 启用的 IAM 身份中心应用发出调用,并转发访问令牌Redshift 将令牌传递给身份中心并请求访问令牌身份中心使用 OIDC 发现连接对受信任的令牌颁发者进行验证/验证令牌,并返回相同用户的身份中心生成的访问令牌。在图 1 中,受信任令牌颁发者TTI是身份中心信任的 Okta 服务器,为 Tableau 这类第三方应用提供令牌以调用 AWS 服务Redshift 然后使用令牌从 IAM 身份中心获取用户和组成员信息Tableau 用户将能够与 Amazon Redshift 连接,基于从 IAM 身份中心返回的用户和组成员资格访问数据前提条件
在开始实施解决方案之前,请确保您已完成以下准备工作:
准备工作详细描述IAM 身份中心和 Amazon Redshift 集成按照 整合身份提供者 (IdP) 与 Amazon Redshift 查询编辑器 V2 的步骤进行设置,使用 AWS IAM 身份中心实现无缝单点登录下载并安装最新的 ODBC 2X 驱动程序ODBC 2X 驱动安装配置安装 Tableau Desktop 20241 或更高版本Tableau Desktop 支持发布安装 Tableau Server 202334 或更高版本安装请参考 安装和配置 Tableau Server一个有效的 Okta 账户您需要管理角色以在 Okta 上设置此应用。如果您是 Okta 新用户,可以注册一个 免费试用 或 开发者账户操作步骤
在本操作指南中,您将按以下步骤构建解决方案:
设置 Okta OIDC 应用设置 Okta 授权服务器设置 Okta 声明设置 Okta 访问策略和规则在 AWS IAM 身份中心设置信任令牌颁发者设置客户端连接和受信任的令牌颁发者设置 Tableau OAuth 配置文件以用于 Okta为 Tableau Desktop 安装 Tableau OAuth 配置文件为 Tableau Server 或 Tableau Cloud 设置 Tableau OAuth 配置文件从 Tableau Desktop 联邦访问 Amazon Redshift从 Tableau Server 联邦访问 Amazon Redshift设置 Okta OIDC 应用
要在 Okta 中创建 OIDC Web 应用,可以参考此 视频,或按照以下步骤在 Okta 管理控制台中创建 Web 应用:
注意: Tableau Desktop 重定向 URL 应始终使用 localhost。以下示例中,Tableau Server 主机名也使用 localhost 以便于测试。如果您选择在早期测试中使用 localhost,还需要使用以下 tsm 命令配置网关以接受 localhost:
bashtsm configuration set k gatewaypublichost v localhost
在生产环境或 Tableau Cloud 中,您应使用用户在网页上访问 Tableau 时的完整主机名,并使用 https。如果您已经配置了 https,您可以跳过 localhost 配置,从一开始就使用完整主机名。
以具有管理权限的用户身份登录到您的 Okta 组织。在管理控制台的导航窗格中,选择 Applications应用下的 Applications应用。选择 Create App Integration创建应用集成。选择 OIDC OpenID Connect 作为登录方法,Web Application 作为应用类型。选择 Next下一步。在 General Settings常规设置中:App integration name应用集成名称:输入您的应用集成名称,例如 TableauRedshiftApp。Grant type授权类型:选择 Authorization Code 和 Refresh Token。Signin redirect URIs登录重定向 URI:登录重定向 URI 是 Okta 用于发送身份验证响应和 ID 令牌的地址。 URI 必须是绝对 URI,选择 Add URL 并添加以下 URI:http//localhost55556/Callbackhttp//localhost55557/Callbackhttp//localhost55558/Callbackhttp//localhost/auth/addoauthtokenSignout redirect URIs:保留默认值 http//localhost8080。跳过 Trusted Origins 部分,在 Assignments分配中选择 Skip group assignment for now暂时跳过组分配。选择 Save保存。在 General Settings常规设置部分,选择 Edit编辑,并在 Proof Key for Code Exchange (PKCE) 下选择 Require PKCE as additional verification要求 PKCE 作为额外验证。这个选项表示是否需要 PKCE 代码挑战来验证客户端请求。选择 Save保存。选择 Assignments分配选项卡,然后选择 Assign to Groups分配给组。在此示例中,我们分配 awsssofinance 和 awsssosales。选择 Done完成。如需有关创建 OIDC 应用的更多信息,请参见 创建 OIDC 应用集成。
设置 Okta 授权服务器
Okta 允许您创建多个自定义授权服务器,以保护您自己的资源服务器。在每个授权服务器中,您可以定义自己的 OAuth 20 范围、声明和访问策略。如果您有 Okta 开发者版本,系统会为您默认创建一个自定义授权服务器。
在本博文中,我们使用默认的自定义授权服务器。如果您的应用有更高要求例如需要更多的范围、定制规则,可以参考此 指南。
设置 Okta 声明
令牌包含有关主体的声明例如名称、角色或电子邮件地址。在此示例中,我们使用默认的自定义声明 sub。请遵循此 指南创建声明。
设置 Okta 访问策略和规则
访问策略是规则的容器。每个 访问策略 适用于特定的 OpenID Connect 应用。政策中包含的规则定义不同的访问和刷新的令牌的生命周期。在此示例中,您将创建一个适用于所有客户端的简单策略,如图 7 所示。请遵循此 指南创建访问政策和规则。
小熊加速器app访问政策的规则定义了给定的授权类型、用户和范围组合的令牌生命周期。它们按优先顺序进行评估,并在找到匹配的规则后,不再评估其他规则。如果没有找到匹配的规则,则授权请求将失败。此示例使用的角色如图 8 所示。请遵循此 指南为您的用例创建规则。
在 AWS IAM 身份中心设置受信任令牌颁发者
到此,您需要切换到设置 AWS 配置,首先添加一个受信任令牌颁发者TTI,使得可以交换令牌。这包括将 IAM 身份中心连接到外部 OAuth 授权服务器的 Open ID Connect (OIDC) 发现 URL,并定义外部 OAuth 授权服务器中用户与身份中心中相应用户之间的基于属性的映射。在此步骤中,您将在集中管理账户中创建一个 TTI。创建 TTI 的步骤如下:
打开 AWS 管理控制台,导航到 IAM 身份中心,然后转到 Settings设置页面。选择 Authentication身份验证选项卡,在 Trusted token issuers受信任的令牌颁发者下,选择 Create trusted token issuer创建受信任的令牌颁发者。在 Set up an external IdP to issue trusted tokens 页面上,在 Trusted token issuer details受信任令牌颁发者详情下,执行以下操作:对于 Issuer URL,输入外部 IdP 的 OIDC 发现 URL,该 URL 将颁发受信任身份传播的令牌。外部 IdP 的管理员可以提供此 URL例如 https//prod1234567oktacom/oauth2/default。要从 Okta 获取颁发者 URL,请以管理员身份登录 Okta,导航到 Security安全性,然后选择 API,在 Authorization Servers 选项卡下选择 default,并复制 Issuer URL。

在此示例中,使用 Subject (sub) 作为 Identity provider attribute,以映射 Email 到 IAM identity Center attribute。图 10 显示了 TTI 的设置。
设置客户端连接和受信任的令牌颁发者
在此步骤中,必须配置用于交换外部生成的令牌的 Amazon Redshift 应用程序,以使用您在上一步中