Kerberos 疑難排解

本主題中的故障排除建議分為與伺服器上的單一登入 (SSO) 相關的問題以及委派資料來源的問題。

另請參閱 Tableau 社群 Wiki 頁面:測試 Linux 上的資料庫 Kerberos 組態(連結在新視窗開啟)

單一登入 Tableau Server

在 Kerberos SSO 環境中,從網頁瀏覽器或 Tableau Desktop 登入 Tableau Server 的使用者可能會看到指示 Tableau Server 無法自動登入(使用單一登入)的訊息。並且會建議使用者提供 Tableau Server 使用者名稱和密碼。

用戶端電腦上的登入錯誤疑難排解

  • 輸入使用者名稱和密碼—若要檢查使用者的 Tableau Server 一般存取權限,請輸入使用者的名稱和密碼以登入。

    如果認證失敗,使用者可能不是 Tableau Server 上的使用者。如果要讓 Kerberos SSO 運作,使用者必須能夠存取 Tableau Server,而且必須由 Active Directory 授與票證授與票證 (TGT)(如此清單之後的 TGT 項目中所述)。

  • 檢查其他使用者的 SSO 認證—嘗試使用其他使用者帳戶透過 SSO 連線到 Tableau Server。如果所有使用者均受影響,則問題可能在 Kerberos 設定中。

  • 使用伺服器電腦以外的電腦當您登入 localhost 時,Kerberos SSO 不會運作。用戶端必須從 Tableau Server 電腦以外的電腦進行連線。

  • 使用伺服器名稱,而非IP位址—如果您輸入 IP 位址作為 Tableau Server 名稱,請使用 Kerberos SSO。此外,用於存取 Tableau Server 的伺服器名稱必須與 Kerberos 設定中使用的名稱相符(請參閱下面的金鑰表條目)。

  • 確認用戶端電腦是否具有 TGT—用戶端電腦必須具有 Active Directory 網域的 TGT(票證授予票證)。不支援代理授予票證的限制委派。

    若要確認用戶端電腦具有 TGT,請執行以下操作:

    • 在 Windows 上開啟命令提示字元,然後鍵入以下內容:klist tgt

    • 在 Mac 上開啟終端機視窗,然後鍵入以下內容:klist

    輸出應顯示正嘗試接受 Tableau Server 驗證的使用者/域的 TGT。

    在以下情況下,用戶端電腦可能沒有 TGT:

    • 用戶端電腦使用 VPN 連線

    • 用戶端電腦沒有聯接到域(例如,它是在工作時使用的非工作用電腦)

    • 使用者使用本機(非域)帳戶登入到電腦。

    • 電腦是沒有將 Active Directory 用作網路帳戶伺服器的 Mac 電腦

  • 確認瀏覽器版本和設定—對於 Web 瀏覽器登入,請確保瀏覽器支援 Kerberos,並視需要正確設定。

    • Internet Explorer (IE) 和 Chrome 立即可在 Windows 上執行

    • Safari 立即可在 Mac 上執行。

    • Firefox 需要額外的設定

    有關詳情,請參閱Kerberos SSO 的 Tableau 用戶端支援

伺服器上的登入錯誤疑難排解

如果無法透過用戶端電腦解決問題,則下面的步驟是在執行 Tableau Server 的電腦上排除故障。管理員可以使用請求 ID 在 Tableau Server 上的 Apache 記錄中尋找登入嘗試。

  • 記錄檔 — 檢視 Apache error.log 中的錯誤(含有失敗登入嘗試的確切日期/時間)。

  • 鍵表條目 — 如果 error.log 項目包含訊息,「沒有與 HTTP/<servername>.<domain>.<org>@ 相符的鍵表條目」,例如:

    [Fri Oct 24 10:58:46.087683 2014] [:error] [pid 2104:tid 4776] [client 10.10.1.62:56789] gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, No key table entry found matching HTTP/servername.domain.com@)

    此錯誤是由以下任意項不相符造成的:

    • Tableau Server URL - 用戶端電腦用於存取伺服器的 URL。

      這是您鍵入 Tableau Desktop 或瀏覽器地址欄的名稱。它可以是短名稱 (http://servername),也可以是完全限定功能變數名稱 (http://servername.domain.com)

    • 伺服器 IP 位址的 DNS 反向尋找

      它使用 IP 位址尋找 DNS 名稱。

      在命令提示符處,鍵入:

      ping servername

      利用在 ping 伺服器之後返回的 IP 位址執行 DNS 反向尋找,鍵入:

      nslookup <ip address>

      nslookup 命令將傳回 IP 位址的網路資訊。在回應的非權威回答部分,請確認完整網域名稱 (FQDN) 符合以下設定值: 

      • Kerberos .keytab 檔案

      • 伺服器的服務主要名稱 (SPN)

      有關設定這些值的詳情,請參閱瞭解 keytab 需求

驗證 Kerberos 設定指令碼

您可能需要修改用來產生環境變數之 keytab 檔案的 ktpass 命令。請檢閱知識庫文章中的疑難排解步驟:無法產生 Tableau Server 的 Kerberos 指令碼設定(連結在新視窗開啟)

資料來源 SSO

委派的資料來源存取失敗

檢查 vizqlserver 記錄檔案中是否有 [workgroup-auth-mode] :

在記錄檔案中尋找 [workgroup-auth-mode] 。它應顯示 [kerberos-impersonate] 而不是 [as-is] 。

Kerberos 委派多域設定

Tableau Server 可從其他 Active Directory 域中委派使用者。如果您的資料庫使用 MIT Kerberos,您需要將 Kerberos 主體調整為資料庫使用者對應。具體而言,您將需要使用使用者將從中連線的每個 Kerberos 域的規則更新 krb5.conf。使用 [realms] 部分中的 auth_to_local 標記將主體名稱對應到本機使用者名。

例如,假設一個使用者為 EXAMPLE\jsmith,其 Kerberos 主體為 jsmith@EXAMPLE.LAN。在這種情況下,Tableau Server 將指定委派使用者 jsmith@EXAMPLE。Tableau Server 將使用 Active Directory 舊域別名作為 Kerberos 域。

目標資料庫可能已經有諸如以下規則,用於將使用者 jsmith@EXAMPLE.LAN 對應到資料庫使用者 jsmith

EXAMPLE.LAN = {
   RULE:[1:$1@$0](.*@EXAMPLE.LAN)s/@.*//
   DEFAULT
}

為了支援委派,您必須新增另一條規則,將 jsmith@EXAMPLE 對應到資料庫使用者:

EXAMPLE.LAN = {
   RULE:[1:$1@$0](.*@EXAMPLE.LAN)s/@.*//
   RULE:[1:$1@$0](.*@EXAMPLE)s/@.*//
   DEFAULT
}

有關詳情,請參閱 MIT Kerberos 文件主題 krb5.conf(連結在新視窗開啟)

跨域約束委派

在 KDC 執行於 Windows 2012 之前的 Windows Server 上的某些跨域方案中,委派可能會失敗。您可能會看到以下錯誤:

  • SQL Server Network Interfaces:The system cannot contact a domain controller to service the authentication request.Please try again later.(系統無法聯繫網域控制站來為驗證請求提供服務。請稍後再試。)
  • SQL 伺服器原生用戶端:無法產生 SSPI 內容。
  • 網域控制站會傳回:KRB-ERR-POLICY error with a status STATUS_CROSSREALM_DELEGATION_FAILURE (0xc000040b)

[跨域] 是指 Tableau Server 使用不同服務帳戶執行在與資料來源不同的網域中的情形。例如:

  • Tableau Server 使用 DomainA 服務帳戶執行在 DomainA 上。
  • SQL Server 使用 DomainB 服務帳戶執行在 DomainB 上。

只有當兩個伺服器位於同一域中時,傳統約束委派才能工作。使用者可能來自其他域。

如果您看到上述錯誤,則您的 Active Directory 管理員應移除在委派帳戶上設定的任何傳統約束委派以啟用此方案。可以使用 Active Directory 管理工具或透過移除與 Active Directory 屬性 msDS-AllowedToDelegateTo. 關聯的值來移除委派。

如果想要隨跨域委派一起保留現有單域委派,則您必須使用基於資源的約束委派對兩者進行設定。

有關 Kerberos 和限制委派的詳情,請參閱 Microsoft 主題 Kerberos 限制委派概觀(連結在新視窗開啟)

Web 製作

有兩個 Web 製作案例並不支援 Kerberos 委派:「連線到 Web 上的資料」和「在 Web 上建立資料來源」功能尚不支援委派。具體而言,如果您在使用 Web 製作的位置建立了使用 Kerberos 的資料來源,該資料來源將會使用「執行身分」服務帳戶驗證。如果您要使用 Kerberos 委派建立資料來源,則必須使用 Tableau Desktop 進行發佈。有關「執行身分」服務帳戶的詳情,請參閱啟用 Kerberos 服務帳戶存取

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