利用 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 委派的过程示例。该方案还包括示例名称,用于帮助描述配置元素之间的关系。
在 Tableau Server 中的所有节点上,将用户运行身份配置为以操作系统方式执行。有关详细信息,请参见启用运行身份服务帐户以充当操作系统。
Tableau Server 将需要 Kerberos 服务票证来代表发起数据库调用的用户进行委派。您必须创建一个将用于委派给给定数据库的域帐户。此帐户称为运行身份服务帐户。在本主题中,配置为委派/运行身份帐户的示例用户为
tabsrv@example.com
。在连接到用户域的 Windows Server 上,该帐户必须配置为具有 Active Directory 用户和计算机:
- 打开运行身份服务帐户的“属性”页面,单击“委派”选项卡,并选择“仅信任此用户作为指定服务的委派”和 “使用任何身份验证协议”。
运行以下 TSM 命令以启用 Kerberos 委派:
tsm configuration set -k wgserver.delegation.enabled -v true
运行以下 TSM 命令,应用对 Tableau Server 所做的更改:
tsm pending-changes apply
如果待定更改需要重新启动服务器,
pending-changes apply
命令将显示一个提示,告知您将进行重新启动。即使服务器已停止,此提示也会显示,但在这种情况下不会重新启动。您可以使用--ignore-prompt
选项隐藏提示,但这样做不会改变重新启动行为。如果更改不需要重新启动,则会在不提示的情况下应用更改。有关详细信息,请参见tsm pending-changes apply。(可选)将 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
为数据连接启用委派:
SQL Server — 请参见 Tableau 社区中的为 SQL Server 启用 Kerberos 委派(链接在新窗口中打开)。
MSAS — 请参见 Tableau 社区中的为 MSAS 启用 Kerberos 委派(链接在新窗口中打开)。
PostgreSQL — 请参见 Tableau 社区中的为 PostgreSQL 启用 Kerberos 委派(链接在新窗口中打开)。
Teradata — 请参见 Tableau 社区中的为 Teradata 启用 Kerberos 委派(链接在新窗口中打开)。
Oracle — 请参见 Tableau 社区中的为 Oracle 启用 Kerberos 委派(链接在新窗口中打开)。
Cloudera — 请参见 Tableau 社区中的为 Hive/Impala 启用 Kerberos 委派(链接在新窗口中打开)。
Vertica — 请参见 Tableau 社区中的为 Vertica 启用 Kerberos 委派(链接在新窗口中打开)。
TIBCO — 请参见 TIBCO Professional Services 指南《TDV Integration with Kerberos》(TDV 与 Kerberos 的集成)中的 Section 4, Kerberos SSO Configuration for TDV on Windows(第 4 节,Windows 上适用于 TDV 的 Kerberos SSO 配置)(链接在新窗口中打开)。
另请参见