Kerberos 疑難排解
本主題中的故障排除建議分為與伺服器上的單一登入 (SSO) 相關的問題以及委派資料來源的問題。
單一登入 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 中的錯誤(含有失敗登入嘗試的確切日期/時間)。
在 ziplog 存檔案中,這些記錄位於 \httpd 資料夾下。
在 Tableau Server 上,這些記錄位於 \data\tabsvc\logs\httpd\ 資料夾中。
鍵表條目 — 如果 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] :
在 ziplog 存檔案中,這些記錄位於 \vizqlserver\Logs 資料夾中
在 Tableau Server 上, 這些記錄位於 \data\tabsvc\vizqlserver\Logs 資料夾中
在記錄檔案中尋找 [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 進行發佈。