---
schema_version: "1"
id: 3fcb1463f4deab44729e0bfeb189785f34f6698e207643fd2e3706c5bace738e
title: 针对 OpenID Connect 配置 Tableau Server
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/server-linux/openid_auth_server_config.md
canonical_url: https://help.tableau.com/v0.0/server-linux/zh-cn/openid_auth_server_config.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 96279f9fcca8ecfa56bc11a404340660bfbb4667899012acbbaa86405cc1a275
description: Configure Tableau Cloud or TCM to use OpenID Connect for single sign-on.
---
[跳转到主要内容](#main-content)

# 针对 OpenID Connect 配置 Tableau Server

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

1. [OpenID Connect](https://help.tableau.com/v0.0/server-linux/zh-cn/openid_auth.htm) 概述
2. [针对 OpenID Connect 配置身份提供程序](https://help.tableau.com/v0.0/server-linux/zh-cn/openid_auth_idp_config.htm)
3. 针对 OpenID Connect 配置 Tableau Server（此部分）
4. [使用 OpenID Connect 登录到 Tableau Server](https://help.tableau.com/v0.0/server-linux/zh-cn/openid_auth_signing_in.htm)

**注意：**

- 在执行此处介绍的步骤之前，您必须配置 OpenID 身份提供程序 (IdP)，如 [针对 OpenID Connect 配置身份提供程序](https://help.tableau.com/v0.0/server-linux/zh-cn/openid_auth_idp_config.htm) 中所述。
- 本主题中描述的过程可能适用于使用身份池配置的 OIDC 身份验证。但是，请先按照[使用身份池预置和验证用户](https://help.tableau.com/v0.0/server-linux/zh-cn/identity_pools.htm)进行操作，并在必要时返回参考本主题。
- Tableau REST API 和 tabcmd 不支持 OIDC 单点登录 (SSO)。若要使用 [tabcmd](https://help.tableau.com/v0.0/server-linux/zh-cn/tabcmd.htm) 或 [REST API](https://help.tableau.com/current/api/rest_api/en-us/help.htm "在新选项卡中打开 REST API 帮助。")，用户必须使用 TableauID 帐户登录到 Tableau Server。

1. 在浏览器中打开 TSM：
    
    https://<tsm-computer-name>:8850。有关详细信息，请参见[登录到 Tableau 服务管理器 Web UI](https://help.tableau.com/v0.0/server-linux/zh-cn/sign_in_tsm.htm)。
2. 在“配置”选项卡上，选择“用户身份和访问”\>“身份验证方法”。
3. 在“身份验证方法”下的下拉菜单中选择“OpenID Connect”。
4. 在“OpenID Connect”下，选择“为服务器启用 OpenID 身份验证”。
5. 输入组织的 OpenID 配置信息：
    
    ![TSM 中的 OpenID Connect 配置的图像](/tableau/next/zh-cn/server-linux/zh-cn/Img/tsm_ui_oidc.png)
    
    **注意：**
    
    - 对于**步骤 3：**如果提供程序依赖于本地计算机上托管的配置文件（而不是在公共 URL 处托管的文件），您可以使用 [tsm authentication openid <commands>](https://help.tableau.com/v0.0/server-linux/zh-cn/cli_authentication_tsm.htm#TSMOIDC) 指定文件。使用 `--metadata-file <file_path>` 选项指定本地 IdP 配置文件。
    - 对于**步骤 4：**从 Tableau Server 2025.3 开始，您可以启用单点注销 (SLO) 并指定注销后要将用户重定向到的 URL。
    - 对于步骤 5：从 Tableau Server 2026.2 开始，您可以在 OIDC 身份验证工作流中启用用户属性及其功能。有关详细信息，请参见[OIDC 声明中的用户属性](https://help.tableau.com/v0.0/server-linux/zh-cn/openid_auth.htm#user_attributes)。
6. 输入配置信息后，单击“保存待处理的更改”。
7. 单击页面顶部的“待定更改”：
    
    ![指示有待定更改的 Tableau Server Manager 工具栏。](/tableau/next/zh-cn/server-linux/zh-cn/Img/tsm-ui-pending-changes-btn.png)
8. 单击“应用更改并重新启动”。

此部分中的过程描述如何使用 TSM 命令行接口来配置 OpenID Connect。您也可以使用配置文件来进行 OpenID Connect 的初始配置。请参见[openIDSettings 实体](https://help.tableau.com/v0.0/server-linux/zh-cn/entity_openid.htm)。

1. 使用[tsm authentication openid <commands>](https://help.tableau.com/v0.0/server-linux/zh-cn/cli_authentication_tsm.htm#TSMOIDC) 的 `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 实体](https://help.tableau.com/v0.0/server-linux/zh-cn/entity_openid.htm) 为 Open ID Connect 设置的可选配置。或者，您可以使用 [tsm authentication openid <commands>](https://help.tableau.com/v0.0/server-linux/zh-cn/cli_authentication_tsm.htm#TSMOIDC)。此外，如果需要配置 IdP 声明映射，请参见[openid map-claims 选项](https://help.tableau.com/v0.0/server-linux/zh-cn/cli_authentication_tsm.htm#Options2)。
    - 从 Tableau Server 2025.3 开始，您可以使用 [tsm authentication openid <commands>](https://help.tableau.com/v0.0/server-linux/zh-cn/cli_authentication_tsm.htm#TSMOIDC) 选择性地启用单点注销 (SLO)。
2. 键入以下命令以启用 Open ID Connect：
    
    `tsm authentication openid enable`
3. 运行 `tsm pending-changes apply` 以应用更改。
    
    如果待定更改需要重新启动服务器，`pending-changes apply` 命令将显示一个提示，告知您将进行重新启动。即使服务器已停止，此提示也会显示，但在这种情况下不会重新启动。您可以使用 `--ignore-prompt` 选项隐藏提示，但这样做不会改变重新启动行为。如果更改不需要重新启动，则会在不提示的情况下应用更改。有关详细信息，请参见[tsm pending-changes apply](https://help.tableau.com/v0.0/server-linux/zh-cn/cli_pending-changes.htm#pending-changes-apply)。

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

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

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

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

**传递用户属性的步骤摘要**

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

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

### 步骤 1：启用用户属性设置

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

1. 在浏览器中打开 TSM：
    
    https://<tsm-computer-name>:8850。有关详细信息，请参见[登录到 Tableau 服务管理器 Web UI](https://help.tableau.com/v0.0/server-linux/zh-cn/sign_in_tsm.htm)。
2. 在“配置”选项卡上，选择“用户身份和访问”\>“身份验证方法”。
3. 在“身份验证方法”下的下拉菜单中，选择“SAML”。
4. 在**“步骤 8”**下，选中“在 SAML 身份验证期间启用用户属性捕获”复选框。
5. 完成后，执行以下操作：
    
    1. 单击“保存未完成的更改”。
    2. 单击页面顶部的“待定更改”按钮。
    3. 单击“应用更改并重新启动”。

### 步骤 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 帮助中的[用户函数](https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_user.htm#user_attributes)。

**注意：**

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

**示例**

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

![](/tableau/next/zh-cn/server-linux/zh-cn/Img/uaf_calc_view.png)

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

![](/tableau/next/zh-cn/server-linux/zh-cn/Img/uaf_filter_view.png)

### 步骤 4：查看内容

查看和验证内容。

**示例**

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

![](/tableau/next/zh-cn/server-linux/zh-cn/Img/uaf_embedded_view_south.png)

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

![](/tableau/next/zh-cn/server-linux/zh-cn/Img/uaf_embedded_view_west.png)

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

### 已知问题和限制

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