内容:

启用 Kerberos 委派

  • 版本 :2022.1 及更高版本

利用 Kerberos 委派,Tableau Server 能够使用工作簿或视图 Viewer(查看者)的 Kerberos 凭据代表该 Viewer(查看者)执行查询。

利用 Kerberos 委派,Tableau Server 能够使用工作簿或视图 Viewer(查看者)的 Kerberos 凭据代表该 Viewer(查看者)执行查询。在以下情况下,这种方法很有用:

  • 您需要知道谁正在访问数据(Viewer(查看者)的名称将出现在数据源的访问日志中)。

  • 数据源具有行级别安全性,即不同的用户可以访问不同的行。

支持的数据源

Tableau 支持使用以下数据源的 Kerberos 委派:

  • Cloudera:Hive/Impala

  • Denodo

  • Hortonworks

  • Oracle

  • PostgreSQL

  • Spark

  • SQL Server

  • Teradata

  • Vertica

Linux 平台不支持 MSAS。

要求

Kerberos 委派需要 Active Directory。

  • 必须将 Tableau Server 信息存储配置为使用 LDAP - Active Directory。

  • 安装有 Tableau Server 的计算机必须加入到 Active Directory 域。

  • 不支持 MIT KDC。

Web 制作

有两种不支持 Kerberos 委派的 Web 制作场景:“在 Web 上连接到数据”和“在 Web 上创建数据源”功能尚不支持委派。具体而言,如果通过 Web 制作创建使用 Kerberos 的数据源,则数据源将使用“运行身份服务帐户”身份验证。如果要使用 Kerberos 委派创建数据源,则必须使用 Tableau Desktop 进行发布。有关运行身份服务帐户的详细信息,请参见启用 Kerberos 服务帐户访问

配置过程

此部分提供用于启用 Kerberos 委派的过程示例。该方案还包括示例名称,用于帮助描述配置元素之间的关系。

  1. Tableau Server 将需要 Kerberos 服务票证来代表发起数据库调用的用户进行委派。您必须创建一个将用于委派给给定数据库的域帐户。此帐户称为运行身份服务帐户。在本主题中,配置为委派/运行身份帐户的示例用户为 tabsrv@example.com

    在连接到用户域的 Windows Server 上,该帐户必须配置为具有 Active Directory 用户和计算机:

    • 打开运行身份服务帐户的“属性”页面,单击“委派”选项卡,并选择“仅信任此用户作为指定服务的委派”和 “使用任何身份验证协议”。

  2. 为运行身份服务帐户创建一个密钥表文件。

    例如,以下命令使用 ktutil 工具创建一个密钥表 (tabsrv-runas.keytab):

    sudo ktutil
    ktutil:  addent -password -p tabsrv@EXAMPLE.COM -k 2 -e <encryption scheme>

    此命令的加密方案包括 RC4-HMACaes128-cts-hmac-sha1-96aes256-cts-hmac-sha1-96。请咨询您的 IT 团队,以获取适用于您的环境和数据源的正确加密方案。

    ktutil:  wkt tabsrv-runas.keytab

    Tableau Server 将使用运行身份服务帐户和关联的密钥表进行身份验证并直接连接到数据库。

  3. 将密钥表文件复制到 Tableau Server 数据目录中,并设置适当的所有权和权限。

    mkdir /var/opt/keytab                
    sudo cp -p tabsrv-runas.keytab /var/opt/keytab                 
    sudo chown $USER /var/opt/keytab/tabsrv-runas.keytab                  
    chgrp tableau /var/opt/keytab/tabsrv-runas.keytab                  
    chmod g+r /var/opt/keytab/tabsrv-runas.keytab 
    					
  4. 运行以下 TSM 命令以启用 Kerberos 委派,设置委派服务帐户,并将密钥表文件与服务帐户关联:

    					tsm configuration set -k wgserver.delegation.enabled -v true
    tsm configuration set -k native_api.datasource_impersonation_runas_principal -v tabsrv@EXAMPLE.COM
    tsm configuration set -k native_api.datasource_impersonation_runas_keytab_path -v /var/opt/keytab/tabsrv-runas.keytab
    tsm configuration set -k native_api.protocol_transition_a_d_short_domain -v false
    tsm configuration set -k native_api.protocol_transition_uppercase_realm -v true

    在某些情况下,TSM 可能会返回提到 --force-keys 的错误。如果遇到此错误,请使用附加到自变量的 --force-keys 参数再次运行命令。

  5. 运行以下 TSM 命令,应用对 Tableau Server 所做的更改:

    tsm pending-changes apply

    如果待定更改需要重新启动服务器,pending-changes apply 命令将显示一个提示,告知您将进行重新启动。即使服务器已停止,此提示也会显示,但在这种情况下不会重新启动。您可以使用 --ignore-prompt 选项隐藏提示,但这样做不会改变重新启动行为。如果更改不需要重新启动,则会在不提示的情况下应用更改。有关详细信息,请参阅tsm pending-changes apply

  6. 为数据连接启用委派:

    另请参见

    Kerberos 疑难解答

此部分中的其他文章