為 OpenID Connect 設定 Tableau Cloud 或 TCM

本主題會介紹如何設定 Tableau Cloud 或 Tableau Cloud Manager (TCM),以使用 OpenID Connect (OIDC) 進行單一登入 (SSO)。這是多個步驟過程中的一步。以下主題會提供有關在 Tableau Cloud 或 TCM 中設定和使用 OIDC 的資訊。

  1. OpenID Connect 概觀

  2. 針對 OpenID Connect 設定身分識別提供者

  3. 為 OpenID Connect 設定 Tableau Cloud 或 TCM(您在此處)

附註:

需求

參數

  • 用戶端 ID:此值由 IdP 簽發,並指定已註冊的 Tableau Cloud 或 TCM 的識別碼。這可讓 IdP 知道驗證請求來自哪裡。

  • 用戶端密碼:這是 Tableau Cloud 或 TCM 用於驗證來自 IdP 的回應真實性的權杖。此值應妥善保管。

  • 設定網址:該值指定使用者經過驗證後 IdP 重新導向到的 URL。URL 必須包括主機與協定(例如,https://admin.okta.com/oauth2/default/.well-known/openid-configuration),但 Tableau 會提供 URL 端點。此 URL 會指定提供者設定探索文件的位置,該文件包含 OpenID 提供者中繼資料。

    附註:若 IdP 未提供設定 URL,請使用以 .well-known/openid-configuration 結尾的 URL。對於 Tableau Cloud,請考慮使用 Tableau REST API 中的 OpenID Connect 驗證方法(連結在新視窗開啟)來設定 OIDC。

可選參數

附註:僅適用於 Tableau Cloud。

以下可選參數可以使用 Tableau REST API 中的 OpenID Connect 驗證方法(連結在新視窗開啟)進行設定。

  • 提示: 提示使用者重新驗證並同意。預設情況下,使用者同意處於開啟狀態。

  • 自訂範圍:用於查詢 IdP 的自訂範圍使用者相關值。

  • 用戶端驗證:權杖端點驗證方法。預設值為 'client_secret_basic'。支援 'client_secret_post' 的值。

  • 基本 ACR 值:用於驗證的基本驗證內容參考類別值的清單。

  • 自願 ACR 值:用於驗證的自願驗證內容參考類別值的清單。

宣告

若要成功登入 Tableau Cloud 或 TCM,必須在 OpenID Connect (OIDC) IdP 中佈建指定使用者,然後將其對應到 Tableau Cloud 或 TCM 上的使用者帳戶。OIDC 依賴於宣告的方法與其他應用程式共用使用者帳戶屬性。Tableau Cloud 或 TCM 依賴 IdP 宣告將使用者帳戶從 IdP 對應到託管在 Tableau Cloud 或 TCM 上的帳戶。宣告包含使用者帳戶屬性,例如電子郵件、名稱等。若要瞭解 Tableau Cloud 或 TCM 如何將 IdP 宣告對應到使用者帳戶,請參閱 驗證概述

附註:宣告區分大小寫。

  • 使用者名稱:預設情況下,Tableau 期望 IdP 傳遞使用者名稱宣告。根據您的 IdP,您可能需要將 Tableau Cloud 設定為使用其他 IdP 聲宣告。附註:Tableau 中的使用者名稱是不可變的,且無法隨時更新。

  • 名稱宣告:可以指定名稱或既定名稱和姓氏來檢索使用者的 DisplayName。

  • 電子郵件宣告:(可選)從 2025 年 7 月開始,可以指定一個與使用者名稱不同的電子郵件地址。電子郵件地址宣告僅用於通知目的,不用於登入。

啟用 OIDC 單一登入

步驟 1:設定 OpenID Connect

對於 Tableau Cloud

  1. 以站台管理員身分登入到 Tableau Cloud 並選取「設定」>「驗證」

  2. 在「驗證」標籤上,按一下「新增設定」按鈕,選取「OpenID Connect (OIDC)」,然後輸入設定名稱。

  3. 請依照下列步驟設定 Tableau Cloud 以進行 OIDC 驗證:

    1. 在步驟 1 中,輸入 IdP 提供的所需資訊,包括用戶端 ID、用戶端密碼和設定 URL。

    2. 在步驟 2 中,複製將貼上到 IdP 入口網站中的 Tableau Cloud 重新導向 URL,以在使用者進行驗證後重新導向使用者。

    3. 在步驟 3 中,輸入宣告以確保使用者使用者名稱和顯示名稱的正確對應。

    4. 在步驟 4 中,如果您的 IdP 支援,可以選擇啟用單一登出 (SLO)。

    5. 在步驟 5 中,可以選擇使用者在存取內嵌檢視時進行驗證的方式:在單獨的彈出視窗中或使用內嵌 iFrame。

      附註:可以在「驗證」頁面的「嵌入視圖的預設驗證類型」區段下選取內嵌檢視的驗證類型(位於 OIDC 設定步驟下方)。

  4. 完成後,按一下「儲存變更」按鈕。

附註:編輯 OIDC 設定時,用戶端密碼是隱藏的,需要重新輸入才能儲存任何變更。

對於 TCM

  1. 以雲端管理員身分登入 TCM,並選取設定 > 驗證

  2. 在「驗證」索引標簽上,選取「啟用其他驗證方法」核取方塊。

  3. 從下拉式功能表中選取 OpenID Connect (OIDC),然後按一下設定(必需)下拉箭頭。

  4. 請依照下列步驟設定 TCM,以進行 OIDC 驗證:

    1. 在步驟 1 中,輸入 IdP 提供的所需資訊,包括用戶端 ID、用戶端密碼和設定 URL。

    2. 在步驟 2 中,複製將貼上到 IdP 入口網站中的 TCM 重新導向 URL,以便在使用者進行驗證後對其進行重新導向。

    3. 在步驟 3 中,輸入宣告以確保使用者使用者名稱和顯示名稱的正確對應。

    4. 在步驟 4 中,如果您的 IdP 支援,可以選擇啟用單一登出 (SLO)。

  5. 完成後,按一下「儲存變更」按鈕。

附註:編輯 OIDC 設定時,用戶端密碼是隱藏的,需要重新輸入才能儲存任何變更。

步驟 2:測試設定

我們強烈建議測試設定以避免任何遭受封鎖的情境。測試設定有助於確保在將使用者的驗證類型變更為 OIDC 之前已正確設定 OIDC。為成功測試設定,請確保至少有一個您可以以該身分登入的使用者,該使用者已在 IdP 中佈建並新增至 Tableau Cloud 或 TCM,並已設定 OIDC 驗證類型。

附註: 如果不確定宣告是什麼,請完成設定並測試設定。測試設定將產生一個新窗格,其中包含宣告對應詳情,包括使用者名稱和顯示名稱宣告。某些 IdP 可能會將電子郵件地址對應到 Tableau 使用者名稱。

對於 Tableau Cloud

  1. 在選取 OpenID Connect (OIDC) 的「驗證」索引標籤上,在步驟 6 下按一下「測試設定」按鈕。一個新窗格將會顯示,其中包含有關設定的詳情。

  2. 完成後,請按照以下步驟將使用者新增至站台,從而完成 OIDC 設定。

對於 TCM

  1. 在已選取 OpenID Connect (OIDC) 的情況下,在「驗證」索引標簽上,在步驟 5 下按一下「測試設定」按鈕。一個新窗格將會顯示,其中包含有關設定的詳情。

  2. 完成後,請按照以下步驟將使用者新增至租用戶,以完成 OIDC 設定。

步驟 3:將使用者新增至已啟用 OpenID Connect 的 Tableau 站台或 TCM

本節所述的步驟在 Tableau Cloud 或 TCM使用者頁面上執行。

  1. 完成上述步驟後,返回 Tableau Cloud 站台或 TCM。

  2. 從左側窗格中,選取「使用者」頁面。

  3. 請遵循下列主題之一中所述的程序:

疑難排解

使用下列部分對 Tableau Cloud 或 TCM 中的 OpenID Connect (OIDC) 問題進行疑難排解。

許多身分提供程式支援 OIDC 通訊協定。OIDC 通訊協定是一個開放和靈活的標準,因此,並非所有標準實現都是相同的。管理員在為 OIDC 設定 Tableau Cloud 或 TCM 時遇到的大多數問題都是不同身分提供程式實作 OIDC 的方式所導致的。若在 Tableau 中設定 OIDC 時遇到錯誤,我們建議您與 IdP 合作解決這些問題。

使用命令列登入

對於 Tableau Cloud

即使 Tableau Cloud 已設定為使用 OIDC,使用 tabcmdTableau REST API(連結在新視窗開啟)Tableau 資料擷取命令列公用程式(連結在新視窗開啟)(隨 Tableau Desktop 提供)登入 Tableau Cloud 時,也不會使用 OIDC 驗證。

對於 TCM

同樣,即使 TCM 已設定為使用 OIDC,登入 Tableau Cloud Manager REST API(連結在新視窗開啟) 時,也不會使用 OIDC 驗證。

登入失敗

在某些情況下,登入 Tableau Cloud 或 TCM 可能會失敗,並顯示下列訊息:

登入失敗:使用者 <username_from_IdP> 的身分提供程式驗證失敗。無法在 Tableau Cloud 中找到使用者。

此錯誤通常表示 Tableau 中儲存的使用者名稱與 IdP 提供的使用者名稱不相符。若要解決此問題,請確保使用者名稱值相符。例如,若 Jane Smith 的使用者名稱在 IdP 中儲存為「jsmith@example.com」,則其在 Tableau Cloud 或 TCM 中也必須儲存為「jsmith@example.com」。

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

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

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

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

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

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

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

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

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

  1. 登入 Tableau Cloud,然後按一下設定 > 驗證

  2. 在「控制驗證工作流程中的使用者存取」標題下,選取在驗證工作流程中啟用使用者屬性擷取核取方塊。

有關站台設定詳情,請參閱控制身份驗證工作流程中的使用者存取

步驟 2:在 JWT 中包含使用者屬性宣告

確保 JSON Web 權杖 (JWT) 包含使用者屬性。

附註:JWT 中的屬性長度限制為 4096 個字元,scopescp 屬性除外。若 JWT 中的屬性(包括使用者屬性)超過此限制,Tableau 將移除這些屬性,並改為傳遞 ExtraAttributesRemoved 屬性。然後,內容作者可以使用 ExtraAttributesRemoved 屬性建立計算,以確定在偵測到該屬性時如何向使用者顯示內容。

範例

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

{
"iss":"https://myidp.okta.com/oauth2/default,
"sub": user,
"aud": "Tableau",
"email": "fsuzuki@example.com",
"email_verified": true,
"name": "Fred Suzuki",
"region": "South"
}

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

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

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

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

附註:

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

範例

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

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

步驟 4:檢閱內容

檢閱並驗證內容。

範例

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

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

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

已知問題和限制

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

使用 Tableau REST API 的空白影像

Tableau REST API 請求查詢預覽影像(連結在新視窗開啟)查詢工作簿影像(連結在新視窗開啟)取得自訂檢視影像(連結在新視窗開啟)會產生空白影像。

限制

  • 不支援在已發佈資料來源 (.pds) 中使用使用者屬性函數。
  • 不支援在 Tableau Bridge 工作流程中使用使用者屬性函數。
感謝您的意見反應!已成功提交您的意見回饋。謝謝!