---
schema_version: "1"
id: 1c9b606f87a06c8f1c05acf314d16e2e1cf431a77494652b2f62f8fac0a36188
title: 使用 OAuth 2.0 信任配置已连接应用
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/server/connected_apps_eas.md
canonical_url: https://help.tableau.com/v0.0/server/zh-cn/connected_apps_eas.htm
source_site: help.tableau.com
content_type: documentation
content_hash: bb97160805e10454d2c94210e9c6fbe06b0485f1faaf3480a0191691a65f5acc
description: Configure connected apps with OAuth 2.0 trust by registering an external authorization server.
---
[跳转到主要内容](#main-content)

# 使用 OAuth 2.0 信任配置已连接应用

作为 Tableau Server 管理员，您可以使用 OAuth 2.0 标准协议注册一个或多个外部授权服务器 (EAS) 以在 Tableau Server 和 EAS 之间建立信任关系。

**重要信息：**

- 本主题中的某些过程需要使用第三方软件和服务进行配置。我们已尽最大努力验证用于在 Tableau Server 上启用 EAS 功能的过程。但是，第三方软件和服务可能会发生变化，或者您的组织可能会有所不同。如果遇到问题，请参考第三方文档以获得权威的配置详细信息和支持。
- 若要通过 EAS 启用嵌入，必须将 Tableau Server 配置为使用 SSL 处理 HTTP 流量。
- 为了使会话令牌有效，外部应用程序和托管外部应用程序的服务器的时钟必须设置为协调世界时 (UTC)。如果任何一个时钟使用不同的标准，连接的应用软件将不被信任。

## Tableau 已连接应用如何与 OAuth 2.0 信任配合使用

Tableau Server 站点和外部应用程序之间的信任关系通过 JSON Web Token (JWT) 标准中的身份验证令牌建立和验证。

在外部应用程序中加载嵌入的 Tableau 内容时，将使用授权代码流程 OAuth 流程。用户成功登录到其 IdP 后，将会自动登录到 Tableau Server。按照下面描述的步骤将您的 EAS 注册到 Tableau Server 。

### 已连接应用的关键组件

已连接应用的以下组件与外部应用程序中的 JWT 一起工作，以验证用户身份并显示嵌入的内容。

- **外部授权服务器 (EAS)：**该服务器（通常是您的 IdP）充当用户和外部应用程序之间的接口。服务器对用户进行身份验证并授权其访问受保护的 Tableau 内容。
- **颁发者 URL：**唯一标识 EAS 实例的 URL。

### 已连接应用工作流程

#### 嵌入工作流

下图说明了外部授权服务器 (EAS)、外部应用程序（Web 服务器及网页）和 Tableau 已连接应用之间的身份验证工作方式。

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

1. **用户访问网页：**当用户访问网页上的嵌入内容时，网页会向外部应用程序发送 GET 请求。
2. **外部应用程序将请求重定向到 EAS：**外部应用程序通过重定向到外部授权服务器 (EAS)的网页进行响应。
3. **用户使用 EAS 进行身份验证：**用户使用 EAS 进行身份验证和授权。
4. **EAS 使用授权代码响应网页：** EAS 使用授权码响应页面并重定向回网页。
5. **EAS 将授权代码转换为 JWT：**网页调用 EAS 将授权代码转换为 JWT，网页将 JWT 放入嵌入式内容的 URL 中。
6. **网页向 Tableau 请求内容：**网页加载 iFrame 并向 Tableau 发送 GET 请求。
7. **Tableau 验证令牌：**Tableau 使用签名验证 URL 中的 JWT，使用内容进行响应，并尊从 JWT 中定义的嵌入范围。

## 创建已连接应用

### 步骤 1：开始之前

若要将 EAS 注册到 Tableau Server ，您必须已配置 EAS。此外，EAS 必须发送包含下表中列出的已注册声明和标头的有效 JSON Web 令牌 (JWT)。

<table style="width: 90%;mc-table-style: url('Resources/TableStyles/Basic-Border-Light.css');margin-left: 0;margin-right: auto;" class="TableStyle-Basic-Border" cellspacing="0"><colgroup><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"></colgroup><tbody><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">声明</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">名称</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1" style="font-weight: bold;">描述或必需值</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">“<code>kid</code>”</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">键 ID</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">必需（在标题中）。来自身份提供程序的唯一密钥标识符。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">“<code>iss</code>”</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">颁发者</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">必需（在标题中或作为声明）。标识受信任的已连接应用及其签名密钥的唯一颁发者 URI。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">“<code>alg</code>”</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">算法</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">必需（在标题中）。JWT 签名算法。javadoc.io 文档的 <a href="https://www.javadoc.io/doc/com.nimbusds/nimbus-jose-jwt/2.21/com/nimbusds/jose/JWSAlgorithm.html" target="_blank">Class JWSAlgorithm</a> 页面中列出了支持算法名称。签名算法可以使用<a href="https://help.tableau.com/v0.0/server/zh-cn/cli_configuration-set_tsm.htm#eas_algorithms" class="xref">vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms</a>命令进行配置。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">“<code>sub</code>”</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">使用者</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">经过身份验证的 <span class="mc-variable Variables.ProductName variable">Tableau Server</span> 用户的。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">“<code>aud</code>”</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">受众</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><p>值必须是：“<code>tableau</code>”</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">“<code>exp</code>”</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">到期时间</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">有效的 JWT 不得过期。JWT 的过期时间 (UTC) 必须在配置的最长有效期内。可以使用<a href="https://help.tableau.com/v0.0/server/zh-cn/cli_configuration-set_tsm.htm#eas_max_expiration_period" class="xref">vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes</a>命令配置最长有效期。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">“<code>jti</code>”</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT ID</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">JWT ID 声明为 JWT 提供唯一标识符，并且区分大小写。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">“<code>scp</code>”</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">范围</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><p>对于<i>嵌入工作流</i>，支持的值包括：</p><p>“<code>tableau:views:embed</code>”<br>“<code>tableau:views:embed_authoring</code>”（Tableau Server 2022.3 中新增）<br>“<code>tableau:metrics:embed</code>”（在 Tableau Server 2023.3 中已停用）<br>“<code>tableau:ask_data:embed</code>”（Tableau Server 2023.1 中新增。在 Tableau Server 2024.2 中已停用）</p><p><b>注意：</b></p><ul><li>值必须作为列表类型传递。</li><li>对于 <code>tableau:views:embed</code>，范围遵循已在 <span class="mc-variable Variables.ProductName variable">Tableau Server</span> 中配置的用户权限，并允许用户与嵌入视图中的工具进行交互（如果在原始视图中可用）。</li><li>我们建议嵌入代码排除工具栏参数。有关详细信息，请参见下面的<a href="#known_issues" class="xref">已知问题（仅限嵌入工作流）</a>。</li></ul><p>对于 <i>REST API 授权工作流</i>，请参见<a href="https://help.tableau.com/v0.0/server/zh-cn/connected_apps_scopes.htm#scopes" class="xref">支持 JWT 授权的 REST API 方法</a>。</p><p>对于<i>使用 REST API 进行身份验证的元数据 API 工作流</i>，唯一支持的范围是 <code>tableau:content:read</code>。</p><p>对于<i>使用 REST API 进行身份验证的 VizQL Data Service 工作流</i>，唯一支持的范围是 <code>tableau:viz_data_service:read</code>。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><code>https://tableau.com/groups</code></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">动态组成员身份</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">仅适用于<i>嵌入工作流</i>。<p>值必须与 Tableau Server 中一个或多个组的名称匹配。有关详细信息，请参见<a href="https://help.tableau.com/v0.0/server/zh-cn/groups_create_local.htm#assertions" class="xref">使用断言的动态组成员身份</a>。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">（用户属性）</td><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">（用户属性值）</td><td class="TableStyle-Basic-Border-BodyA-Column1-Body1"><p>仅适用于<i>嵌入工作流</i>。</p><p>从 Tableau Server 2025.1 开始，您 可以在 JWT 中包含用户属性。然后，当在嵌入内容中使用用户属性函数时，Tableau 会检查经过身份验证的用户的上下文并确定哪些数据可以在运行时显示。</p><p><b>注意：</b></p><ul><li><p>查看 <a href="https://help.tableau.com/current/api/embedding_api/zh-cn/docs/embedding_api_user_attributes.html#known-issues" target="_blank">Tableau Embedding API v3</a> 帮助以了解可能影响您的工作流程的<i>已知问题</i>和<i>限制</i>。</p></li><li>若要使用户属性发挥作用，1) 您必须使用 Tableau REST API 通过<a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_site.htm#update_embedding_settings_for_site" target="_blank">更新站点的嵌入设置</a>方法启用用户属性能力，并根据需要启用 <a href="https://help.tableau.com/current/server/zh-cn/cli_configuration-set_tsm.htm#uaf" target="_blank">features.VizDataServiceClientEnable</a> TSM 选项，并且 2) 内容作者必须创建<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_user.htm#user_attributes" target="_blank">用户属性函数</a>。</li><li>用户属性区分大小写。</li></ul></td></tr></tbody></table>

**注意：**上述 JWT 声明记录在 Internet 工程任务组 (IETF) 组织分发的文档中的[注册声明名称](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1)部分。

### 步骤 2：向 Tableau Server 注册您的 EAS

通过向 Tableau Server 注册您的 EAS，您可以在 EAS 和 Tableau Server之间建立信任关系。这意味着当用户访问嵌入在您的外部应用程序中的 Tableau 内容时，他们将被重定向以使用 IdP 进行身份验证。EAS 生成身份验证令牌，该令牌会传递给 Tableau Server 进行验证。在验证信任关系后，授予用户对嵌入内容的访问权限。

**注意：**某些 EAS 支持显示同意对话框的选项，该对话框要求用户批准应用程序访问 Tableau 内容。为确保您的用户获得最佳体验，我们建议您将 EAS 配置为代表用户自动同意外部应用程序的请求。

#### 关于站点级 EAS

从 Tableau Server 2024.2 开始，您可以配置站点级 EAS。若要在站点级别注册 EAS，必须在 Tableau Server Manager (TSM) 中启用已连接应用。

有两种方法可以注册服务器范围的 EAS：使用 TSM Web UI 或使用 TSM CLI。

注册 EAS 后，建立的信任关系适用于 Tableau Server 上的所有站点。

### 选项 1：使用 TSM Web UI

1. 以 Tableau Server 管理员身份登录到 Tableau 服务管理器 (TSM) Web UI。有关详细信息，请参见[登录到 Tableau 服务管理器 Web UI](https://help.tableau.com/v0.0/server/zh-cn/sign_in_tsm.htm#sign-in-to-the-tsm-web-ui)。
2. 执行以下操作_之一_：
    
    - 在 Tableau Server 2024.2 及更高版本中，导航到“用户身份和访问”页面 >“已连接应用”选项卡。
    - 在 Tableau Server 2023.3 及更低版本中，导航到“用户身份和访问”页面 >“授权服务器”选项卡。
3. 执行以下操作_之一_：
    - 在 Tableau Server 2024.2 及更高版本中：
        
        1. 选中“启用已连接应用”复选框。
        2. 选择第二个单选按钮，即“允许已连接应用（在站点级别配置）和服务器范围的 OAuth 2.0 信任（在下面配置）”。
        3. 在“颁发者 URL”文本框中，粘贴 EAS 的颁发者 URL。
        4. 单击“保存未完成的更改”按钮。
            
            ![](/tableau/next/zh-cn/server/zh-cn/Img/connectedapp_eas_register_new.png)
    - 在 Tableau Server 2023.3 及更低版本中：
        
        1. 选中“嵌入内容启用 OAuth 访问权限”复选框。
        2. 在“颁发者 URL”文本框中，粘贴 EAS 的颁发者 URL。
        3. 单击“保存未完成的更改”按钮。
            
            ![注册外部授权服务器表单。](/tableau/next/zh-cn/server/zh-cn/Img/connectedapp_eas_register.png)
4. 完成后，执行以下操作：
    1. 在浏览器的右上角，单击“未完成的更改”按钮。
    2. 在页面的右下角，单击“应用更改并重新启动”按钮以停止并重新启动 Tableau Server。
        
        ![等待授权的外部配置更改列表，其中包含“应用”或“放弃”更改的选项。](/tableau/next/zh-cn/server/zh-cn/Img/connectedapp_eas_save.png)

### 选项 2：使用 TSM CLI

1. 在群集中的初始节点（安装了 TSM 的节点）上以管理员身份打开命令提示符。
2. 运行以下命令：
    
    tsm configuration set -k vizportal.oauth.external\_authorization.enabled -v true
    tsm configuration set -k vizportal.oauth.external\_authorization\_server.issuer -v "<issuer\_url\_of\_EAS>"
    tsm restart

从 Tableau Server 2024.2 开始，您可以为站点注册一个或多个 EAS。在站点级别注册 EAS 后，建立的信任关系仅适用于站点。

**注意：**配置站点级 EAS 的先决条件是在 TSM 中启用已连接应用。

### 步骤 1：启用已连接应用

1. 以 Tableau Server 管理员身份登录到 Tableau 服务管理器 (TSM) Web UI。有关详细信息，请参见[登录到 Tableau 服务管理器 Web UI](https://help.tableau.com/v0.0/server/zh-cn/sign_in_tsm.htm#sign-in-to-the-tsm-web-ui)。
2. 导航到“用户身份和访问”页面 >“已连接应用”选项卡。
3. 选中“启用已连接应用”复选框。
4. 执行以下操作_之一_：
    
    - 选中第一个单选按钮“允许已连接应用（在站点级别配置）”以仅在站点级别启用注册 EAS。
        
        ![](/tableau/next/zh-cn/server/zh-cn/Img/connectedapp_eas_register_radio.png)
    - （默认）选中第二个单选按钮“允许已连接应用（在站点级别配置）和服务器范围的 OAuth 2.0 信任（在下面配置）”，以在站点级别和服务器范围内注册 EAS。如果选择此选项，请确保在站点级别指定的颁发者 URL 与服务器范围的颁发者 URL 不同。
        
        ![](/tableau/next/zh-cn/server/zh-cn/Img/connectedapp_eas_register_radio_default.png)
5. 单击“保存未完成的更改”按钮。
6. 完成后，执行以下操作：
    1. 在浏览器的右上角，单击“未完成的更改”按钮。
    2. 在页面的右下角，单击“应用更改并重新启动”按钮以停止并重新启动 Tableau Server。

### 步骤 2：注册您的 EAS

1. 以 Tableau Server 管理员身份登录 Tableau Server。
2. 从左侧窗格中，选择“设置”\>“已连接应用”。
3. 单击“新建已连接应用”按钮下拉箭头，并选择“OAuth 2.0 信任”。
4. 在“创建已连接应用”对话框中，执行以下操作：  
    1. 在“名称”文本框中，输入已连接应用的名称。
    2. 在“颁发者 URL”文本框中，粘贴 EAS 的颁发者 URL。
    3. 选择“启用已连接应用”。出于安全考虑，已连接应用在创建时默认设置为禁用。
    4. 完成后，单击“创建”按钮。
    ![](/tableau/next/zh-cn/server/zh-cn/Img/connectedapp_create_eas.png)
5. 创建已连接应用后，复制已连接应用的站点 ID。站点 ID 用于上面步骤 1 中描述的 JWT 的“aud”（受众）声明。
    
    ![外部授权服务器的详细信息，带有复制站点 ID 的按钮。](/tableau/next/zh-cn/server/zh-cn/Img/connectedapp_eas_button_luid.png)

### 步骤 3：后续步骤

#### 对于嵌入工作流

将Tableau Server配置为使用您的 EAS 后，您必须将嵌入代码添加到您的外部应用程序。确保在外部应用程序调用的 Web 组件中包含 EAS 生成的有效 JWT，如步骤 1 中所述。

有关嵌入 Tableau 内容的详细信息，请参见以下主题：

- 使用 [Tableau Embedding API v3](https://help.tableau.com/current/api/embedding_api/zh-cn/index.html) 嵌入 Tableau 内容。
- 有关基于属性的访问控制 (ABAC)、按需访问和动态组成员身份的用户属性，请参见 Tableau Embedding API v3 中的[自定义和控制数据访问](https://help.tableau.com/current/api/embedding_api/zh-cn/docs/embedding_api_user_attributes.html)。
- 嵌入指标，请参见 Tableau 帮助中的[将指标嵌入网页](https://help.tableau.com/current/pro/desktop/zh-cn/embed_metrics.htm)主题。（在 Tableau Server 2023.3 中，Tableau 停用了嵌入指标的功能。）

**注意：**为了让用户在访问嵌入式内容时成功进行身份验证，浏览器必须配置为允许第三方 Cookie。

##### 使用嵌入域白名单控制内容的嵌入位置

从 Tableau Server 2023.3 开始，您和您的用户可以使用 Tableau REST API 中的“更新站点嵌入设置”方法来控制是否可以不受限制地嵌入 Tableau 内容或限制为某些域。

默认情况下，`unrestrictedEmbedding` 站点嵌入设置设为 `true` 以允许不受限制的嵌入。或者，您和您的用户可以将廖设置设为 `false`，并使用 `allowList` 参数指定可以嵌入外部应用程序中的 Tableau 内容的域。

有关详细信息，请参阅以下一项或两项：

- Tableau REST API 帮助中的[更新站点的嵌入设置](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_site.htm#update_embedding_settings_for_site)
- Tableau 嵌入 API v3 帮助中 [Tableau 站点的嵌入设置](https://help.tableau.com/current/api/embedding_api/en-us/docs/embedding_api_site.html#about-tableau-site-settings-for-embedding)。

#### 对于 REST API 授权工作流

配置 JWT 后，您必须将有效的 JWT 添加到 REST API 登录请求以进行授权访问。有关详细信息，请参见[已连接应用的访问范围](https://help.tableau.com/v0.0/server/zh-cn/connected_apps_scopes.htm)。

#### 对于元数据 API 工作流

配置 JWT 后，您必须将有效的 JWT 添加到 REST API 登录请求。有关详细信息，请参见[已连接应用的访问范围](https://help.tableau.com/v0.0/server/zh-cn/connected_apps_scopes.htm)。

#### 对于 SCIM 工作流的外部令牌

配置 JWT 后，您必须启用 SCIM 功能。有关详细信息，请参见[使用 OAuth 2.0 信任配置已连接应用](#scim)。

### 已知问题（仅限嵌入工作流）

使用已连接应用时存在一些已知问题，这些问题将在未来版本中解决。

- **工具栏功能：**当嵌入式内容定义了工具栏参数时，并非所有工具栏功能都可以使用。为了解决此问题，我们建议您像下面的示例一样隐藏工具栏参数。
    
    <tableau-viz id='tab-viz' src='https://<your\_server>/t/<your\_site>/...'
    	toolbar='hidden'>
    </tableau-viz>

- **已发布数据源：**将不会显示设置为提示用户提供数据库凭据的已发布数据源。为了解决此问题，如果可能，我们建议数据源所有者改为嵌入他们的数据库凭据。
- **多个站点上的嵌入视图：**在 Tableau Server 2023.1 及更低版本中，在同一浏览器中切换不同站点上的视图会导致错误“1008：无法获取已连接应用的密文”。为了解决此问题，请升级到 Tableau Server 2023.3 或更高版本。

### 疑难解答

当嵌入内容无法在您的外部应用程序中显示或 Tableau REST API 授权失败时，您可以使用浏览器的开发人员工具来检查和识别可能与Tableau Server上启用的 EAS 功能相关联的错误代码。

请参阅下表以查看错误代码和潜在解决方案的描述。

<table style="width: 90%;margin-left: 0;margin-right: auto;mc-table-style: url('Resources/TableStyles/Basic-Border-Light.css');" class="TableStyle-Basic-Border" cellspacing="0"><colgroup><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"></colgroup><tbody><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">错误代码</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">摘要</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">描述</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1" style="font-weight: bold;">潜在的解决方案或解释</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">5</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">SYSTEM_USER_NOT_FOUND</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">找不到 Tableau 用户</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><br>若要解决此问题，请验证 JWT 中的“<code>sub</code>”（使用者）声明值为经过身份验证的 Tableau Server 的“用户名”。此值区分大小写。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">16</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">LOGIN_FAILED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">登录失败</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">此错误通常是由 JWT 中的以下声明问题之一引起的：<ul><li>“<code>exp</code>”（过期时间）超过了默认的最长有效期。若要解决此问题，请查看有效 JWT 所需的<a href="https://help.tableau.com/current/server/zh-cn/connected_apps_eas.htm#jwt" target="_blank">已注册声明</a>并确保使用正确的值。若要更改最长有效期，可以使用<a href="https://help.tableau.com/v0.0/server/zh-cn/cli_configuration-set_tsm.htm#eas_max_expiration_period" class="xref">vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes</a>命令。</li><li>“<code>sub</code>”（使用者）正在调用未知用户。若要解决此问题，请验证“<code>sub</code>”声明是否为“username”。此值区分大小写。</li></ul></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">67</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">FEATURE_NOT_ENABLED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">不支持按需访问</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">仅可通过获得许可的 Tableau Cloud 站点进行按需访问。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10081</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">COULD_NOT_RETRIEVE_IDP_METADATA</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">缺少 EAS 元数据端点</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">若要解决此问题，请验证 EAS 是否配置正确并且调用了正确的颁发者。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10082</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">AUTHORIZATION_SERVER_ISSUER_NOT_SPECIFIED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">缺少颁发者</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">若要解决此问题，请验证是否调用了正确的颁发者。若要更改颁发者 URL，您可以使用<a href="https://help.tableau.com/v0.0/server/zh-cn/cli_configuration-set_tsm.htm#eas_issuer" class="xref">vizportal.oauth.external_authorization_server.issuer</a>命令。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10083</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">BAD_JWT</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT 标头包含问题</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">JWT 标头中缺少“<code>kid</code>”（密文 IDd）或“<code>clientId</code>”（颁发者）声明。若要解决此问题，请确保包含此信息。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10084</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT_PARSE_ERROR</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT 包含问题</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">若要解决此问题，请验证以下各项：<ul><li>JWT 中引用的“<code>aud</code>”（受众群体）值是否使用“tableau”值。此值区分大小写。</li><li>JWT 中包含“<code>aud</code>”（受众群体）和“<code>sub</code>”（使用者）。</li></ul></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10085</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">COULD_NOT_FETCH_JWT_KEYS</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT 找不到密钥</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">找不到密文。<p>若要解决此问题，请验证是否调用了正确的颁发者。若要更改颁发者 URL，您可以使用<a href="https://help.tableau.com/v0.0/server/zh-cn/cli_configuration-set_tsm.htm#eas_issuer" class="xref">vizportal.oauth.external_authorization_server.issuer</a>命令。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10087</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGN</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT 签名算法存在问题</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">若要解决此问题，您可以移除签名算法。有关详细信息，请参见<a href="https://help.tableau.com/v0.0/server/zh-cn/cli_configuration-set_tsm.htm#eas_algorithms" class="xref">vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms</a>。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10088</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">RSA_KEY_SIZE_INVALID</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT 签名要求存在问题</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">若要解决此问题，请使用 EAS 或 IdP 验证 JWT 是否使用大小为 2048 的 RSA 密钥进行签名。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10091</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JTI_ALREADY_USED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">需要唯一的 JWT</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">JWT 已在身份验证过程中使用。若要解决此问题，EAS 或 IdP 必须生成新的 JWT。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10092</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">NOT_IN_DOMAIN_ALLOW_LIST</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">未指定嵌入内容的域</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">若要解决此问题，请确保 <code>unrestrictedEmbedding</code> 设置设为 <code>true</code> 或者 <code>domainAllowlist</code> 参数包括使用 Tableau REST API 中的<a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_site.htm#embedding_settings_for_site" target="_blank">更新站点嵌入设置</a>方法嵌入 Tableau 内容的域。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10094</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">MISSING_REQUIRED_JTI</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">缺少 JWT ID</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">若要解决此问题，请验证 JWT 中包含“<code>jti</code>”（JWT ID）。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10096</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT_EXPIRATION_EXCEEDS_CONFIGURED_EXPIRATION_PERIOD</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">&nbsp;</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">“<code>exp</code>”（过期时间）超过了默认的最长有效期。若要解决此问题，请查看有效 JWT 所需的<a href="https://help.tableau.com/current/server/zh-cn/connected_apps_eas.htm#jwt" target="_blank">已注册声明</a>并确保使用正确的值。若要更改最长有效期，可以使用<a href="https://help.tableau.com/v0.0/server/zh-cn/cli_configuration-set_tsm.htm#eas_max_expiration_period" class="xref">vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes</a>命令。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10097</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">SCOPES_MALFORMED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">范围声明的问题</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">当“<code>scp</code>”（范围）声明在 JWT 中缺失或未作为列表类型传递时，可能会发生此错误。若要解决此问题，请验证“<code>scp</code>”包含在 JWT 中并作为列表类型传递。有关 JWT 的故障排除帮助，请参见 auth0 站点上的<a href="https://jwt.io/" target="_blank">调试器</a>。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10098</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT_UNSIGNED_OR_ENCRYPTED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JWT 未签名或已加密</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">Tableau 不支持未签名或已加密的 JWT。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10099</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">SCOPES_MISSING_IN_JWT</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">缺少范围声明</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">JWT 缺少所需的“<code>scp</code>”（范围）声明。若要解决此问题，请验证 JWT 中是否包含“<code>scp</code>”。有关 JWT 的故障排除帮助，请参见 auth0 站点上的<a href="https://jwt.io/" target="_blank">调试器</a>。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">10100</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">JTI_PERSISTENCE_FAILED</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">意外的 JWT ID 错误</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">存在意外的“<code>jti</code>”（JWT ID）错误。若要解决此问题，必须生成带有新的“<code>jti</code>”的新 JWT。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">10103</td><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">JWT_MAX_SIZE_EXCEEDED</td><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">JWT 超出最大大小</td><td class="TableStyle-Basic-Border-BodyA-Column1-Body1">当 JWT 大小超过 8000 字节时，可能会发生此错误。为了解决此问题，请确保仅将必要的声明传递给 <span class="mc-variable Variables.ProductName variable">Tableau Server</span>。</td></tr></tbody></table>