在 Tableau Server 中管理仪表板扩展程序

仪表板扩展程序是一些 Web 应用程序,这些应用程序运行在自定义仪表板区域中,并可使用 Tableau Extensions API(Link opens in a new window) 与仪表板的其他部分交互。仪表板扩展程序使用户能够直接在 Tableau 中与其他应用程序中的数据交互。

注意:您必须是服务器管理员才能在服务器上启用仪表板扩展程序,或阻止特定扩展程序运行。您必须是服务器管理员才能将扩展程序添加到安全列表,以及控制扩展程序可访问的数据类型。服务器管理员还可配置站点上的用户在仪表板中添加或查看扩展程序时是否将看到提示。有关扩展程序安全性和推荐部署选项的信息,请参见扩展程序安全性 - 最佳部署做法扩展程序安全性 - 最佳部署做法

有关在 Tableau 中使用仪表板扩展程序的信息,请参见使用仪表板扩展程序(Link opens in a new window)

在 Tableau Server 上运行扩展程序之前

Tableau 支持两种类型的仪表板扩展程序:支持网络的扩展程序(可托管在位于本地网络内部或外部且具有对 Web 的完全访问权限的 Web 服务器上),以及沙盒化扩展程序(在受保护的环境中运行,无法访问 Web 上的任何其他资源或服务)。

沙盒化扩展程序由 Tableau 托管,并采用诸如内容安全策略 (CSP) 等 W3C 标准,以确保扩展程序无法在托管 Tableau Server 之外进行网络调用。沙盒化扩展程序可以查询仪表板中的数据,但不能将该数据发送到沙盒以外的任何位置。Tableau 2019.4 及更高版本中支持沙盒化扩展程序。默认情况下,如果为站点启用了扩展程序,则允许运行沙盒化扩展程序。

支持网络的扩展程序是 Web 应用程序,可在任何设置为 Web 服务器上的计算机上运行。其中包括本地计算机、域中的计算机以及第三方网站。由于支持网络的扩展程序可托管在第三方站点上,并且可访问仪表板中的数据,因此您需要仅允许信任的扩展程序。请参见测试支持网络的扩展程序以保障安全性

为了安全起见,您可以使用 Tableau Server 上仪表板扩展程序的设置来控制和限制允许运行的仪表板扩展程序。

  • 默认情况下,如果为站点启用了扩展程序,则允许运行沙盒化扩展程序。

  • 默认情况下,除非已显式将扩展程序添加到安全列表,否则不允许使用支持网络的扩展程序。

  • 默认情况下,只允许使用 HTTPS 协议的扩展程序,该协议可保障一条用于发送和接收数据的加密通道(唯一的例外情况是 http://localhost)。

  • 如果支持网络的扩展程序需要完整数据(访问基础数据),扩展程序将无法在 Tableau Server 上运行,除非您显式将扩展程序添加到安全列表,并授予扩展程序访问完整数据的权限。

控制仪表板扩展程序和对数据的访问

服务器管理员可控制一个全局设置,以允许服务器上所有站点的扩展程序。服务器管理员还可将扩展程序(包括沙盒化扩展程序)放在一个全局阻止列表上以防止它们运行(请参见阻止特定扩展程序)。默认情况下,服务器上已启用所有沙盒化扩展程序,但站点管理员可以选择覆盖默认值,并为站点禁止沙盒化扩展程序。

在服务器上更改启用扩展程序的全局设置

  1. 若要为服务器更改此设置,请转到“管理所有站点”>“设置”>“扩展程序”。如果服务器只有一个站点,则全局控制将出现在站点的设置页面上。

  2. 在“仪表板扩展程序”下,选中或清除“允许用户在此服务器上运行扩展程序”复选框。如果未选中此选项,则不允许运行扩展程序。此全局设置将覆盖每个站点的“允许用户在此站点上运行扩展程序”设置。

更改站点的默认设置

服务器管理员可控制是否为该站点启用扩展程序,以及是否允许在该站点上使用沙盒化扩展程序。也就是说,如果在服务器上启用了扩展程序,则默认站点设置允许在站点上运行沙盒化扩展程序,前提是未在服务器上明确阻止该扩展程序。默认站点设置允许出现在站点安全列表上的支持网络的扩展程序运行。如果默认情况下不允许沙盒化扩展程序,也可以将单个沙盒化扩展程序添加到安全列表中。

  1. 若要为站点更改这些设置,请转到“设置”>“扩展程序”

  2. 在“仪表板扩展程序”下,配置以下选项:

    • 允许用户在此站点上运行扩展程序
    • 允许沙盒化扩展程序运行,除非服务器管理员明确阻止了这些扩展程序

服务器管理员可在站点的安全列表中添加或移除支持网络的扩展程序和沙盒化扩展程序。将扩展程序添加到安全列表时,您可以控制是否允许扩展程序拥有完整数据的访问权限。请参见将扩展程序添加到安全列表并配置用户提示

标识扩展程序

作为 Web 应用程序,扩展程序与 URL 关联。您使用此 URL 来测试和验证扩展程序。您还使用 URL 将扩展程序添加到安全列表以允许完整数据访问权限,或将扩展程序添加到阻止列表来禁止任何访问。

如果有扩展程序清单文件 (.trex),即一个定义扩展程序属性的 XML 文件,您可以从 <source-location> 元素中找到 URL。

                    
<source-location>
    <url>https://www.example.com/myExtension.html</url>
</source-location>

				
                

如果已将扩展程序添加到仪表板,您可以从扩展程序属性中找到 URL。从“更多选项”菜单中,单击“关于”

“关于”对话框列出扩展程序的名称、扩展程序的作者、作者的网站,以及扩展程序的 URL。

将扩展程序添加到安全列表并配置用户提示

为了确保用户可使用受信任的支持网络的扩展程序,您可以将其添加到站点的安全列表。如果默认情况下未在站点上启用沙盒化扩展程序,也可以将沙盒化扩展程序添加到安全列表中。

在安全列表上,您可以控制是否授予扩展程序完整数据访问权限。默认情况下,当您向安全列表添加扩展程序时,该扩展程序仅有权访问摘要(或聚合)数据。您还可以控制用户是否将会看到请求他们允许扩展程序访问数据的提示。您可能会只是为了配置用户是否看到提示而需要将扩展程序添加到安全列表(例如,沙盒化扩展程序)。当您向用户隐藏提示时,扩展程序可立即运行。

  1. 转到“设置”>“扩展程序”

  2. “启用特定扩展程序”下,添加扩展程序的 URL。请参见标识扩展程序

  3. 选择以允许拒绝扩展程序完整数据访问权限

    完整数据访问权限是指访问视图中基础数据的权限,而不仅仅是访问汇总或聚合数据的权限。完整数据访问权限还包括有关其数据源的信息,例如连接、字段和表的名称。大多数情况下,如果将扩展程序添加到安全列表以使其可运行,您还将需要允许扩展程序在需要的情况下访问完整数据。在将扩展程序添加到安全列表之前,一定要测试支持网络的扩展程序以保障安全性

  4. 选择以显示隐藏用户提示

    默认情况下,当用户将扩展程序添加到仪表板,或在与包含扩展程序的视图交互时,他们将看到提示。提示告知用户有关扩展程序的详细信息以及扩展程序是否能访问完整数据。用户可以利用提示来允许或拒绝扩展程序运行。您可以向用户隐藏提示,从而允许扩展程序立即运行。

阻止特定扩展程序

默认全局策略允许所有沙盒化扩展程序,以及那些出现在站点安全列表中的支持网络的扩展程序。服务器管理员可通过将特定扩展程序添加到服务器的阻止列表来阻止这些扩展程序运行。如果扩展程序位于全局阻止列表上,则会覆盖站点安全列表上该扩展程序的任何设置。

  1. 若要将扩展程序添加到服务器的阻止列表,请转到“管理所有站点”>“设置”>“扩展程序”。在单站点安装上,阻止列表位于站点的“扩展程序”设置页面上。

  2. “阻止特定扩展程序”下,添加扩展程序的 URL。请参见标识扩展程序

测试支持网络的扩展程序以保障安全性

仪表板扩展程序是使用 Extensions API 与 Tableau 中的数据进行交互的 Web 应用程序。支持网络的仪表板扩展程序可以托管在域内部或外部的 Web 服务器上,并可以进行网络调用和访问 Internet 上的资源。由于这一点和一些潜在漏洞(例如跨站点脚本)的原因,因此,在用户在 Tableau Desktop 上的仪表板上使用扩展程序之前,以及在 Tableau Server 上允许扩展程序之前,您应对支持网络的仪表板扩展程序进行测试和审查。

检查源文件

仪表板扩展程序是 Web 应用程序,并包括各种 HTML、CSS 和 JavaScript 文件,以及一个定义扩展程序属性的 XML 清单文件 (*.trex)。在许多情况下,仪表板扩展程序的代码都在 GitHub 上公开提供,可在该处进行检查或下载。在清单文件 (*.trex) 中,您可以找到源位置(或指明扩展程序托管位置的 URL)、作者姓名,以及可联系以寻求支持的作者或公司网站。<source-location> 元素在 URL 中指定,<author> 元素指定可联系以寻求支持的组织名称和网站 (website="SUPPORT_URL")。网站是用户在扩展程序的“关于”对话框中看到的“获得支持”链接。

许多仪表板扩展程序引用外部 JavaScript 库,如第三方的 jQuery 库或 API 库。验证外部库的 URL 是否指向库的受信任位置。例如,如果连接器引用 jQuery 库,请确保该库在一个被认为标准和安全的网站上。

所有扩展程序都需要使用 HTTPS 协议 (https://) 来托管其扩展程序。您应检查扩展程序的源文件,确保对外部库的引用也使用 HTTPS 或者托管在扩展程序所在的同一网站上。如果扩展程序托管在 Tableau 所在的同一计算机 (http://localhost) 上,则无需使用 HTTPS。

尽可能确保了解代码的作用。尤其是,试着了解代码如何构建至外部站点的请求,以及请求中发送了什么信息。特别是,请检查任何用户提供的数据是否经过验证以防止跨站点脚本。

了解数据访问

Tableau Extensions API 提供了方法,可访问数据源中活动表和字段的名称、数据源连接的摘要说明,以及仪表板中的基础数据。如果扩展程序在视图中使用任何这些方法,扩展程序开发者必须在清单文件 (.trex) 中声明扩展程序需要完整数据权限。声明如下所示。

                    
<permissions>
   <permission>full data</permission>
</permissions>
                

Tableau 使用此声明在运行时向用户提供提示,使用户能够选择是否允许此访问权限。如果扩展程序使用这四种方法的其中任何一种,则在清单文件中未声明完整数据权限的情况下,扩展程序将会加载,但方法调用将失败。

有关扩展程序如何访问仪表板中的数据以及所使用的 JavaScript 方法的信息,请参见 Tableau Extensions API 中的访问基础数据(Link opens in a new window)。为了更好地了解扩展程序可找出哪些数据相关信息,您可以使用 DataSources(Link opens in a new window) 示例仪表板扩展程序(可从 Tableau Extensions API GitHub 存储库(Link opens in a new window)获得)来查看在调用 getDataSourcesAsync() 方法时公开了哪些数据。

在隔离环境中测试扩展程序

如有可能,请在与您的生产环境和用户计算机隔离的环境中测试仪表板扩展程序。例如,在所运行的 Tableau Server 版本并非用于生产的测试计算机或虚拟机上,将仪表板扩展程序添加到安全列表。

监视仪表板扩展程序创建的流量

测试支持网络的仪表板扩展程序时,请使用 Fiddler(Link opens in a new window)Charles HTTP 代理(Link opens in a new window)Wireshark(Link opens in a new window) 之类的工具检查扩展程序发出的请求和响应。确保您了解扩展程序所请求的内容。检查流量以确保扩展程序不读取与扩展程序的用途不直接相关的数据或代码。

感谢您的反馈! 提交反馈时出错。请重试,或向我们发送消息