---
schema_version: "1"
id: 15f8cae318d7fcd23259a4e91227ef13e36069418148735ed89fb0ee94c21ee6
title: OpenID Connect
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/online/openid_auth.md
canonical_url: https://help.tableau.com/v0.0/online/zh-cn/openid_auth.htm
source_site: help.tableau.com
content_type: documentation
content_hash: e6b7c3a5ab6d4a1e8a0617e34505f26b2fa7705695a5eb941cb9bcd0c260560c
description: Understand how Tableau Cloud supports OpenID Connect (OIDC) for single sign-on (SSO).
---
[跳转到主要内容](#main-content)

# OpenID Connect

您可以将 Tableau Cloud 或 Tableau Cloud Manager (TCM) 配置为支持为单点登录 (SSO) 使用 OpenID Connect。OIDC 是一种标准身份验证协议，它使用户能够登录到诸如 Google 或 Salesforce 等身份提供程序 (IdP)。用户成功登录到其 IdP 后，将会自动登录到 Tableau Cloud 或 TCM。

配置 OIDC 的过程包含若干步骤。本节中的主题提供有关将 Tableau Cloud 或 TCM 与 OIDC 一起使用的一般信息，并提供用于配置 IdP 和 Tableau Cloud 或 TCM 的顺序。

**注意：**需要单独的设置和应用程序集成才能为 Tableau Cloud 和 TCM 启用 OIDC 身份验证。

若要使用 Tableau REST API 配置 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。

## 身份验证概述

本部分介绍 Tableau Cloud 或 TCM 的 OpenID Connect (OIDC) 身份验证过程。

![](/tableau/next/zh-cn/online/zh-cn/Img/openid_auth_overview_cloud.png)

1.用户尝试从客户端计算机登录到 Tableau Cloud 或 TCM。

2.Tableau Cloud 将身份验证请求重定向到 IdP 网关。

3.用户收到凭据提示，并成功向 IdP 进行验证。IdP 做出响应，并将重定向 URL 返回到 Tableau Cloud 或 TCM。重定向 URL 中包括用户的授权代码。

4.客户端被重定向到 Tableau Cloud 或 TCM，并提供授权代码。

5\. Tableau Cloud或 TCM 将客户端的授权代码连同其自己的客户端凭据一起提供给 IdP。Tableau Cloud或 TCM 也是 IdP 的客户端。此步骤旨在防止假冒或中间人攻击。

6.IdP 将访问令牌和 ID 令牌返回给 Tableau Cloud 或 TCM。

- JSON Web 令牌 (JWT) 验证：默认情况下，Tableau 会对 IdP JWT 执行验证。在发现过程中，Tableau 将在 IdP 配置发现文档中检索 `jwks_uri` 指定的公钥。Tableau 将验证 ID 令牌是否过期，并验证 JSON Web 签名 (JWS)、颁发者 (IdP) 和客户端 ID。您可以在 OIDC 文档中详细了解 JWT 进程。[10.签名和加密](http://openid.net/specs/openid-connect-core-1_0.html#SigEnc)以及 IETF 建议标准 [JSON Web 令牌](https://tools.ietf.org/html/rfc7519)。我们建议一直启用 JWT 验证，除非 Idp 不支持。
- ID 令牌是用户的一组属性密钥对。该密钥对称为_声明_。下面是用户的一个示例 IdP 声明：
    
    "sub"                     : "7gYhRR3HiRRCaRcgvY50ubrtjGQBMJW4rXbpPFpg2cptHP62m2sqowM7G1LwjN5"
    "email"                   : "alice@example.com",
    "email\_verified"          : true,
    "name"                    : "Alice Adams",
    "given\_name"              : "Alice",
    "family\_name"             : "Adams"

7\. Tableau Cloud 或 TCM 从 IdP 声明中识别用户，并完成步骤 1 中的身份验证请求。 Tableau Cloud 可以配置为此过程使用不同的声明。请参见[要求](https://help.tableau.com/v0.0/online/zh-cn/openid_auth_server_config.htm#requirements)。

8\. Tableau Cloud 或 TCM 为用户授权。

## Tableau 如何使用 OpenID Connect

OpenID Connect 是一种灵活的协议，对于服务提供商（本文中为 Tableau Cloud 或 TCM）和 IdP 之间交换的信息，此协议支持许多选项。以下列表提供了有关 Tableau Cloud 和 TCM OIDC 的实现的详细信息。这些详细信息可以帮助您了解 Tableau Cloud 或 TCM 所发送和需要的信息类型，以及如何配置 IdP。

- Tableau Cloud 和 TCM 仅支持 OpenID 授权代码流程，如 OpenID Connect 文档中的 [OpenID Connect 最终规范](http://openid.net/specs/openid-connect-core-1_0.html)中所述。
- Tableau Cloud 和 TCM 依赖于使用发现或提供程序 URL 来检索 IdP元数据。
- Tableau Cloud 和 TCM 支持 OpenID Connect 规范中指定的 `client_secret_basic` （默认） 和 `client_secret_post` 客户端身份验证 以及其他参数。只能使用 Tableau REST API 配置这些方法。

## OIDC 声明中的动态组成员身份

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

从 2024 年 6 月开始，如果配置了 OIDC 身份验证并启用了该功能的设置，您可以通过身份提供程序 (IdP) 发送的 JSON Web 令牌 (JWT) 中包含的自定义声明动态控制群组成员身份。

配置后，在用户身份验证期间，IdP 会发送包含两个自定义组成员身份声明的 OIDC 断言：组 (`https://tableau.com/groups` ) 和组名（例如，“Group1”和“Group2”）来将用户声明到其中。Tableau 验证该断言，然后启用对组以及权限依赖于这些组的内容的访问权限。

有关详细信息，请参见[使用断言的动态组成员身份](https://help.tableau.com/v0.0/online/zh-cn/to_add_users_groups.htm#assertions)。

**示例 JWT**

"sub"                     : "7gYhRR3HiRRCaRcgvY50ubrtjGQBMJW4rXbpPFpg2cptHP62m2sqowM7G1LwjN5",
"email"                   : "alice@example.com",
"email\_verified"          : true,
"name"                    : "Alice Adams",
"given\_name"              : "Alice",
"family\_name"             : "Adams",
"https://tableau.com/groups": \["Group1", "Group2"\]

## OIDC 声明中的用户属性

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

从 2025 年 10 月 (Tableau 2025.3) 开始，在配置并启用功能设置后，您可以在登录期间将身份提供程序 (IdP) 发送的 JSON Web 令牌 (JWT) 中的用户属性声明传递到 Tableau Cloud。这些用户属性可与 Tableau 的用户属性函数 `(USERATTRIBUTE()`, `USERATTRIBUTEINCLUDES()`) 结合使用，动态控制和自定义内容。Tableau 验证声明，然后启用对内容的访问。

有关详细信息，请参见[使用用户属性自定义和控制数据访问](https://help.tableau.com/v0.0/online/zh-cn/openid_auth_server_config.htm#user_attributes)。

**示例 JWT**

"sub"                     : "7gYhRR3HiRRCaRcgvY50ubrtjGQBMJW4rXbpPFpg2cptHP62m2sqowM7G1LwjN5",
"email"                   : "alice@example.com",
"email\_verified"          : true,
"name"                    : "Alice Adams",
"given\_name"              : "Alice",
"family\_name"             : "Adams",
"region"                 : \["South", "South West"\]

## 此部分中的其他文章