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

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

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

支持的数据源

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

  • Cloudera:Hive/Impala
  • Denodo
  • Hortonworks
  • MSAS
  • Oracle
  • PostgreSQL
  • Spark
  • SQL Server
  • Teradata
  • Vertica
  • TIBCO

要求

Kerberos 委派需要 Active Directory。

  • 必须将 Tableau Server 身份存储配置为使用 Active Directory。
  • 安装有 Tableau Server 的计算机必须加入到 Active Directory 域。
  • 不支持 MIT Kerberos KDC。
  • 域帐户必须配置为 Tableau Server 上的运行身份服务帐户。请参见更改运行身份服务帐户。如果您的用户与 Tableau Server 和数据源位于不同的 Active Directory 域中,则必须配置域信任。请参见Active Directory 部署的域信任要求
  • 已配置委派。将运行身份服务帐户的委派权限授予目标数据库服务主体名称 (SPN)。将为运行身份服务帐户授予代表发起源用户访问资源的权限。
  • 如果要使用基于 JDBC 的连接器在包含 Oracle 数据源的 Tableau Server 2020.2 或更高版本上配置委派,请参见为 JDBC 连接器启用 Kerberos 委派。从 Tableau 2020.2 开始,Oracle 连接器使用 JDBC。

Web 制作

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

配置过程

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

  1. 在 Tableau Server 中的所有节点上,将用户运行身份配置为以操作系统方式执行。有关详细信息,请参见启用运行身份服务帐户以充当操作系统

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

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

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

    tsm configuration set -k wgserver.delegation.enabled -v true

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

    tsm pending-changes apply

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

  5. (可选)将 Tableau Server 配置为使用 MIT Kerberos 主体格式。

    默认情况下,Tableau Server 会使用 Active Directory 短名称生成 Kerberos 主体。举例来说,如果 Tableau Server 对 EXAMPLE.COM(短名称为 EXAMPLE)中的用户执行 Kerberos 委派,则主体名称将为:user@example

    如果您的数据库在 Linux 上运行,则可能需要在 krb5.conf 中调整 auth_to_local 映射。有关编辑 krb5.conf 文件的信息,请参见Kerberos 委派多域配置。或者,可以通过运行以下命令将 Tableau Server 配置为使用 Kerberos 主体的完整域名:

    tsm configuration set -k native_api.protocol_transition_a_d_short_domain -v false --force-keys
    tsm configuration set -k native_api.protocol_transition_uppercase_realm -v true --force-keys
    tsm pending-changes apply
  6. 为数据连接启用委派:

    另请参见

    Kerberos 疑难解答

感谢您的反馈!