設定全伺服器的 SAML

在希望 Tableau Server 上的所有單一登入 (SSO) 使用者透過單一 SAML 身分識別提供者 (IdP) 進行驗證時設定伺服器範圍 SAML,或作為第一步在多網站環境中設定特定於網站的 SAML。

如果設定了伺服器範圍 SAML 並已準備好設定網站,請參閱設定特定於網站的 SAML

我們提供的 SAML 設定步驟假設:

  • 熟悉用於在 Tableau Server 上設定 SAML 驗證的選項,如SAML主題中所述。

  • 您已經驗證了您的環境符合 SAML 要求,並獲得了這些要求中描述的 SAML 憑證檔案。

開始之前

作為災難復原計劃的一部分,我們建議將憑證和 IdP 檔案的備份儲存在 Tableau Server 之外的安全位置。您上載到 Tableau Server 的 SAML 資產檔案將由用戶端檔案服務儲存並散發至其他節點。但是,這些檔案不會以可復原的格式儲存。請參閱Tableau Server Client File Service

附註:如果為 SSL 使用相同的憑證檔案,您可以選取使用現有憑證位置用於設定 SAML,並在該程序中稍後下載 IdP 中繼資料檔時將其新增到該目錄。有關詳情,請參閱 SAML 需求中的針對 SAML 使用 SSL 憑證和金鑰檔案

如果您在叢集中執行 Tableau Server,則 SAML 憑證、金鑰和中繼資料檔案會在您啟用 SAML 時自動發佈到所有節點。

執行此程序時,您必須將 SAML 憑證上載至 TSM,使其正確儲存並散發在伺服器組態中。在此程序中執行 TSM Web 介面的本機電腦上的瀏覽器必須可以使用 SAML 檔案。

如果您已依照上一節的建議,將 SAML 檔案收集並儲存到 Tableau Server 中,請從您複製檔案的 Tableau Server 電腦執行 TSM Web 介面。

如果您要從不同的電腦執行 TSM Web 介面,則必須先在本機複製所有 SAML 檔案,再繼續作業。請依照下列程序,瀏覽至本機電腦上的檔案,將其上載至 TSM。

  1. 在瀏覽器中開啟 TSM:

    https://<tsm-computer-name>:8850。有關詳情,請參閱登入到 Tableau 服務管理員 Web UI

  2. 「設定」索引標籤上,選取「使用者身分和存取」,然後選取「驗證方法」索引標籤。

    Tableau 服務管理員使用者身份驗證設定

  3. 對於「驗證方法」,選取「SAML」

  4. 在出現的「SAML」部分完成 GUI 中的步驟 1,同時輸入以下設定(不要選取核取方塊來為伺服器啟用 SAML):

    • Tableau Server 返回 URLTableau Server 使用者將存取的 URL,例如 https://tableau-server。

      不支援使用 https://localhost 或結尾有斜杠的 URL(例如,http://tableau_server/)。

    • SAML 實體 ID — 向 IdP 唯一識別您的 Tableau Server 安裝的實體 ID。

      可以在此處再次輸入您的 Tableau Server URL。如果打算稍後啟用特定於網站的 SAML,此 URL 還充當每個網站的唯一 ID 的基礎。

    • SAML 憑證和金鑰檔案 — 按一下「選取檔案」以上載各個檔案。

      若您使用的是 PKCS#8 複雜密碼保護的金鑰檔案,則必須使用 TSM CLI 來輸入複雜密碼:

      tsm configuration set -k wgserver.saml.key.passphrase -v <passphrase>

      在 GUI 中的步驟 1 中提供所需的資訊之後,GUI 中步驟 2 中的「下載 XML 中繼資料檔案」按鈕將變為可用。

  5. 現在,在 GUI 中選取步驟 1 上方的為伺服器啟用 SAML 驗證核取方塊。

  6. 完成其餘 SAML 設定。

    1. 對於步驟 2 和步驟 3,在 Tableau Server 和 IdP 之間交換中繼資料。(您可能需要在此處查閱 IdP 的文件。)

      選取「下載 XML 中繼資料檔案」,並指定檔案位置。

      如果要使用 AD FS 設定 SAML,您可以返回到「在 Tableau Server 上使用 AD FS 設定 SAML」的步驟 3:設定 AD FS 以接受來自 Tableau Server 的登入請求

      對於其他 IdP,轉到您的 IdP 帳戶,以將 Tableau Server 新增到其應用程式(作為服務提供者),並根據情況提供 Tableau 中繼資料。

      按照 IdP 的網站或文件中的說明進行操作,下載 IdP 的中繼資料。將 .xml 檔案儲存到包含 SAML 憑證和金鑰檔的同一位置。例如:

      C:\Program Files\Tableau\Tableau Server\SAML\idp-metadata.xml

    2. 返回到 TSM Web UI。在 GUI 中的步驟 4 中,輸入 IdP 中繼資料檔案的路徑,然後按一下「選取檔案」

      螢幕擷取畫面醒目提示您上傳 SAML IDP 中繼資料的 TSM UI 區域

    3. 對於步驟 5,在某些情況下,可能需要變更 Tableau Server 設定中的斷言值以符合 IdP 傳遞的斷言名稱。

      您可以在 IdP 的 SAML 設定中找到判斷提示名稱。如果判斷提示名稱是由 IdP 傳遞而來,則您必須更新 Tableau Server 以使用相同的判斷提示值。

      提示:「判斷提示」是關鍵 SAML 元件,而對應判斷提示的概念起初可能難以捉摸。將這一概念放在表格式資料的上下文中可能有所幫助,在該上下文中,判斷提示(屬性)名稱相當於表中的列標題。您輸入該「標題」名稱,而不是可能出現在該列中的值的範例。

    4. 對於步驟 6,選取要在其中為使用者提供單一登入體驗的 Tableau 應用程式。

      附註:執行 Tableau Mobile 應用程式 19.225.1731 版及更新版本的裝置,會忽略停用行動存取的選項。若要針對執行該等版本的裝置停用 SAML 驗證,您必須在 Tableau Server 上停用 SAML 做為用戶端登入選項。

    5. 對於 SAML 登出重新導向,如果 IdP 支援單一登出 (SLO),請輸入您希望使用者登出後將其重新導向前往的頁面(相對於您為 Tableau Server 傳回 URL 輸入的路徑)。

    6. (可選)對於步驟 7,請執行下列操作:

      • AuthNContextClassRef 屬性新增一個以逗號分隔的值。有關如何使用此屬性的詳情,請參閱 SAML 相容性說明和要求

      • 如果不將域作為使用者名稱的一部分傳送,則指定網域屬性(即,domain\username )。有關更多資訊,請參閱 執行多個網域

    7. (可選)對於步驟 8,選取在 SAML 驗證期間啟用使用者屬性擷取核取方塊。有關使用者屬性的詳情,請參閱使用使用者屬性自訂和控制資料存取

  7. 輸入設定資訊後,按一下「儲存暫止的變更」

  8. 按一下頁面頂端的「暫止的變更」

    Tableau Server 管理員工具列,表示存在暫止的變更。

  9. 按一下「套用變更並重新啟動」

開始之前

在開始之前,請執行以下動作:

  • 前往 IdP 的網站或應用程式,並匯出 IdP 的中繼資料 XML 檔案。

    確認您從 IdP 獲得的中繼資料 XML 是否包括繫結設定為 HTTP-POSTSingleSignOnService 元素,如以下範例中所示:

    <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://SERVER-NAME:9031/idp/SSO.saml2"/>

  • 收集憑證檔案,並置於 Tableau Server 上。

    在 Tableau Server 資料夾中,建立一個名為 SAML 的新資料夾,並將 SAML 憑證檔案的副本放在該資料夾中。例如:

    C:\Program Files\Tableau\Tableau Server\SAML

    這是建議的位置,因為執行 Tableau Server 的使用者帳戶具有存取此資料夾的必要權限。

步驟 1:設定傳回 URL、SAML 實體 ID,並指定憑證和金鑰檔案

  1. 開啟命令提示字元殼層,並設定伺服器的 SAML 設定(以您的環境路徑及檔案名稱取代預留位置的值)。

    tsm authentication saml configure --idp-entity-id https://tableau-server --idp-metadata "C:\Program Files\Tableau\Tableau Server\SAML\<metadata-file.xml>" --idp-return-url https://tableau-server --cert-file "C:\Program Files\Tableau\Tableau Server\SAML\<file.crt>" --key-file "C:\Program Files\Tableau\Tableau Server\SAML\<file.key>"

    有關詳情,請參閱 tsm authentication saml configure

  2. 如果您使用採用複雜密碼保護的 PKCS#8 金鑰,請如下輸入複雜密碼:

    tsm configuration set -k wgserver.saml.key.passphrase -v <passphrase>

  3. 如果尚未在 Tableau Server 上啟用 SAML;例如,您是第一次設定它,或者您已經停用它,請立即啟用它:

    tsm authentication saml enable

  4. 套用變更:

    tsm pending-changes apply

    如果擱置組態需要重新啟動伺服器,pending-changes apply 命令將顯示提示,讓您知道即將重新啟動。即使伺服器已停止,也會顯示提示,但在這種情況下不會重新啟動。您可以使用 --ignore-prompt 選項隱藏提示,但這樣做不會改變重新啟動行為。如果變更不需要重新啟動,則不會出現提示即可套用變更。有關詳情,請參閱 tsm pending-changes apply

步驟 2:產生 Tableau Server 中繼資料並設定 IdP

  1. 執行以下命令為 Tableau Server 產生所需的 XML 中繼資料檔案。

    tsm authentication saml export-metadata -f <file-name.xml>

    您可以指定一個檔案名,或者省略 -f 參數來建立一個名為 samlmetadata.xml 的預設檔案。

  2. 在您的 IdP 網站上或在其應用程式中:

    • 新增 Tableau Server 作為服務提供程式。

      有關如何執行此操作的資訊,請參閱 IdP 的文件集。在將 Tableau Server 設定為服務提供程式的過程中,您將匯入透過 export-metadata 命令組建的 Tableau Server 中繼資料檔案。

    • 確認您的 IdP 使用 username 作為屬性來驗證使用者。

第 3 步:符合判斷提示

在某些情況下,您可能需要變更 Tableau Server 設定中的判斷提示值,以符合由 IdP 傳遞的判斷提示名稱。

您可以在 IdP 的 SAML 設定中找到判斷提示名稱。如果判斷提示名稱是由 IdP 傳遞而來,則您必須更新 Tableau Server 以使用相同的判斷提示值。

提示:「判斷提示」是關鍵 SAML 元件,而對應判斷提示的概念起初可能難以捉摸。將這一概念放在表格式資料的上下文中可能有所幫助,在該上下文中,判斷提示(屬性)名稱相當於表中的列標題。您輸入該「標題」名稱,而不是可能出現在該列中的值的範例。

下表顯示預設的判斷提示值和儲存值的設定金鑰。

判斷提示預設值主要
使用者名稱usernamewgserver.saml.idpattribute.username
顯示名稱displayName

Tableau 不支援此屬性類型。

電子郵件email

Tableau 不支援此屬性類型。

網域(預設不對應)wgserver.saml.idpattribute.domain

若要變更指定值,請使用適當的機碼值組執行 tsm configuration set 命令。

例如,若要將 username 判斷提示變更為 name 值,請執行以下命令:

tsm configuration set -k wgserver.saml.idpattribute.username -v name

tsm pending-changes apply

或者,可以使用 tsm authentication saml map-assertions 來變更指定值。

例如,要將網域判斷提示設定為名為 domain 的值,並將其值指定為「example.myco.com」,請執行以下命令:

tsm authentication saml map-assertions --domain example.myco.com

tsm pending-changes apply

選用:讓用戶端類型停用 SAML

預設情況下,Tableau Desktop 和 Tableau Mobile 應用程式皆允許使用 SAML 驗證。

如果您的 IdP 不支援此功能,您可以使用以下命令為 Tableau 用戶端停用 SAML 登入。

tsm authentication saml configure --desktop-access disable

tsm authentication saml configure --mobile-access disable

附註:執行 Tableau Mobile 應用程式 19.225.1731 版及更新版本的裝置會忽略 --mobile-access disable 選項。若要針對執行該等版本的裝置停用 SAML 驗證,您必須在 Tableau Server 上停用 SAML 做為用戶端登入選項。

tsm pending-changes apply

可選:新增 AuthNContextClassRef 值

AuthNContextClassRef 屬性新增一個以逗號分隔的值。有關如何使用此屬性的詳情,請參閱 SAML 相容性說明和要求

若要設定此屬性,請執行以下命令:

tsm configuration set -k wgserver.saml.authcontexts -v <value>

tsm pending-changes apply

測試設定

  1. 在 Web 瀏覽器中,開啟一個新頁面或標籤,並輸入 Tableau Server URL。

    空白的 Web 瀏覽器視窗在網址列中顯示「http://tableau_server」。

    瀏覽器會將您重定向到 IdP 的登入表單。

  2. 輸入您的單一登入使用者名和密碼。

    SAML 登入對話方塊,其中包含使用者名稱和密碼欄位。

    IdP 將驗證您的認證,並將您重定向回 Tableau Server 開始頁面。

使用使用者屬性自訂和控制資料存取

使用者屬性是由您的組織定義的使用者中繼資料。使用者屬性可用於在典型的基於屬性的存取控制 (ABAC) 授權模型中確定存取權。使用者屬性可以是使使用者個人資料的任何方面,包括職位角色、部門成員資格、管理層級等。它們也可能與執行階段使用者內容相關聯,例如使用者的登入位置或其語言喜好設定。

透過在工作流程中包含使用者屬性,可以透過資料存取和個人化來控制和自訂使用者體驗。

  • 資料存取:使用者屬性可用於強制執行資料安全性原則。這確保使用者只能看到他們被授權查看的資訊。
  • 個人化:透過傳遞位置和角色等使用者屬性,可以自訂內容以僅顯示與存取內容的使用者相關的資訊,從而讓他們能夠更輕鬆地找到所需的資訊。

傳遞使用者屬性的步驟摘要

在工作流程中啟用使用者屬性的流程總結如下:

  1. 啟用使用者屬性設定
  2. 在聲明中包含使用者屬性
  3. 確保內容作者包含使用者屬性函數和相關篩選器
  4. 檢閱內容

步驟 1:啟用使用者屬性設定

出於安全性目的,僅當伺服器管理員啟用使用者屬性設定時,才會在驗證工作流程中驗證使用者屬性。

  1. 在瀏覽器中開啟 TSM:

    https://<tsm-computer-name>:8850。有關詳情,請參閱登入到 Tableau 服務管理員 Web UI

  2. 「設定」索引標籤上,選取「使用者身分和存取」>「驗證方法」

  3. 「驗證方法」下的下拉式功能表中選取「SAML」

  4. 步驟 8下,選取「在 SAML 驗證期間啟用使用者屬性擷取」核取方塊。

  5. 完成後,請執行以下操作:

    1. 按一下「儲存暫止的變更」

    2. 按一下頁首的 「擱置的變更」

    3. 按一下 「套用變更並重新啟動」

步驟 2:在聲明中包含使用者屬性

確保聲明包含使用者屬性。

附註:SAML 回應中的屬性受 4096 個字元限制的限制,scpscope 屬性除外。如果回應中的屬性(包括使用者屬性)超過此限制,Tableau 會刪除屬性並改為傳遞 ExtraAttributesRemoved 屬性。然後,內容作者可以使用 ExtraAttributesRemoved 屬性建立計算,以確定在偵測到該屬性時如何向使用者顯示內容。

範例

假設您有一位員工 Fred Suzuki,他是南部區域的經理。您想要確保 Fred 在檢閱報告時,只能看到南部區域的資料。在這種情況下,可以在 SAML 回應中包括「區域使用者」屬性,如下面的範例中所示。

<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
	<saml;Issuer">https://myidp.okta.com/saml</saml:Issuer">
   <saml;Subject">
	  <saml:NameId Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"fsuzuki@example.com</saml:NameID">
   <saml:AttributeStatement xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
  		<saml:Attribute Name="Region" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
  			<saml:AttributeValue">South</saml:AttributeValue">
    	</saml:Attribute">
   </saml:AttributeStatement">
</saml:Assertion">

步驟 3:確保內容作者包含屬性函數

確保內容作者包含使用者屬性函數和相關篩選器,以控制內容中可以顯示哪些資料。要確保將使用者屬性判斷提示傳遞給 Tableau,內容必須包含以下使用者屬性函數之一:

  • USERATTRIBUTE('attribute_name')
  • USERATTRIBUTEINCLUDES('attribute_name', 'expected_value')

內容作者使用的函數取決於使用者屬性預期傳回的是單一值還是多個值。有關這些函數和每個函數範例的詳細資訊,請參閱 Tableau 說明中的使用者函數(連結在新視窗開啟)

附註:

  • 在 Tableau Desktop 或 Tableau Cloud 中製作時,無法預覽包含這些函數的內容。函數將傳回 NULL 或 FALSE。為確保使用者函數按預期運作,我們建議作者在提供內容後檢閱這些函數。
  • 為確保內容按預期呈現,內容作者可以考慮包含一個使用 ExtraAttributesRemoved 的計算,該屬性可 1) 檢查是否存在此屬性,以及 2) 若存在此屬性,則確定如何處理內容,例如顯示訊息。只有 SAML XML 中的屬性超過 4096 個字元時,Tableau 才會新增 ExtraAttributesRemoved 屬性並移除所有其他屬性(scpscope 除外)。這樣做是為了確保最佳效能並遵守儲存限制。

範例

接續上方步驟 2:在聲明中包含使用者屬性中介紹的範例,要將「區域」使用者屬性聲明傳遞給工作簿,作者可以包含 USERATTRIBUTEINCLUDES。例如,USERATTRIBUTEINCLUDES('Region', [Region]) 中,「Region(區域)」是使用者屬性,「[Region](區域)」是資料中的一欄。使用此新計算,作者可以建立一個包含經理和銷售資料的資料表。新增計算後,工作簿會按預期傳回「False」值。

要僅在內嵌工作簿中顯示與南部區域關聯的資料,作者可以建立一個篩選器,並將其自訂為南部區域為「True」時顯示值。套用篩選器後,工作簿會按預期變為空白,因為函數傳回「False」值,並且篩選器已自訂為僅顯示「True」值。

步驟 4:檢閱內容

檢閱並驗證內容。

範例

完成上面步驟 3:確保內容作者包含屬性函數中的範例後,您可以看到檢視中的銷售資料已針對 Fred Suzuki 進行自訂,因為他的使用者內容是南部區域。

工作簿中顯示的區域的經理應該會看到與其區域關聯的值。例如,西部區域的 Sawdie Pawthorne 會看到特定於其區域的資料。

工作簿中未顯示其區域的經理會看到一個空白工作簿。

已知問題和限制

使用使用者屬性函數時,應考慮一些已知問題和限制。

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