在 Tableau Cloud 中管理儀表板和視覺效果擴充功能
儀表板擴展程式是一些 Web 應用程式,這些應用程式執行在自訂儀表板區域中,並可使用 Tableau Extensions API(連結在新視窗開啟) 與儀表板的其他部分交互。儀表板擴展程式使使用者能夠直接在 Tableau 中與其他應用程式中的資料交互。與儀表板擴充功能一樣,視覺效果擴充功能是使用 Tableau 擴充功能 API 並允許開發人員建立新視覺效果類型的 Web 應用程式。Tableau 使用者可以透過工作表「標記」卡存取視覺效果擴充功能。
附註:您必須是站台管理員才能將儀表板和視覺效果擴充功能新增至允許清單,並控制擴充功能可存取的資料類型。站台管理員還可以設定站台上的使用者在新增或檢視擴充功能時是否看到提示。如需擴充功能安全性和建議部署選項的資訊,請參閱擴充功能安全性:部署的最佳做法(連結在新視窗開啟)。
有關在 Tableau 中使用儀表板擴充功能的資訊,請參閱使用儀表板擴充功能。
有關使用視覺效果擴充功能的資訊,請參閱將視覺效果擴充功能新增至工作表。
尋找 Tableau Server 嗎?查詢在 Tableau Server 中管理儀表板擴展程式(連結在新視窗開啟)。
在 Tableau Cloud 上執行擴展程式之前
Tableau 支援兩種託管擴充功能的方式:
- 支援網路的擴充功能,託管在本機網路內部或外部的 Web 伺服器上。啟用網路的擴充功能可以完整存取 Web。
- 沙箱化擴充功能,在受保護的環境中執行,無法存取 Web 上的任何其他資源或服務。
附註:從三月開始,版本 2021.1 的Tableau 支援透過 Einstein Discovery 儀表板擴充功能與 Einstein Discovery 整合。這是一個特殊的擴充功能,可以存取 Salesforce.com 中的資料,並且預設為允許。它不被視為啟用網路的擴充或沙箱化的擴充。更多有關 Einstein Discovery 整合的資訊,請參閱設定 Einstein Discovery 整合(連結在新視窗開啟) 。
沙箱化擴充由 Tableau 託管,並採用 W3C 標準(例如內容安全性原則 (CSP)),以確保擴充無法在託管 Tableau Server 之外進行網路呼叫。沙箱化擴充可以查詢儀表板中的資料,但不能將該資料傳送到沙箱以外的任何位置。Tableau 2019.4 及更新版本中支援沙箱化擴充。預設情況下,如果為網站啟用擴充,則允許執行沙箱化擴充。
支援網路的擴充功能是 Web 應用程式,可以在任何設定為 Web 伺服器的電腦上執行。其中包括本機電腦、網域中的電腦以及協力廠商網站。由於支援網路的擴充功能可以託管在協力廠商網站上,並且可以存取工作簿中的資料,因此您需要僅允許您信任的擴充功能。請參閱測試啟用網路的擴充,以保障安全性.
為了安全起見,您可以使用 Tableau Cloud 上擴充功能的設定來控制和限制允許執行的擴充功能。
預設情況下,如果為網站啟用擴充,則允許執行沙箱化擴充。
預設情況下,不允許任何支援網路的擴充功能,除非它們已明確新增至允許清單。
預設情況下,只允許使用 HTTPS 協定的擴展程式,該協定可保障一條用於傳送和接收資料的加密通道(唯一的例外情況是
http://localhost
)。若支援網路的擴充功能需要完整資料(存取完整資料),則該擴充功能無法在 Tableau Cloud 上執行,除非明確將該擴充功能新增至允許清單並授予該擴充功能對完整資料的存取權。
控制擴充功能和對資料的存取
網站管理員可控制是否為該網站啟用擴充,以及是否在網站上允許沙箱化擴充。預設網站設定允許在網站上執行沙箱化擴充,前提是未在伺服器上特別封鎖該擴充。預設網站設定允許執行網站允許清單上顯示的啟用網路的擴充。如果預設情況下不允許沙箱化擴充,則也可以將個別的沙箱化擴充新增到允許清單中。
若要為網站變更這些設定,請轉到「設定」>「擴展程式」。
在「儀表板和視覺效果擴充功能」下,設定下列選項:
- 讓使用者在此站點上執行擴充功能
- 允許沙箱化擴充執行,除非伺服器管理員專門將其封鎖
網站管理員可在網站的允許清單中新增或移除啟用網路且沙箱化的擴充。將擴展程式新增到允許清單時,您可以控制是否允許擴展程式擁有完整資料的存取權限。請參閱將擴展程式新增到允許清單並設定使用者提示。
識別擴充功能的 URL
作為 Web 應用程式,擴展程式與 URL 關聯。可以使用此 URL 來測試和驗證擴充功能。您還使用 URL 將擴展程式新增到允許清單以允許完整資料存取權限,或將擴展程式新增到阻止清單來停用任何存取。
來自資訊清單檔
如果有擴展程式清單檔案 (.trex
),即一個定義擴展程式屬性的 XML 檔案,您可以從 <source-location>
元素中找到 URL。
<source-location>
<url>https://www.example.com/myExtension.html</url>
</source-location>
來自 Tableau Exchange
若您從 Tableau Exchange 新增或下載了擴充功能,則可以在 Exchange 上找到該擴充功能的 URL。開啟擴充功能的動態磚,在「技術規格」下,尋找「託管於」標題下的 URL。
使用「關於」對話方塊識別儀表板擴充功能
如果已將擴展程式新增到儀表板,您可以從擴展程式屬性中找到 URL。從「更多選項」功能表中,按一下「關於」。
「關於」對話方塊會列出擴充功能的名稱、作者、作者的網站以及擴充功能的 URL。
將擴展程式新增到允許清單並設定使用者提示
為確保使用者可使用受信任的啟用網路的擴充,您可以將其新增到網站的允許清單。如果預設情況下未在網站上啟用沙箱化擴充,您也可以將沙箱化擴充新增到允許清單中。
在允許清單上,您可以控制是否授予擴展程式完整資料存取權限。預設情況下,您將擴充新增到安全清單時,擴充只能夠存取摘要(或彙總)資料。您還可以控制使用者是否看到要求他們允許擴充功能存取資料的提示。您可能想要將擴充功能新增至允許清單(例如沙箱化擴充功能),以便您可以設定使用者是否看到提示。當您向使用者隱藏提示時,擴展程式可立即執行。
轉到「設定」>「擴展程式」。
在「啟用特定擴展程式」下,新增擴展程式的 URL。請參閱識別擴充功能的 URL。
提示:可以在 URL 中使用句點和星號 (
.*
) 作為萬用字元,以允許特定網域或位置中的所有擴充功能。例如,要允許 example.com 下的網域中使用連接埠 8080 的所有擴充功能,可以新增 URL:https://example.com:8080/.*
。有關詳細資訊,請參閱在允許清單 URL 中使用規則運算式。選取以允許或拒絕擴展程式完整資料存取權限。
完整資料存取權限是指存取檢視中基礎資料的使用權限,而不僅僅是存取匯總或彙總資料的使用權限。完整資料存取權限還包括有關其資料來源的資訊,例如連線、欄位和表的名稱。通常,若您要將要使用的擴充功能新增至允許清單,您還需要允許該擴充功能存取完整資料(若該擴充功能需要)。在將擴展程式新增到允許清單之前,一定要測試啟用網路的擴充,以保障安全性。
選取以顯示或隱藏使用者提示。
使用者將儀表板擴充功能新增至儀表板、將視覺效果擴充功能新增至工作表或與具有擴充功能的檢視互動時,預設情況下使用者會看到提示。提示告知使用者有關擴展程式詳情以及擴展程式是否能存取完整資料。使用者可以利用提示來允許或拒絕擴展程式執行。您可以向使用者隱藏提示,從而允許擴展程式立即執行。
在允許清單 URL 中使用規則運算式
一般而言,將擴充功能新增至允許清單時,應使用該擴充功能的特定 URL。但是,有時您可能希望允許從同一網域和位置託管的多個擴充功能。在這種情況下,在 URL 中使用萬用字元會很方便。擴充功能設定支援使用規則運算式。
規則運算式 | 說明 |
. | 句點 (.) 是萬用字元,可用於匹配任何字元。若需要在 URL 中指定句點 (.) 而不是萬用字元,則可以使用反斜線 (\. ) 逸出該字元。 |
* | 星號 (*) 是一個數量詞,可指定前一個字元的一個或多個執行個體。 |
使用萬用字元時請務必小心,以免允許清單過於寬鬆,從而無意中允許存取不應存取的擴充功能。
下表顯示了在 URL 中使用規則運算式的一些範例。請注意,這些範例不顯示擴充功能的通訊協定和完整 URL。僅允許使用 HTTPS 通訊協定的擴充功能(http://localhost 除外)。
要指定... | 範例 | 指定 |
網域範圍 | .*\.example.com | example.com 下的所有子網域。 |
所有連接埠 | example.com:.* | 允許從 example.com 上的所有連接埠存取擴充功能。 |
網域、連接埠和路徑下的所有擴充功能 | example.com:8080/xyz/.* | 允許存取 example.com 網域下使用連接埠 8080 且位於 zyz 的所有擴充功能。 |
一系列網域的所有連接埠 | .*\.example.com:.* | 允許存取 example.com 下所有子網域的所有連接埠上的擴充功能。 |
網域和路徑下與模式相符的所有擴充功能 | example.com/t.c/.* | 允許存取在資料夾下 example.com 上執行的與模式 t.c 相符的擴充功能。例如,tic、tac、toc。 |
測試啟用網路的擴充,以保障安全性
儀表板和視覺效果擴充功能是使用擴充功能 API 與 Tableau 中的資料互動的 Web 應用程式。支援網路的擴充功能可以託管在網域內部或外部的 Web 伺服器上,並且可以進行網路呼叫以及存取網際網路上的資源。由於存在潛在的漏洞(例如跨站台指令碼),在 Tableau Desktop 中使用支援網路的擴充功能之前以及在 Tableau Cloud 上允許擴充功能之前,應對支援網路的擴充功能進行測試和審查。
檢查原始檔案
儀表板和視覺效果擴充功能是 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 擴充功能 API 提供的方法可以存取資料來源中使用中表和欄位的名稱、資料來源連線的摘要說明以及工作表中的完整資料。如果擴展程式在檢視中使用任何這些方法,擴展程式開發者必須在清單檔 (.trex
) 中聲明擴展程式需要完整資料使用權限。聲明如下所示。
<permissions>
<permission>full data</permission>
</permissions>
Tableau 會使用此聲明在執行時向使用者提供提示,讓他們可以選擇允許此存取。若擴充功能使用這些方法中的任何一種,而未在資訊清單檔中聲明完整資料權限,則擴充功能會載入,但方法呼叫會失敗。
有關擴展程式如何存取儀表板中的資料以及所使用的 JavaScript 方法的資訊,請參閱 Tableau Extensions API 中的存取基礎資料(連結在新視窗開啟)。為了更好地瞭解擴展程式可找出哪些資料相關資訊,您可以使用 DataSources(連結在新視窗開啟) 範例儀表板擴展程式(可從 Tableau Extensions API GitHub 存放庫(連結在新視窗開啟)獲得)來查看在調用 getDataSourcesAsync()
方法時公開了哪些資料。
在隔離環境中測試擴展程式
若可能,請在與生產環境和使用者電腦隔離的環境中測試擴充功能。例如,將儀表板或視覺效果擴充功能新增至執行不用於生產的 Tableau Cloud 版本的測試電腦或虛擬機器上的允許清單。
監視儀表板擴展程式建立的流量
測試支援網路的擴充功能時,請使用 Fiddler(連結在新視窗開啟)、Charles HTTP Proxy(連結在新視窗開啟) 或 Wireshark(連結在新視窗開啟) 等工具來檢查擴充功能發出的請求和回應。確保您瞭解擴展程式所請求的內容。檢查流量以確保擴展程式不讀取與擴展程式的用途不直接相關的資料或代碼。