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 REST API 配置 OIDC,请参见 Tableau REST API 帮助中的 OpenID Connect 身份验证方法(链接在新窗口中打开)注意:仅适用于 Tableau Cloud。

身份验证概述

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

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.签名和加密(链接在新窗口中打开)以及 IETF 建议标准 JSON Web 令牌(链接在新窗口中打开)。我们建议一直启用 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 可以配置为此过程使用不同的声明。请参见要求

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 最终规范(链接在新窗口中打开)中所述。

  • 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 验证该断言,然后启用对组以及权限依赖于这些组的内容的访问权限。

有关详细信息,请参见使用断言的动态组成员身份

示例 JWK

"sub"                     : "7gYhRR3HiRRCaRcgvY50ubrtjGQBMJW4rXbpPFpg2cptHP62m2sqowM7G1LwjN5"
"email"                   : "alice@example.com",
"email_verified"          : true,
"name"                    : "Alice Adams",
"given_name"              : "Alice",
"family_name"             : "Adams",
"https://tableau.com/groups": ["Group1", "Group2"]