OpenID Connect

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

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

注意: 除非另有说明,否则有关 OIDC 身份验证的信息适用于在 Tableau Server 设置期间配置的 OIDC 身份验证,或适用于使用身份池(链接在新窗口中打开)配置的 OIDC 身份验证。

身份验证概述

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

1.用户尝试从客户端计算机登录到 Tableau Server

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

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

4.客户端被重定向到 Tableau Server,并提供授权代码。

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

6.IdP 将访问令牌和 ID 令牌返回给 Tableau Server

  • JSON Web 令牌 (JWT) 验证:默认情况下,Tableau Server 会对 IdP JWT 执行验证。在发现过程中,Tableau Server 将在 IdP 配置发现文档中检索 jwks_uri 指定的公钥。Tableau Server 将验证 ID 令牌是否过期,并验证 JSON Web 签名 (JWS)、颁发者 (IdP) 和客户端 ID。您可以在 OpenID 文档中详细了解 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",
    "phone_number"            : "+359 (99) 100200305",
    "profile"                 : "https://tableau.com/users/alice"		

7.Tableau Server 从 IdP 声明中识别用户,并完成步骤 1 中的身份验证请求。Tableau Server 通过匹配“sub”(使用者标识符)来确定正确的用户帐户,从而搜索存储在存储库中的用户帐户记录。如果没有用户帐户与 sub 声明值存储在一起,则 Tableau Server 将在存储库中搜索与 IdP 中的“email”匹配的用户名。当用户名匹配成功时,Tableau Server 会将相应的 sub 声明存储到存储库中的用户记录中。Tableau Server 可以配置为此过程使用不同的声明。请参见使用 OpenID Connect 的要求

8.Tableau Server 为用户授权。

Tableau Server 如何与 OpenID Connect 配合使用

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

  • Tableau Server 仅支持 OpenID 授权代码流程,如 OpenID Connect 文档中的 OpenID Connect 最终规范(链接在新窗口中打开)中所述。

  • Tableau Server 依赖于使用发现或提供程序 URL 来检索 OpenID 提供程序元数据。或者,您可以在 Tableau Server 上托管静态发现文档。有关详细信息,请参见针对 OpenID Connect 配置 Tableau Server

  • Tableau Server 支持 OpenID Connect 规范中指定的 client_secret_basicclient_secret_post 客户端身份验证

  • id_token 属性的 JOSE 标头中需要 Tableau Server kid 值。此值与 JWK 集文档中发现的关键字之一匹配,此文档的 URI 由 OpenID 发现文档中的 jwks_uri 值指定。即使 JWK 集文档中只有一个关键字,也必须存在 kid 值。

  • Tableau Server确实包括 OpenID 支持,支持 JWK x5c 参数或支持使用 X.509 证书。

  • 默认情况下,Tableau Server 会忽略代理设置并将所有 OpenID 请求直接发送到 IdP。

    如果 Tableau Server 配置为使用转发代理连接到 Internet,则您必须按照针对 OpenID Connect 配置 Tableau Server中所述进行其他更改。

感谢您的反馈!您的反馈已成功提交。谢谢!