OpenID Connect

您可以将 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 <commands>

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

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

  • Tableau Server 会忽略操作系统上配置的代理设置,并将所有 OpenID 请求直接发送到 IdP。您无法将配置 OpenID 为采用本地操作系统代理设置。Tableau Server 必须能够与 Internet 通信。

此部分中的其他文章

感谢您的反馈!