為 JDBC 連接器啟用 Kerberos 執行身分驗證

從 2020.2 版本開始,Tableau Server 支援 Kerberos 驗證用於 JDBC 連接器。

您可以將 Tableau Server 設定為使用 Kerberos 服務帳戶來存取資料庫。在這種情況下,Tableau Server 將透過服務帳戶(亦稱為「執行身份服務帳戶」)連線至資料庫。此情況也稱為「執行身份驗證」

請參閱執行身分服務帳戶

若要在 Tableau Server 上使用執行身份驗證,您必須先在使用整合驗證的 Tableau Desktop 中,建立工作簿或資料來源。當您發布到 Tableau Server 時,就會取得使用執行身分驗證的選項。使用 Web 製作建立資料來源時,如果您選取整合驗證,執行身分驗證則為預設操作。

支援的資料來源

Tableau 支援使用下列資料來源進行 JDBC Kerberos 委派:

  • Oracle
  • PostgreSQL

如果要使用以 JDBC 為基礎的連接器針對 Oracle 資料來源設定「執行身分」驗證,然後遵循本主題中的程序進行操作。或者,如果在 Tableau Server 上執行的連接器使用原生驅動程式,則不必遵循本主題中的步驟。相反地,請遵循本主題變更執行身分服務帳戶所述的步驟,建立「執行身分」服務帳戶。

需求

Kerberos 委派需要 Active Directory。

  • 必須將 Tableau Server 資訊存儲設定為使用 LDAP - Active Directory。
  • 不支援 MIT KDC。

設定過程

此部分提供用於啟用 Kerberos 執行身分驗證的過程範例。

  1. 為執行身分服務帳戶建立一個金鑰表檔案。

    以下範例使用透過 JDK 提供的 ktab 工具。您可以在 AdoptOpenJDK(連結在新視窗開啟) 下載工具。使用 ktab 來建立 keytab,使用 UPN 格式的登入主體(例如,service@EXAMPLE.COM),而非使用服務主體名稱(例如, HTTP/service.example.com@EXAMPLE.COM)。您也可以使用 ktpass 公用程式來產生 keytab,在這種情況下,可以使用任何一種主體名稱樣式。

    <JDK_HOME>/bin/ktab -k E:/tmp/tabsrv.keytab -a tabsrv@EXAMPLE.COM

    Tableau Server 將使用執行身分服務帳戶和關聯的金鑰表進行驗證並直接連線到資料庫。

  2. 將 keytab 複製到 Tableau Server 資料目錄,並確認「執行身分」服務帳戶可存取和讀取 keytab 檔案。預設情況下,Tableau Server 資料目錄位於 C:\ProgramData\Tableau。如果在分散式部署中執行 Tableau Server,請在叢集中的每個節點上執行此步驟。

  3. 執行以下 TSM commands 來設定「執行身分」服務帳戶和 keytab 檔案的路徑:

    tsm configuration set -k native_api.datasource_runas_principal -v tabsrv@EXAMPLE.COM
    tsm configuration set -k native_api.datasource_runas_keytab_path -v <path-to-file>kerberos.keytab

    在某些情況下,TSM 可能會返回提到 --force-keys 的錯誤。如果遇到此錯誤,請使用附加到引數的 --force-keys 參數再次執行命令。

  4. 在所有 Tableau Service 節點上建立 krb5.conf 檔案,並安裝在 C:\Windows

    如果您已在組織的電腦上部署 krb5.ini 檔案,請複製該檔案,並將其用於 Tableau Server。有關詳情,請參閱 MIT Kerberos 文件主題 krb5.conf(連結在新視窗開啟)

    若要變更 Kerberos 組態檔的位置,請執行以下 TSM 命令:

    tsm configuration set -k native_api.kerberos_config_path --force-keys -v "C:\temp\krb5.ini"

    以下是 krb5.conf 檔案的範例。Tableau 支援無法協助建立 krb5.conf。

    [libdefaults]
    forwardable = true
    default_realm = EXAMPLE.COM
    default_tkt_enctypes = rc4-hmac
    default_tgs_enctypes = rc4-hmac
    
    [realms]
    EXAMPLE.COM = {
    kdc = kdc.example.com
    admin_server = kdc.example.com
    }
    
    [domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM
  5. 執行以下 TSM 命令,應用對 Tableau Server 所做的變更:

    tsm pending-changes apply

    如果擱置組態需要重新啟動伺服器,pending-changes apply 命令將顯示提示,讓您知道即將重新啟動。即使伺服器已停止,也會顯示提示,但在這種情況下不會重新啟動。您可以使用 --ignore-prompt 選項隱藏提示,但這樣做不會改變重新啟動行為。如果變更不需要重新啟動,則不會出現提示即可套用變更。有關詳情,請參閱 tsm pending-changes apply