内容:

OpenID Connect

  • 版本 :2022.1 及更高版本

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

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

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

身份验证概述

本部分介绍向 Tableau Server 进行 OpenID Connect 身份验证的过程。

步骤 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@tableau.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 之间交换的信息,此协议支持许多选项。以下列表提供了有关 OpenID Connect Tableau Server实现的详细信息。这些详细信息可以帮助您了解所发送和需要的信息类型Tableau Server,以及如何配置 IdP。

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

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

  • Tableau Server 仅支持 OpenID Connect 规范中指定的 client_secret_jwt 客户端身份验证方法。此外,Tableau Server 仅支持用 RSA 非对称加密来处理 JWT。不过,您可以关闭 JWT 验证。请参见tsm authentication openid

  • id_token 属性的 JOSE 标头中需要 Tableau Serverkid 值。此值与 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中所述进行其他更改。

此部分中的其他文章