启用 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 委派的过程示例。该方案还包括示例名称,用于帮助描述配置元素之间的关系。
Tableau Server 将需要 Kerberos 服务票证来代表发起数据库调用的用户进行委派。您必须创建一个将用于委派给给定数据库的域帐户。此帐户称为运行身份服务帐户。在本主题中,配置为委派/运行身份帐户的示例用户为
tabsrv@example.com
。在连接到用户域的 Windows Server 上,该帐户必须配置为具有 Active Directory 用户和计算机:
打开运行身份服务帐户的“属性”页面,单击“委派”选项卡,并选择“仅信任此用户作为指定服务的委派”和 “使用任何身份验证协议”。
为运行身份服务帐户创建一个密钥表文件。
例如,以下命令使用 ktutil 工具创建一个密钥表
(tabsrv-runas.keytab
):sudo ktutil
ktutil: addent -password -p tabsrv@EXAMPLE.COM -k 2 -e <encryption scheme>
此命令的加密方案包括
RC4-HMAC
、aes128-cts-hmac-sha1-96
和aes256-cts-hmac-sha1-96
。请咨询您的 IT 团队,以获取适用于您的环境和数据源的正确加密方案。ktutil: wkt tabsrv-runas.keytab
Tableau Server 将使用运行身份服务帐户和关联的密钥表进行身份验证并直接连接到数据库。
将密钥表文件复制到 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
运行以下 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
参数再次运行命令。运行以下 TSM 命令,应用对 Tableau Server 所做的更改:
tsm pending-changes apply
如果待定更改需要重新启动服务器,
pending-changes apply
命令将显示一个提示,告知您将进行重新启动。即使服务器已停止,此提示也会显示,但在这种情况下不会重新启动。您可以使用--ignore-prompt
选项隐藏提示,但这样做不会改变重新启动行为。如果更改不需要重新启动,则会在不提示的情况下应用更改。有关详细信息,请参阅tsm pending-changes apply。为数据连接启用委派:
另请参见
SQL Server — 请参见 Tableau 社区中的为 SQL Server 启用 Kerberos 委派。
PostgreSQL — 请参见 Tableau 社区中的为 PostgreSQL 启用 Kerberos 委派。
Teradata — 请参见 Tableau 社区中的为 Teradata 启用 Kerberos 委派。
Denodo — 请参见 Tableau 社区中的在 Linux 上为 Denodo 启用 Kerberos 委派。
Oracle — 请参见 Tableau 社区中的为 Oracle 启用 Kerberos 委派。
Cloudera — 请参见 Tableau 社区中的为 Hive/Impala 启用 Kerberos 委派。
Vertica — 请参见 Tableau 社区中的为 Vertica 启用 Kerberos 委派。