---
schema_version: "1"
id: 665b2861677425cfa89f43ac88713012f5e057ec2b592c5c9b705d080e421787
title: 针对 OpenID Connect 配置 Tableau Cloud 或 TCM
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/online/openid_auth_server_config.md
canonical_url: https://help.tableau.com/current/online/zh-cn/openid_auth_server_config.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 94966ddbccde523733e2adda06f43247b923446738f484d418af4cc3ca37925d
description: Configure Tableau Cloud or TCM to use OpenID Connect for single sign-on.
---
[跳转到主要内容](#main-content)

# 针对 OpenID Connect 配置 Tableau Cloud 或 TCM

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

1. [OpenID Connect](https://help.tableau.com/current/online/zh-cn/openid_auth.htm) 概述
2. [针对 OpenID Connect 配置身份提供程序](https://help.tableau.com/current/online/zh-cn/openid_auth_idp_config.htm)
3. 针对 OpenID Connect 配置 Tableau Cloud 或 TCM（此部分）

**注意：**

- 在执行此处介绍的步骤之前，您必须配置 OpenID 提供程序，如 [针对 OpenID Connect 配置身份提供程序](https://help.tableau.com/current/online/zh-cn/openid_auth_idp_config.htm) 中所述。需要单独的设置和应用程序集成才能为 Tableau Cloud 和 TCM 启用 OIDC 身份验证。
- 或者，您可以使用 Tableau REST API 通过 [OpenID Connect 方法](https://help.tableau.com/current/api/rest_api/zh-cn/REST/rest_api_ref_openid_connect.htm)为 Tableau Cloud 配置 OIDC 身份验证。**注意：**仅适用于 Tableau Cloud。
- 对于 Tableau Cloud，Tableau REST API 和 tabcmd 不支持 OIDC 单点登录 (SSO)。若要使用 [tabcmd](https://help.tableau.com/current/online/zh-cn/tabcmd.htm) 或 [Tableau REST API](https://help.tableau.com/current/api/rest_api/en-us/help.htm "在新选项卡中打开 REST API 帮助。")，用户必须使用个人访问令牌 (PAT) 登录到 Tableau Cloud。
- 对于 TCM，Tableau Cloud Manager REST API 不支持 OIDC SSO。若要使用 [TCM REST API](https://help.tableau.com/current/api/cloud-manager/zh-cn/index.html "在新选项卡中打开 TCM REST API 帮助。")，用户必须使用 PAT 登录 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 身份验证方法](https://help.tableau.com/current/api/rest_api/zh-cn/REST/rest_api_ref_openid_connect.htm)配置 OIDC。

#### 可选参数

**注意：**仅适用于 Tableau Cloud。

可以使用 Tableau REST API 中的 [OpenID Connect 身份验证方法](https://help.tableau.com/current/api/rest_api/zh-cn/REST/rest_api_ref_openid_connect.htm)配置以下可选参数。

- **提示：**提示用户重新认证并同意。默认情况下，用户同意处于打开状态。
- **自定义范围：**用于查询 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 声明映射到用户帐户，请参见[身份验证概述](https://help.tableau.com/current/online/zh-cn/openid_auth.htm#overview)。

**注意：**声明区分大小写。

- **用户名：**默认情况下，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，请参见[向站点添加用户](https://help.tableau.com/current/online/zh-cn/sites_addusers.htm)
    - 对于 TCM，请参见[使用 Tableau Cloud Manager 管理用户](https://help.tableau.com/current/online/zh-cn/cloud_manager_users.htm)

### 疑难解答

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

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

#### 从命令行登录

**对于 Tableau Cloud**

即使 Tableau Cloud 配置为使用 OIDC，但如果您使用 [tabcmd](https://help.tableau.com/current/online/zh-cn/tabcmd.htm)、[Tableau REST API](https://help.tableau.com/current/api/rest_api/en-us/help.htm) 或 [Tableau 数据提取命令行实用工具](https://help.tableau.com/current/pro/online/zh-cn/help.htm)（随 Tableau Desktop 提供）登录 Tableau Cloud，也不会使用 OIDC 身份验证。

**对于 TCM**

同样，即使 TCM 配置为使用 OIDC，登录 [Tableau Cloud Manager REST API](https://help.tableau.com/current/api/cloud-manager/zh-cn/index.html "在新选项卡中打开 TCM 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. 在“控制身份验证工作流程中的用户访问”标题下，选中“在身份验证工作流中启用用户属性捕获”复选框。

有关站点设置的详细信息，请参见[在身份验证工作流程中控制用户访问](https://help.tableau.com/current/online/zh-cn/sites_add.htm#user-attributes)。

### 步骤 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/current/zh-cn/online/zh-cn/Img/uaf_calc_view.png)

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

![](/tableau/current/zh-cn/online/zh-cn/Img/uaf_filter_view.png)

### 步骤 4：查看内容

查看和验证内容。

**示例**

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

![](/tableau/current/zh-cn/online/zh-cn/Img/uaf_embedded_view_south.png)

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

![](/tableau/current/zh-cn/online/zh-cn/Img/uaf_embedded_view_west.png)

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

### 已知问题和限制

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

#### 使用 Tableau REST API 的空白图像

Tableau REST API 请求[“查询预览图像](https://help.tableau.com/current/api/rest_api/zh-cn/REST/rest_api_ref_workbooks_and_views.htm#query_view_with_preview)”、“[查询工作簿图像”](https://help.tableau.com/current/api/rest_api/zh-cn/REST/rest_api_ref_workbooks_and_views.htm#query_workbook_preview_image)和[“获取自定义视图图像”](https://help.tableau.com/current/api/rest_api/zh-cn/REST/rest_api_ref_workbooks_and_views.htm#get_custom_view_image)会生成空白图像。

#### 限制

- 不支持已发布数据源 (.pds) 中的用户属性函数。
- 不支持 Tableau Bridge 工作流中的用户属性函数。