在 Tableau Server 中管理儀表板擴展程式

儀表板擴展程式是一些 Web 應用程式,這些應用程式執行在自訂儀表板區域中,並可使用 Tableau Extensions API(連結在新視窗開啟) 與儀表板的其他部分交互。儀表板擴展程式使使用者能夠直接在 Tableau 中與其他應用程式中的資料交互。

附註:您必須是伺服器管理員才能在伺服器上啟用儀表板擴展程式,或阻止特定擴展程式執行。您必須是伺服器管理員才能將擴展程式新增到允許清單,以及控制擴展程式可存取的資料類型。伺服器管理員還可設定網站上的使用者在儀表板中新增或查看擴展程式時是否將看到提示。如需擴充功能安全性與建議部署選項資訊,請參閱擴展程式安全性 - 部署的最佳實踐(連結在新視窗開啟)

有關在 Tableau 中使用儀表板擴展程式的資訊,請參閱使用儀表板擴展程式(連結在新視窗開啟)

在 Tableau Server 上執行擴展程式之前

Tableau 支援兩種類型的儀表板擴充:啟用網路的擴充(可託管在位於本地網路內部或外部且具有對 Web 的完全存取權限的 Web 伺服器上),以及沙箱化擴充(在受保護的環境中執行且無法存取網路上的任何其他資源或服務)。

附註:從版本 2021.1.0 開始,Tableau 透過 Einstein Discovery 儀表板擴充功能支援與 Einstein Discovery 進行整合。這是一個特殊的擴充功能,可以存取 Salesforce.com 中的資料,並且預設為允許。它不被視為啟用網路的擴充或沙箱化的擴充。更多有關 Einstein Discovery 整合的資訊,請參閱Tableau Server 版本說明(連結在新視窗開啟)

沙箱化擴充由 Tableau 託管,並採用 W3C 標準(例如內容安全性原則 (CSP)),以確保擴充無法在託管 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 伺服器上,並可以進行網路呼叫以及存取網際網路上的資源。由於這一點和一些潛在漏洞(例如跨網站指令碼)的原因,在使用者在 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 中的存取基礎資料(連結在新視窗開啟)。為了更好地瞭解擴展程式可找出哪些資料相關資訊,您可以使用 DataSources(連結在新視窗開啟) 範例儀表板擴展程式(可從 Tableau Extensions API GitHub 存放庫(連結在新視窗開啟)獲得)來查看在調用 getDataSourcesAsync() 方法時公開了哪些資料。

在隔離環境中測試擴展程式

如有可能,請在與您的生產環境和使用者電腦隔離的環境中測試儀表板擴展程式。例如,在所執行的 Tableau Server 版本並非用於生產的測試電腦或虛擬機器上,將儀表板擴展程式新增到允許清單。

監視儀表板擴展程式建立的流量

測試啟用網路的儀表板擴充時,請使用 Fiddler(連結在新視窗開啟)Charles HTTP Proxy (連結在新視窗開啟)Wireshark(連結在新視窗開啟) 之類的工具檢查擴充發出的要求和回應。確保您瞭解擴展程式所請求的內容。檢查流量以確保擴展程式不讀取與擴展程式的用途不直接相關的資料或代碼。

感謝您的意見反應!已成功提交您的意見回饋。謝謝!