针对 OpenID Connect 配置 Tableau Cloud 或 TCM

本主题描述如何将 Tableau Cloud 或 Tableau Cloud Manager (TCM) 配置为使用 OpenID Connect (OIDC) 进行单点登录 (SSO)。这是由多个步骤组成的过程中的一步。以下主题提供有关配置以及将 OIDC 与 Tableau Cloud 或 TCM.一起使用的信息。

  1. OpenID Connect 概述

  2. 针对 OpenID Connect 配置身份提供程序

  3. 针对 OpenID Connect 配置 Tableau Cloud 或 TCM(此部分)

注意:

要求

参数

  • 客户端 ID:此值由 IdP 颁发,并指定已注册 Tableau Cloud 或 TCM 的标识符。这使得 IdP 能够知道身份验证请求来自哪里。

  • 客户端密文:这是 Tableau Cloud 或 TCM 用于验证来自 IdP 的响应的真实性的令牌。此值应妥善保管。

  • 配置 URL:此值指定对用户进行身份验证后 IdP 重定向到的 URL。URL 必须包括主机和协议(例如,https://admin.okta.com/oauth2/default/.well-known/openid-configuration),但 Tableau 会提供 URL 端点。此 URL 指定包含 OpenID 提供程序元数据的提供程序配置发现文档的位置。

    注意:如果您的 IdP 未提供配置 URL,请使用以 .well-known/openid-configuration 结尾的 URL。对于 Tableau Cloud,请考虑使用 Tableau REST API 中的 OpenID Connect 身份验证方法(链接在新窗口中打开)配置 OIDC。

可选参数

注意:仅适用于 Tableau Cloud。

可以使用 Tableau REST API 中的 OpenID Connect 身份验证方法(链接在新窗口中打开)配置以下可选参数。

  • 提示:提示用户重新认证并同意。默认情况下,用户同意处于打开状态。

  • 自定义范围:用于查询 IdP 的自定义范围用户相关值。

  • 客户端身份验证:令牌端点身份验证方法。默认值为 'client_secret_basic'。支持值 'client_secret_post'。

  • 基本 ACR 值:用于身份验证的基本身份验证上下文参考类值的列表。

  • 自愿 ACR 值:用于身份验证的自愿身份验证上下文参考类值的列表。

声明

若要成功登录到 Tableau Cloud 或 TCM,必须在 OpenID Connect (OIDC) IdP 中预置给定用户,然后将其映射到 Tableau Cloud 或 TCM 上的用户帐户。OIDC 使用依赖于声明的方法与其他应用程序共享用户帐户属性。Tableau Cloud 或 TCM 依赖于 IdP 声明将 IdP 中的用户帐户映射到 Tableau Cloud 或 TCM 上托管的用户帐户。声明包括用户帐户属性,例如电子邮件、名字等。若要了解 Tableau Cloud 或 TCM 如何将 IdP 声明映射到用户帐户,请参见身份验证概述。

注意:声明区分大小写。

  • 用户名:默认情况下,Tableau 期望 IdP 传递用户名声明。根据您的 IdP,您可能需要将 Tableau Cloud 配置为使用其他 IdP 声明。注意:Tableau 中的用户名是不可变的,无法随时更新。

  • 姓名声明:您可以指定姓名或姓氏来检索用户的 DisplayName。

  • 电子邮件声明:(可选)从 2025 年 7 月开始,您可以指定不同于用户名的电子邮件地址。电子邮件地址声明仅用于通知目的,不用于登录。

启用 OIDC 单点登录

步骤 1:配置 OpenID Connect

对于 Tableau Cloud

  1. 以站点管理员身份登录到 Tableau Cloud 并选择“设置”>“身份验证”。

  2. 在“身份验证”选项卡上,单击“新配置”按钮,选择“OpenID Connect (OIDC)”,然后输入配置的名称。

  3. 按照以下步骤,通过执行以下操作来配置 Tableau Cloud 以进行 OIDC 身份验证:

    1. 在步骤 1 中,输入 IdP 提供的所需信息,包括客户端 ID、客户端密文和配置 URL。

    2. 在步骤 2 中,复制将粘贴到 IdP 门户中的 Tableau Cloud 重定向 URL,以在用户进行身份验证后重定向用户。

    3. 在步骤 3 中,输入声明以确保用户用户名和显示名称的正确映射。

    4. 在步骤 4 中,如果您的 IdP 支持,可以选择启用单点注销 (SLO)。

    5. 在步骤 5 中,可以选择用户在访问嵌入视图时进行身份验证的方式:在单独的弹出窗口中或使用内联 iFrame。

      注意:您可以在“身份验证”页面上的“嵌入视图的默认身份验证类型”部分(位于 OIDC 配置步骤下方)下选择嵌入视图的身份验证类型。

  4. 完成后,单击“保存更改”按钮。

注意:编辑 OIDC 配置时,客户端密文是隐藏的,需要重新输入才能保存任何更改。

对于 TCM

  1. 以云端管理员身份登录到 TCM,并选择“设置”>“身份验证”。

  2. 在“身份验证”选项卡上,选中“启用其他身份验证方法”复选框。

  3. 从下拉菜单中选择“OpenID Connect (OIDC)”,并单击“配置(必需)”下拉箭头。

  4. 按照相关步骤,通过执行以下操作来配置 TCM 以进行 OIDC 身份验证:

    1. 在步骤 1 中,输入 IdP 提供的所需信息,包括客户端 ID、客户端密文和配置 URL。

    2. 在步骤 2 中,复制将粘贴到 IdP 门户中的 TCM 重定向 URL,以在用户进行身份验证后重定向用户。

    3. 在步骤 3 中,输入声明以确保用户用户名和显示名称的正确映射。

    4. 在步骤 4 中,如果您的 IdP 支持,可以选择启用单点注销 (SLO)。

  5. 完成后,单击“保存更改”按钮。

注意:编辑 OIDC 配置时,客户端密文是隐藏的,需要重新输入才能保存任何更改。

步骤 2:测试配置

我们强烈建议您测试配置以避免任何锁定情况。测试配置有助于确保在将用户的身份验证类型更改为 OIDC 之前正确配置了 OIDC。为了成功测试配置,请确保至少有一个您可以登录的用户,该用户已在 IdP 中预置并添加到 Tableau Cloud 或 TCM 中,并配置了 OIDC 身份验证类型。

注意:如果您不确定声明是什么,请完成配置并测试配置。测试配置将生成一个新窗口,其中包含声明映射详细信息,包括用户名和显示名称声明。某些 IdP 可能会将电子邮件地址映射到 Tableau 用户名。

对于 Tableau Cloud

  1. 在选择 OpenID Connect (OIDC) 的“身份验证”选项卡上,在步骤 6 下单击“测试配置”按钮。将显示一个新窗口,其中包含有关配置的详细信息。

  2. 完成后,按照以下步骤将用户添加到您的站点,从而完成 OIDC 设置。

对于 TCM

  1. 在选择 OpenID Connect (OIDC) 的“身份验证”选项卡上,在步骤 5 下单击“测试配置”按钮。将显示一个新窗口,其中包含有关配置的详细信息。

  2. 完成后,按照以下步骤将用户添加到您的租户,从而完成 OIDC 设置。

步骤 3:将用户添加到启用 OpenID Connect 的 Tableau 站点 或 TCM

本部分中描述的步骤是在 Tableau Cloud 或 TCM 的“用户”页面上执行的。

  1. 完成上述步骤后,返回 Tableau Cloud 站点或 TCM。

  2. 从左侧窗格中,选择“用户”页面。

  3. 按照以下主题之一中描述的步骤进行操作:

疑难解答

使用以下部分在 Tableau Cloud 或 TCM 中排查 OpenID Connect (OIDC) 问题。

许多身份提供程序支持 OIDC 协议。OIDC 协议是一个开放和灵活的标准,因此,并非所有标准实现都是相同的。管理员在为 OIDC 配置 Tableau Cloud 或 TCM 时遇到的大多数问题是不同身份提供程序实现 OIDC 的结果。如果您在设置 OIDC 以及 Tableau 时遇到错误,我们建议您使用 IdP 来解决它们。

从命令行登录

对于 Tableau Cloud

即使 Tableau Cloud 配置为使用 OIDC,但如果您使用 tabcmd、Tableau REST API(链接在新窗口中打开) 或 Tableau 数据提取命令行实用工具(链接在新窗口中打开)(随 Tableau Desktop 提供)登录 Tableau Cloud,也不会使用 OIDC 身份验证。

对于 TCM

同样,即使 TCM 配置为使用 OIDC,登录 Tableau Cloud Manager REST API(链接在新窗口中打开) 时也不会使用 OIDC 身份验证。

登录失败

在某些情况下,登录 Tableau Cloud 或 TCM 可能会失败并显示以下消息:

Login failure: Identity Provider authentication unsuccessful for user <username_from_IdP>.Failed to find the user in Tableau Cloud.(登录失败:用户 <username_from_IdP> 的身份提供程序身份验证成功。未能在 Tableau Cloud 中找到用户。)

此错误通常意味着 Tableau 中存储的用户名与 IdP 提供的用户名之间存在不匹配。为了解决此问题,请确保用户名值匹配。例如,如果 Jane Smith 的用户名在 IdP 中存储为“jsmith@example.com”,那么它在 Tableau Cloud 或 TCM 中也必须存储为“jsmith@example.com”。

使用用户属性自定义和控制数据访问

用户属性是组织定义的用户元数据。在典型的基于属性的访问控制 (ABAC) 授权模型中,用户属性可用于确定访问权限。用户属性可以是用户配置文件的任何方面,包括工作角色、部门成员身份、管理级别等。它们还可能与运行时用户上下文相关联,例如用户的登录位置或他们的语言首选项。

通过在工作流中包含用户属性,您可以通过数据访问和个性化来控制和自定义用户体验。

  • 数据访问:用户属性可用于实施数据安全策略。这可以确保用户只能看到他们有权查看的信息。
  • 个性化:通过传递位置和角色等用户属性,可以自定义内容以仅显示与访问内容的用户相关的信息,从而使他们能够更轻松地找到所需的信息。

传递用户属性的步骤摘要

在工作流中启用用户属性的过程总结为以下步骤:

  1. 启用用户属性设置
  2. 在断言中包括用户属性
  3. 确保内容作者包括用户属性函数和相关筛选器
  4. 查看内容

步骤 1:启用用户属性设置

出于安全目的,仅当站点管理员启用用户属性设置时,才会在身份验证工作流中验证用户属性。

  1. 登录到 Tableau Cloud 并单击“设置”>“身份验证”。

  2. 在“控制身份验证工作流程中的用户访问”标题下,选中“在身份验证工作流中启用用户属性捕获”复选框。

有关站点设置的详细信息,请参见在身份验证工作流程中控制用户访问。

步骤 2:在断言中包括用户属性

请确保断言包含用户属性。

注意:SAML 响应中的属性受 4096 个字符限制的约束,但 scp 或 scope 属性除外。如果响应中的属性(包括用户属性)超过此限制,Tableau 将移除这些属性并改为传递 ExtraAttributesRemoved 属性。然后,内容作者可以使用 ExtraAttributesRemoved 属性创建一个计算,以确定在检测到该属性后如何向用户显示内容。

示例

假设您有一名员工 Fred Suzuki,他是南部区域的经理。您需要确保,当 Fred 审阅报告时,他只能看到南部区域的数据。在这种情况下,您可能会在 SAML 响应中包括 Region 用户属性,如下例所示。

<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
	<saml;Issuer">https://myidp.okta.com/saml</saml:Issuer">
   <saml;Subject">
	  <saml:NameId Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"fsuzuki@example.com</saml:NameID">
   <saml:AttributeStatement xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
  		<saml:Attribute Name="Region" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
  			<saml:AttributeValue">South</saml:AttributeValue">
    	</saml:Attribute">
   </saml:AttributeStatement">
</saml:Assertion">

步骤 3:确保内容作者包括属性函数

确保内容作者包括用户属性函数和相关筛选器,以控制哪些数据可以显示在其内容中。为了确保将用户属性断言传递给 Tableau,内容必须包含以下用户属性函数之一:

  • USERATTRIBUTE('attribute_name')
  • USERATTRIBUTEINCLUDES('attribute_name', 'expected_value')

内容作者使用的函数取决于用户属性是预期返回单个值还是多个值。有关这些函数及其示例的详细信息,请参见 Tableau 帮助中的用户函数(链接在新窗口中打开)。

注意:

  • 在 Tableau Desktop 或 Tableau Cloud 中进行制作时,无法预览包含这些函数的内容。函数将返回 NULL 或 FALSE 。为确保用户函数按预期工作,我们建议作者在提供内容后查看函数。
  • 为了确保内容按预期呈现,内容作者可以考虑包括一个使用 ExtraAttributesRemoved 执行以下操作的计算:1) 检查此属性,以及 2) 如果检查到该属性,则确定如何处理该内容,例如显示一条消息。Tableau 只会在 SAML XML 中的属性超过 4096 个字符时添加 ExtraAttributesRemoved 属性并移除所有其他属性( scp 或 scope 除外)。这是为了确保最佳性能并遵守存储限制。

示例

继续上面的步骤 2:在断言中包括用户属性中介绍的示例,若要将“Region”用户属性断言传递给工作簿,作者可以包括 USERATTRIBUTEINCLUDES。例如,USERATTRIBUTEINCLUDES('Region', [Region]),其中“Region”是用户属性,[Region] 是数据中的一列。使用新计算,作者可以创建一个包含经理和销售额数据的表。添加计算后,工作簿将按预期返回“False”值。

若要在嵌入式工作簿中仅显示与南部区域关联的数据,作者可以创建一个筛选器并对其进行自定义,以便在南部区域为“True”时显示值。应用筛选器后,工作簿将按预期变为空白,因为函数返回“False”值,并且筛选器自定义为仅显示“True”值。

步骤 4:查看内容

查看和验证内容。

示例

为了结束上述步骤 3:确保内容作者包括属性函数中的示例,您可以看到视图中的销售额数据是针对 Fred Suzuki 自定义的,因为他的用户上下文是南部区域。

工作簿中所代表区域的经理应会看到与其区域关联的值。例如,来自西部区域的 Sawdie Pawthorne 会看到特定于她所在区域的数据。

工作簿中未显示其区域的经理将看到空白工作簿。

已知问题和限制

使用用户属性函数时应考虑一些已知问题和限制。

限制

  • 不支持已发布数据源 (.pds) 中的用户属性函数。
  • 不支持 Tableau Bridge 工作流中的用户属性函数。
感谢您的反馈!您的反馈已成功提交。谢谢!