针对 OpenID Connect 配置 Tableau Server
本主题描述如何将 Tableau Server 配置为使用 OpenID Connect (OIDC) 进行单点登录 (SSO)。这是由多个步骤组成的过程中的一步。以下主题提供有关配置以及将 OIDC 与 Tableau Server.一起使用的信息。
针对 OpenID Connect 配置 Tableau Server(此部分)
注意:
- 在执行此处介绍的步骤之前,您必须配置 OpenID 身份提供程序 (IdP),如 针对 OpenID Connect 配置身份提供程序 中所述。
- 本主题中描述的过程可能适用于使用身份池配置的 OIDC 身份验证。但是,请先按照使用身份池预置和验证用户进行操作,并在必要时返回参考本主题。
- Tableau REST API 和 tabcmd 不支持 OIDC 单点登录 (SSO)。若要使用 tabcmd 或 REST API(链接在新窗口中打开),用户必须使用 TableauID 帐户登录到 Tableau Server。
在浏览器中打开 TSM:
https://<tsm-computer-name>:8850。有关详细信息,请参见登录到 Tableau 服务管理器 Web UI。
在“配置”选项卡上,选择“用户身份和访问”>“身份验证方法”。
在“身份验证方法”下的下拉菜单中选择“OpenID Connect”。
在“OpenID Connect”下,选择“为服务器启用 OpenID 身份验证”。
输入组织的 OpenID 配置信息:

注意:
对于步骤 3:如果提供程序依赖于本地计算机上托管的配置文件(而不是在公共 URL 处托管的文件),您可以使用 tsm authentication openid <commands> 指定文件。使用
--metadata-file <file_path>选项指定本地 IdP 配置文件。对于步骤 4:从 Tableau Server 2025.3 开始,您可以启用单点注销 (SLO) 并指定注销后要将用户重定向到的 URL。
对于步骤 5:从 Tableau Server 2026.2 开始,您可以在 OIDC 身份验证工作流中启用用户属性及其功能。有关详细信息,请参见OIDC 声明中的用户属性。
输入配置信息后,单击“保存待处理的更改”。
单击页面顶部的“待定更改”:

单击“应用更改并重新启动”。
此部分中的过程描述如何使用 TSM 命令行接口来配置 OpenID Connect。您也可以使用配置文件来进行 OpenID Connect 的初始配置。请参见openIDSettings 实体。
使用tsm authentication openid <commands> 的
configure命令设置以下必需选项:--client-id <id>:指定 IdP 已分配给您的应用程序的提供程序客户端 ID。例如,“xxxkjwdlnaoiloadjkwha"。
--client-secret <secret>:指定提供程序客户端密文。这是 Tableau 用于验证来自 IdP 的响应的真实性的令牌。此值是密文,应妥善保管。例如,“xxxhfkjaw72123="。
--config-url <url>或--metadata-file <file_path>:指定提供程序配置 json 文件的位置。如果提供程序承载公共 JSON 发现文件,则使用--config-url。否则,请改为指定本地计算机上的一个路径,并为--metadata-file指定文件名。
--return-url <url>:服务器的 URL。这通常是您的服务器的公共名称,例如"http://example.tableau.com"。
例如,运行以下命令:
tsm authentication openid configure --client-id “xxxkjwdlnaoiloadjkwha" --client-secret “xxxhfkjaw72123=" --config-url "https://example.com/openid-configuration" --return-url "http://tableau.example.com"注意:
还有一些您可使用 openIDSettings 实体 为 Open ID Connect 设置的可选配置。或者,您可以使用 tsm authentication openid <commands>。此外,如果需要配置 IdP 声明映射,请参见openid map-claims 选项。
从 Tableau Server 2025.3 开始,您可以使用 tsm authentication openid <commands> 选择性地启用单点注销 (SLO)。
键入以下命令以启用 Open ID Connect:
tsm authentication openid enable运行
tsm pending-changes apply以应用更改。如果待定更改需要重新启动服务器,
pending-changes apply命令将显示一个提示,告知您将进行重新启动。即使服务器已停止,此提示也会显示,但在这种情况下不会重新启动。您可以使用--ignore-prompt选项隐藏提示,但这样做不会改变重新启动行为。如果更改不需要重新启动,则会在不提示的情况下应用更改。有关详细信息,请参见tsm pending-changes apply。
使用用户属性自定义和控制数据访问
用户属性是组织定义的用户元数据。在典型的基于属性的访问控制 (ABAC) 授权模型中,用户属性可用于确定访问权限。用户属性可以是用户配置文件的任何方面,包括工作角色、部门成员身份、管理级别等。它们还可能与运行时用户上下文相关联,例如用户的登录位置或他们的语言首选项。
通过在工作流中包含用户属性,您可以通过数据访问和个性化来控制和自定义用户体验。
- 数据访问:用户属性可用于实施数据安全策略。这可以确保用户只能看到他们有权查看的信息。
- 个性化:通过传递位置和角色等用户属性,可以自定义内容以仅显示与访问内容的用户相关的信息,从而使他们能够更轻松地找到所需的信息。
传递用户属性的步骤摘要
在工作流中启用用户属性的过程总结为以下步骤:
- 启用用户属性设置
- 在断言中包括用户属性
- 确保内容作者包括用户属性函数和相关筛选器
- 查看内容
步骤 1:启用用户属性设置
出于安全目的,仅当
在浏览器中打开 TSM:
https://<tsm-computer-name>:8850。有关详细信息,请参见登录到 Tableau 服务管理器 Web UI。
在“配置”选项卡上,选择“用户身份和访问”>“身份验证方法”。
在“身份验证方法”下的下拉菜单中,选择“SAML”。
在“步骤 8”下,选中“在 SAML 身份验证期间启用用户属性捕获”复选框。
完成后,执行以下操作:
单击“保存未完成的更改”。
单击页面顶部的“待定更改”按钮。
单击“应用更改并重新启动”。
步骤 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 会看到特定于她所在区域的数据。

工作簿中未显示其区域的经理将看到空白工作簿。
已知问题和限制
使用用户属性函数时应考虑一些已知问题和限制。
