受信任的身份验证
- 版本 :2022.1 及更高版本
将 Tableau Server 视图嵌入到网页中时,访问该页面的所有用户都必须是 Tableau Server 上的许可用户。用户访问该页面时,将会看到先登录到 Tableau Server 中才能查看视图的提示。如果您已经有一种在该网页上或 Web 应用程序中对用户进行身份验证的方法,就可以通过设置受信任的身份验证来避免此提示,并避免您的用户必须登录两次。
将 Tableau Server 视图嵌入到网页中时,访问该页面的所有用户都必须是 Tableau Server 上的许可用户。用户访问该页面时,将会看到先登录到 Tableau Server 中才能查看视图的提示。如果您已经有一种在该网页上或 Web 应用程序中对用户进行身份验证的方法,就可以通过设置受信任的身份验证来避免此提示,并避免您的用户必须登录两次。
受信任的身份验证意味着您已在 Tableau Server 与一个或多个 Web 服务器之间建立受信任的关系。当 Tableau Server 接收来自这些受信任 Web 服务器的请求时,它会假设您的 Web 服务器已处理必需的身份验证。
注意: 如果想要将受信任的身份验证与嵌入式视图配合使用,则必须将客户端浏览器配置为允许第三方 cookie。
受信任的身份验证的工作原理
下图说明了受信任的身份验证在客户端的 Web 浏览器、您的 Web 服务器和 Tableau Server 之间是如何工作的。
用户访问网页:当用户访问具有嵌入式 Tableau Server 视图的网页时,该网页会向您的 Web 服务器发送一个 GET 请求,要求提供该网页的 HTML。
Web 服务器 POST 到 Tableau Server:Web 服务器向受信任的 Tableau Server(例如 https://
,而非 https://
)发送 POST 请求。该 POST 请求必须有一个 username
参数。username
值必须是 Tableau Server 许可用户的用户名。如果 Tableau Server 承载多个站点,且视图在默认站点之外的其他站点上,则 POST 请求还必须包含 target_site
参数。
Tableau Server 创建票证:Tableau Server 检查发送 POST 请求的 Web 服务器的 IP 地址或主机名(上图中的 192.168.1.XXX)。如果 Web 服务器作为受信任主机列出,则 Tableau Server 将以唯一字符串的形式创建一个票证。票证必须在发出后三分钟内兑换。Tableau Server 使用该票证来响应 POST 请求。或者,如果存在错误并且无法创建票证,则 Tableau Server 将使用值 -1
进行响应。服务器必须有 Ipv4 地址。不支持 IPv6 地址。有关详细信息,请参见从 Tableau Server 返回了票证值 -1。
Web 服务器将 URL 传递给浏览器:Web 服务器将为视图构建 URL,并将其插入网页的 HTML 中。票证包括在内(例如,https://
)。Web 服务器将 HTML 传递回客户端的 Web 浏览器。
浏览器从 Tableau Server 请求视图:客户端 Web 浏览器将向 Tableau Server 发送一个 GET 请求,该请求包括带有票证的 URL。
Tableau Server 兑换票证:Tableau Server 兑换票证,创建会话,将用户登录,从 URL 中移除票证,然后将嵌入视图的最终 URL 发送到客户端。
会话允许用户访问他们在登录到服务器后将具有的任何视图。在默认配置中,使用受信任票证进行身份验证的用户的访问权限受限,以致于只有视图可用。他们无法访问工作簿、项目页面或服务器上托管的其他内容。
若要更改此行为,请参见tsm configuration set 选项中的 wgserver.unrestricted_ticket
选项。
如何存储受信任票证?
Tableau Server 使用以下过程将受信任票证存储在 Tableau Server 存储库中:
Tableau Server 生成分为两个部分的票证:第一部分是 Base64 编码的唯一 ID (UUID),第二部分是一个 24 字符的随机密文字符串。
Tableau Server 对密文字符串进行哈希计算,并将其随唯一 ID 一起存储在存储库中。哈希计算采用密文字符串作为输入,并使用一种算法来计算唯一字符串。这个唯一字符串可保护密文字符串的安全性,防止被未授权用户获取。
Tableau Server 将 Base64 UUID 和原始 24 字符随机字符串发送到客户端。
客户端将 Base64 UUID 和原始 24 字符密文字符串作为视图请求的一部分返回到 Tableau Server。
Tableau Server 使用 Base64 UUID 查找字符串对,然后对密文字符串进行哈希处理,验证其是否与存储库中存储的哈希值匹配。
此过程确保 Tableau Server 上存储的任何受信任票证无法用于模拟用户或访问受身份验证保护的内容。但是,由于完全受信任票证是通过 HTTP 在 Tableau Server 和客户端之间发送的,因此该过程依赖于安全加密的 HTTP 数据传输。因此,我们建议您仅通过 SSL/TLS 或另一层网络加密来部署受信任票证。