OpenID Connect 疑難排解
使用以下主題在 Tableau Server 疑難排解 OpenID Connect (OIDC) 問題。
許多身分提供程式支援 OIDC 通訊協定。OIDC 通訊協定是一個開放和靈活的標準,因此,並非所有標準實現都是相同的。管理員在為 OIDC 設定 Tableau Server 時遇到的大多數問題是不同身分提供程式實作 OIDC 的結果。如果在 Tableau Server 設定 OIDC 時遇到錯誤,我們建議您使用 IdP 來解決它們。
正在啟用增強型 OpenID 記錄
要有效解決 Tableau Server 中的 OpenID Connect 問題,請將記錄層級上定為偵錯啟用增強型記錄,並使用vizportal.openid.full_server_request_logging_enabled
設定鍵true
使用這些 TSM 命令完整記錄 OpenID:
tsm configuration set -k vizportal.log.level -v debug
tsm configuration set -k vizportal.openid.full_server_request_logging_enabled -v true
tsm pending-changes apply
完成疑難排解後,建議將兩個設定鍵的值設定回其預設值,以限制在記錄中收集的資訊並減少記錄檔大小。有關將設定鍵重置為預設值的詳細資訊,請參閱將組態金鑰重設為預設值。
附註:不支援身分集區(連結在新視窗開啟)的增強記錄。但支援 vizportal.log.level debug
記錄。
使用命令列登入
即使 Tableau Server 設定為使用 OIDC,當您使用 tabcmd、Tableau REST API(連結在新視窗開啟) 或 Tableau 資料擷取命令列公用程式(連結在新視窗開啟)(由 Tableau Desktop 提供)登入 Tableau Server 時,也不會使用 OIDC 驗證。
登入失敗
登入可能會失敗,並出現以下訊息:
Login failure: Identity Provider authentication unsuccessful for user <username from IdP>. Failed to find the user in Tableau Cloud.
此錯誤通常表示 Tableau Server 中存放的使用者名稱與 IdP 提供的使用者名稱不相符。若要修復此錯誤,請確保這些使用者名相符。例如,如果林怡君的使用者名稱在 IdP 中存放為 jsmith
,它在 Tableau Server 中也必須存放為 jsmith
。
錯誤 69:「無法登入」
嘗試使用 Web 瀏覽器登入 Tableau Server 並收到錯誤「無法登入。」時,可能會傳回錯誤 69。登入失敗。請與 Tableau Server 管理員聯絡。」返回此訊息的 URL 是 https://example.com/#/error/signin/69?redirectPath=%2
。
如果收到此錯誤,請與 IDP 提供程式進行確認,驗證 IdP 是否預期為 client_secret_post
而不是 client_secret_basic
(Tableau 預設值)。
如果 IdP 預期為 client_secret_post
,則您必須將 vizportal.openid.client_authentication
參數設定為 client_secret_post
。
例如;如果收到此錯誤並且已針對 Salesforce IdP 設定了 OIDC,則必須設定 vizportal.openid.client_authentication
參數。
有關詳情,請參閱tsm configuration set 選項。
OpenID 錯誤記錄檔
OpenID 驗證在 Tableau Server 外部進行,因此,疑難排解驗證問題可能很困難。但是,Tableau Server 會記錄登入嘗試。可以建立記錄檔的快照集,並使用它們來排查問題。如需詳細資訊,請參閱Tableau Server 記錄檔和記錄檔位置。
附註:若要記錄 OpenID 相關事件,必須使用tsm configuration set 選項將 vizportal.log.level
設定為 debug
。
在未解壓的記錄檔快照集內的以下檔中,檢查 OpenID 錯誤:
\vizportal\vizportal-<n>.log
找不到使用者
如果使用者首次登入後「子」宣告已變更,則可能會傳回錯誤「找不到使用者」。如果您在 vizportal 記錄檔中看到以下內容,則可以驗證此問題:Possible conflicting or stale account: <username> A different user already owns this account
。
如果仍然出現此問題,請重設該使用者或 Tableau Server 上所有使用者的「子」宣告。有關詳情,請參閱重設使用者識別碼。