受信任的驗證
將 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://<server_name>/trusted
,而非 https://<server_name>
)傳送 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://<server_name>/trusted/<unique_ticket>/views/<view_name>
)。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 或另一層網路加密來部署受信任票證。