設定和管理身分集區
要建立和管理身分集區,需要使用 Tableau REST OpenAPI 以程式控制方式對身分集區方法(連結在新視窗開啟)進行呼叫。要在身分集區中新增或管理使用者,可以直接或透過 Tableau REST API 使用 Tableau Server 使用者介面 (UI)。
身分集區設定過程可總結為以下步驟。
- 設定 Tableau Server 並建立工作階段。
- 設定新的本機身分存放區執行個體以佈建使用者。附註: 可以跳過此步驟以使用現有的本機身分存放區或在 Tableau Server 設定期間在 TSM 中設定的外部身分存放區。
- 設定驗證,以使用 OpenID Connect (OIDC) 對使用者進行 Tableau Server 驗證。
- 建立身分集區,該身分集區使用您設定的身分識別存放區和 OIDC 驗證。
- 使用 Tableau Server UI 或 REST API 將使用者新增到身分集區,以讓使用者能夠登入 Tableau Server。
附註: 可以使用Salesforce 開發人員的 Postman 工作空間身分集區(連結在新視窗開啟) 中的 Postman 集合來了解、開發和測試本主題中描述的方法。
必要條件
在開始設定身分集區之前,必須滿足以下要求:
- 已設定與 OIDC 身分識別提供者 (IdP) 的整合,例如 Okta
- 執行的是 Tableau Server 2023.1 或更高版本
- 若執行的是從版本 2021.4 或更早版本升級後的 Tableau Server,已執行身分識別移轉(連結在新視窗開啟)
入門指南
第 1 步:設定 Tableau Server 並建立工作階段
啟用與設定身分集區相關的變更需要一次性 TSM 設定以及工作階段和主機變數的宣告。
在叢集中的初始節點(安裝 TSM)上以管理員身分開啟命令提示字元。
執行以下命令:
tsm configuration set -k gateway.external_url -v http://<host>
tsm pending-changes apply
例如,可以執行以下命令來設定 Tableau Server http://myco:
tsm configuration set -k gateway.external_url -v http://myco
tsm pending-changes apply
有關詳情,請參閱 gateway.external_url(連結在新視窗開啟)。
(可選)執行以下命令為初始集區(已設定 TSM)新增描述:
tsm configuration set -k wgserver.authentication.identity_pools.default_pool_description -v "<description>"
tsm pending-changes apply
例如,可以執行以下命令來新增「MyCo 員工登入」描述:
tsm configuration set -k wgserver.authentication.identity_pools.default_pool_description -v "Sign-in for MyCo employees"
tsm pending-changes apply
有關詳情,請參閱 wgserver.authentication.identity_pools.default_pool_description(連結在新視窗開啟)。
以管理員身分登入 Tableau Server,並執行以下動作:
- 前往瀏覽器的開發人員工具,並巡覽到應用程式的 cookie。
- 注意 workgroup_session_id 值。
例如,若在 Chrome 中工作,請右鍵按一下 Tableau Server 首頁上的任意位置,右鍵按一下並選取檢查。按一下頂部巡覽窗格中的應用程式,然後按一下左側巡覽窗格中的 Cookie。在 Cookie 下,按一下您的 Tableau Server 名稱,例如 http://myco.com,並注意中央窗格中的 workgroup_session_id 值。
在您用來透過 Tableau REST OpenAPI 發出身分集區請求的指令碼或 API 開發人員工具中,執行以下動作:
- 將 workgroup_session_id 值新增為全域變數。
- 此外,將連接埠 80、主機(您的 Tableau Server URL)和通訊協定(HTTP 或 HTTPS)新增到全域變數。
例如,下表顯示了 Tableau Server http://myco 所需的全域變數。
全域變數 | 值 |
---|---|
工作群組工作階段 ID | AbC_2abcDefDwGVzPu1hCQ|FJk5Z6OroPCLEDTKkwDxaeA0YzrIY04f|ca608d3c-fc01-4e40-ae5e-9b2131e4e7mm |
連接埠 | 80 |
主機 | http://myco |
通訊協定 | HTTP |
第 2 步:設定身分識別存放區
Tableau Server 會要求您設定身分識別存放區,以取得或佈建 Tableau Server 使用者。
設定身分集區時,可以使用新的或現有的本機身分存放區(連結在新視窗開啟),或者可以使用 外部身分存放區(連結在新視窗開啟),Active Directory (AD) 或輕量目錄存取協定 (LDAP)(如果在 Tableau Server 設定期間設定外部身分存放區)。
附註:若新的 AD 或 LDAP 執行個體不是在 Tableau Server 設定期間(也稱為初始集區(已設定 TSM))在 TSM 中設定的 AD 或 LDAP 執行個體,則無法設定用於身分集區。
要設定新的本機身分存放區,請使用以下過程。果想要使用現有的本機身分存放區或在 Tableau Server 設定期間設定的身分存放區,跳至第 3 步:設定驗證。
向 Tableau REST API 發出登入(連結在新視窗開啟)請求,以產生認證權杖。
範例
URI
POST https://myco/api/3.19/auth/signin
認證權杖產生後,將認證權杖新增到所有後續 API 請求的標頭中。
透過使用 Tableau REST API OpenAPI 呼叫設定身分識別存放區(連結在新視窗開啟)端點來設定身分識別存放區。
在要求中,指定以下:
- 類型對於本機身分存放區類型,類型值始終為 0。如果想要使用現有的本機身分存放區或在 Tableau Server 設定期間在 TSM 中設定的身分存放區,則無需設定新的本機身分存放區執行個體。相反地,請跳至下方的步驟 3:設定身分驗證。
- 名稱。名稱必須是唯一的。
- Display name。此為選用項目。
範例
URI
https://myco/api/services/authn-service/identity-stores/
請求主體 (JSON)
{ "type": "0", "name": "Local identity store #1", "display_name": "Local identity store #1" }
回應主體
無
第 3 步:設定驗證
可以設定 OpenID Connect (OIDC) 驗證方法來對使用者進行驗證。
附註:OIDC 是當前唯一可使用身分集區進行設定的驗證方法,無論在身分集區中使用哪種身分存放區類型。
設定身分識別存放區後,使用 Tableau REST API OpenAPI 呼叫建立驗證設定(連結在新視窗開啟)端點。
在要求中,指定以下:
驗證類型。驗證類型值為「
OIDC
」。- iFrame。iFrame 的預設值為「
false
」。 需要指定用戶端識別碼、用戶端密碼、設定網址、識別碼宣告、用戶端驗證和使用者名稱宣告。
- 用戶端識別碼、用戶端金鑰由您的 OIDC IdP 提供。
- 設定網址也由您的 IdP 提供。網址通常可以使用以下格式:
https://<idp_url>/.well-known/openid-configuration
。 - 識別碼宣告的預設值為「
sub
」。有關詳情,請參閱變更 sub 聲明。 - 用戶端驗證的預設值為「
CLIENT_SECRET_BASIC
」。 - 使用者名稱宣告的預設值為「
email
」。有關詳情,請參閱預設值:使用 email 聲明來對應使用者。
關於使用者名稱宣告
Tableau 使用使用者名稱宣告的目的是對身分識別進行比對。若在將使用者新增到 Tableau Server 時提供識別碼,則該識別碼會用於比對使用者名稱宣告中提供的值。若未提供識別碼,Tableau 預設使用 Tableau Server 中設定的使用者名稱。
附註:
- 若打算將此驗證設定用於使用 AD 作為其身分識別存放區的身分集區,請確保指派的使用者在使用者名稱宣告中具有 AD sAMAccountName 值。
- 若打算將此驗證設定用於使用 LDAP 作為其身分識別存放區的身分集區,請確保指派的使用者在使用者名稱宣告中具有 LDAP 使用者名稱值。
範例
URI
https://myco/api/services/authn-service/auth-configurations/
請求主體 (JSON)
{
"auth_type": "OIDC",
"iframed_idp_enabled": true,
"oidc": {
"client_id": "0oa1hotzhjv4tyCd08",
"client_secret": "EsKd2NCxY-BiLu_zcIwr2lJZLziT_7sw9Fi6HV3",
"config_url": "https://dev-532601-admin.oktapreview.com/.well-known/openid-configuration",
"custom_scope": "",
"id_claim": "sub",
"username_claim": "email",
"client_authentication": "CLIENT_SECRET_BASIC",
"essential_acr_values": "",
"voluntary_acr_values": "",
"prompt": "login,consent",
"connection_timeout": 100,
"read_timeout": 100,
"ignore_domain": false,
"ignore_jwk": false
}
}
回應主體
無
第 4 步:建立身分集區
根據您在 Tableau Server 設定期間設定的身分識別存放區,您建立的身分識別集區僅可以具有以下其中一種身分識別存放區和驗證方法的組合:
- AD 身分存放區 + OIDC 驗證
- LDAP 身分存放區 + OIDC 驗證
- 本機身分存放區 + OIDC 驗證
前兩個群組合要求將初始集區(已設定 TSM)設定為使用 AD 或 LDAP。
下面描述的過程使用最後一個組合「本機身分存放區 + OIDC 驗證」建立身分集區。
設定 OIDC 驗證後,使用 Tableau REST API OpenAPI 呼叫建立身分集區(連結在新視窗開啟)端點。
在要求中,指定以下:
為身分集區指定名稱和描述。身分集區名稱和描述對 Tableau Server 登陸頁面上的所有使用者可見。
身分存放區執行個體識別碼和驗證類型執行個體識別碼。
附註:
- 要取得身分存放區執行個體識別碼和驗證類型執行個體識別碼,可以呼叫列出身分存放區(連結在新視窗開啟)和列出驗證設定(連結在新視窗開啟)端點。
如果要建立使用您在 Tableau Sever 設定期間在 TSM 中設定的身分存放區的身分集區,則身分存放區執行個體值始終為
'1'
。
範例
URI
https://myco/api/services/authn-service/identity-pools/
請求主體 (JSON)
{ "name": "MyCo contractors", "identity_store_instance": "2", "auth_type_instance": "0", "is_enabled": true, "description": "Sign-in for MyCo contractors" }
回應範例主體
無
建立身分集區後,前往 IdP 設定,並將登入重新導向 URI 設定為
http://<host>/authn-service/authenticate/oidc/<identity_pool_id>/login.
例如,
http://myco/authn-service/authenticate/oidc/57tgfe21-74d2-3h78-bdg6-g2g6h4734564/login
附註:要取得身分集區 ID,可以呼叫列出身分集區(連結在新視窗開啟)端點。
附註:
- 可以根據組織的需要建立任意數量的身分集區。
- 設定的初始集區 (TSM) 支援其他身分識別存放區類型和驗證方法。有關詳情,請參閱驗證。
第 5 步:將使用者新增到身分集區
可以直接使用 Tableau Server 將使用者新增到身分集區。使用者必須屬於初始集區(已設定 TSM)或被新增到身分集區才能登入 Tableau Server。將使用者新增到身分集區時,工作流程可能會發生變更,具體取決於設定用於身分集區的身分識別存放區。
下面的過程描述了如何透過 Tableau Server UI 將使用者新增到身分集區。但是,可以透過呼叫將使用者新增到身分集區(連結在新視窗開啟)端點使用 Tableau REST API 將使用者新增到身分集區。
以管理員身分登入 Tableau Server 使用者介面。
從左側巡覽窗格中,選取使用者(或對於多站台 Tableau Server,選取所有站台 > 使用者)。
按一下新增使用者按鈕,然後選取建立新使用者或從檔案匯入使用者。
對於建立新使用者:
選取要新增新使用者的身分集區,然後按一下「下一步」。
若選取設定有 AD 或 LDAP 身分識別存放區的身分集區,請輸入使用者名稱、指派站台成員資格和站台角色。完成後,按一下「匯入使用者」按鈕。
若選取設定有本機身分識別存放區的身分集區,請輸入使用者名稱。該對話方塊將展開,以便您可以新增顯示名稱、識別碼(在大多數情況下)、電子郵件地址以及設定站台和站台角色。完成後,按一下建立使用者按鈕。
有關使用者名稱以及如何指派站台成員資格和站台角色的詳情,請參閱設定使用者的網站角色。
關於 Tableau 中的使用者名稱和識別碼
使用者名稱是代表系統使用者的資訊。識別碼用於補充用使用者資訊,並且可以被外部識別身分存放區用作使用者名稱的替代。
在 Tableau 中,使用者名稱是用於登入 Tableau 的不可變值,識別碼是可變值,是在 Tableau 的身分識別結構中用作將使用者與其使用者名稱進行對比的方法。識別碼讓 Tableau 更加靈活,因為它們可以脫離該使用者名稱。如果識別身分存放區中的使用者名稱發生變更,Tableau Server 管理員可以更新識別碼以確保使用者與正確的使用者名稱比對。
在識別身分集區中新增現有使用者時,您可能希望能夠設定識別碼。例如,如果現有使用者屬於已設定本機識別身分存放區的身分識別集區,而您想將其新增至已設定 AD 識別身分存放區的身分識別集區中,我們會要求您提供使用者名稱以搜尋與該使用者關聯的識別碼。另一方面,如果現有使用者屬於已設定 AD 識別身分存放區的身分識別集區,而您希望將其新增至已設定本機識別身分存放區的身分識別集區中,我們會要求您提供一個可選識別碼。除非您想將使用者新增至已設定本機識別身分存放區與本機驗證的初始集區(已設定 TSM)中。您將無法為該使用者設定識別碼。
對於從檔案匯入使用者:
按所列順序上傳包含以下欄的 .csv 檔案:
username, password, display name, license level, admin level, publishing capability, email address, identity pool name, identifier
附註:使用者名稱和密碼是唯一必填的欄。但是,若不指定身分集區名稱,使用者將被新增到初始集區(已設定 TSM)。有關詳情,請參閱 CSV 匯入檔案指導方針。
例如,假設要將 Henry Wilson 和 Fred Suzuki 新增到「一般承包商 (General Contractors)」身分集區中。.csv 可能包含以下值:
henryw,henrypassword,Henry Wilson,Viewer,None,yes,hwilson@myco.com,General Contractors,hwilson
freds,fredpassword,Fred Suzuki,Creator,None,no,fsuzuki@myco.com,General Contractors,fsuzuki
附註:建立一個或多個身分集區時,Tableau Server 登陸頁面會進行更新,以包含屬於這些身分識別集區成員的使用者的登入選項。有關詳情,請參閱使用身分集區佈建和驗證使用者。
測試身分集區
設定身分集區後,我們建議您透過登出 Tableau Server 並以屬於身分集區的使用者身分再次登入來對其進行測試。請確保完成登入流程,以確保已正確設定 OIDC 驗證。
附註:若已在第 1 步:設定 Tableau Server 並建立工作階段中為初始集區(已設定 TSM)設定了可選描述,或者 Tableau Server 具有伺服器設定(常規與自訂)說明,我們建議描述應特定於使用初始集區(已設定 TSM)登入的使用者,並且「登入自訂」說明應適用於登入 Tableau Server 的所有使用者。
管理身分集區
可以從伺服器層級和站台層級的使用者頁面管理身分集區中的使用者。在「使用者」頁面上,可以查看使用者屬於哪些身分集區以及有關身分集區的摘要詳情。
對於所有其他身分集區管理任務,包括更新驗證設定或身分集區以及刪除本機身分識別存放區或身分集區,請使用身分集區方法(連結在新視窗開啟)中描述的 Tableau REST API OpenAPI。
身分集區疑難排解
身分集區的局限性
身分集區僅適用於 Tableau Server。
附註: 身分識別集區目前僅可用於伺服器層級設定。身分識別集區不能限定在站台範圍內。
Tableau Server 登陸頁面顯示 IdP 錯誤
在 Tableau Server 登陸頁面上,在主要登入選項下方,身分集區登入選項旁邊可能會顯示與 IdP 相關的錯誤訊息。當以下其中一項或兩項為真時,可能會出現 OIDC 驗證相關的問題:1) Tableau Server 尚未設定為向 IdP 傳送外部 URL,以及 2) 尚未宣告全域變數。
要解決此問題,請確保完成上述第 1 步:設定 Tableau Server 並建立工作階段中描述的程序。
Tableau Server 登入頁面不顯示身分集區
停用身分集區功能後,可以使用以下 TSM 命令再次啟用它:
tsm configuration set -k features.IdentityPools -v true
tsm configuration set -k features.NewIdentityMode -v true
tsm configuration set -k wgserver.authentication.legacy_identity_mode.enabled -v false
tsm pending-changes apply
附註:執行這些命令會導致 Tableau Server 重新啟動。