内容:

数据连接身份验证

  • 版本 :2022.1 及更高版本

您可以使用 Kerberos、OAuth 和单一登录来配置数据连接身份验证。

您可以使用 Kerberos、OAuth 和单一登录来配置数据连接身份验证。

此部分中的其他文章

利用 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 信息存储配置为使用 LDAP - Active Directory。

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

  • 不支持 MIT 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 疑难解答

此部分中的其他文章

自版本 2020.2 起,Tableau Server 支持为 JDBC 连接器使用使用 Kerberos 委派。

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

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

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

支持的数据源

Tableau 支持使用以下数据源的 JDBC Kerberos RunAs 身份验证:

  • Oracle

  • PostgreSQL

如果要为使用基于 JDBC 的连接器的 Oracle 数据源配置委派,请按照本主题中的步骤操作。或者,如果在 Tableau Server 上运行的连接器使用本机驱动程序,则按照启用 Kerberos 委派帮助主题中的过程进行操作。

要求

Kerberos 委派需要 Active Directory。

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

  • 不支持 MIT KDC。

注意:您不需要启用运行身份帐户来充当操作系统。

配置过程

此部分提供用于启用 Kerberos 委派的过程示例。

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

    必须为 Active Directory 中的委派配置该帐户:

    1. 在连接到用户域的 Windows Server 上,打开“Active Directory 用户和计算机”。

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

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

    下面的示例使用 JDK 附带的 ktab 工具。您可以在 AdoptOpenJDK(链接在新窗口中打开) 下载该工具。使用 ktab 创建密钥时,请使用 UPN 格式的登录主体(例如,service@EXAMPLE.COM),而不是服务主体名称(例如 HTTP/service.example.com@EXAMPLE.COM)。您还可以使用 ktpass 实用程序生成密钥表,在这种情况下,您可以使用主体名称的任一样式。

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

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

  3. 将密钥表复制到 Tableau Server 数据目录中,并验证运行身份服务帐户是否可以访问和读取密钥表文件。默认情况下,Tableau Server 数据目录位于 C:\ProgramData\Tableau。如果在分布式部署中运行 Tableau Server,请在群集中的初始节点上执行此步骤。

  4. 创建 krb5.conf 文件,并安装在所有 Tableau Server 节点上的 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 命令以启用 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 <path-to-file>kerberos.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 参数再次运行命令。

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

    tsm pending-changes apply

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


要将 Kerberos 委派与 Tableau Server 一起使用,您必须将运行身份服务帐户配置为在每个 Tableau Server 节点上充当操作系统。

  1. 在运行 Tableau Server 的计算机上,选择“开始”>“控制面板”>“管理工具”>“本地安全策略”

  2. 在“本地安全设置”窗口中,展开“本地策略”,单击“用户权限分配”,然后右键单击“以操作系统方式执行”并选择“属性”

  3. 在“以操作系统方式执行 - 属性”窗口中,单击“添加用户或组”

  4. 键入 Tableau Server 运行身份服务帐户的 (例如:MYCOMPANY\tableau_server),然后单击“检查名称”

  5. 当帐户解析正确时,会带有下划线。单击“确定”

  6. 单击“确定”关闭“本地安全策略”窗口。

自版本 2020.2 起,Tableau Server 支持为 JDBC 连接器使用使用 Kerberos 身份验证。

您可以将 Tableau Server 配置为使用 Kerberos 服务帐户来访问数据库。在这种情况下,Tableau Server 会使用服务帐户(也称为“运行身份服务帐户”)连接到数据库。此方案称为“运行身份验证”

请参见运行身份服务帐户

若要在 Tableau Server 上使用运行身份验证,必须首先在 Tableau Desktop 中创建使用集成身份验证的工作簿或数据源。当您发布到 Tableau Server 时,将获得用于使用“运行身份验证”的选项。使用 Web 制作创建数据源时,如果选择集成身份验证,则“运行身份验证”是默认操作。

支持的数据源

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

  • Oracle

如果要为使用基于 JDBC 的连接器的 Oracle 数据源配置“运行身份验证”,请按照本主题中的步骤操作。或者,如果在 Tableau Server 上运行的连接器使用本机驱动程序,则不必执行本主题中的步骤。相反,请按照更改运行身份服务帐户主题中介绍的用于创建运行身份服务帐户的步骤进行操作。

要求

Kerberos 委派需要 Active Directory。

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

  • 不支持 MIT KDC。

配置过程

此部分提供用于启用 Kerberos 运行身份验证的过程示例。

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

    下面的示例使用 JDK 附带的 ktab 工具。您可以在 AdoptOpenJDK(链接在新窗口中打开) 下载该工具。使用 ktab 创建密钥时,请使用 UPN 格式的登录主体(例如,service@EXAMPLE.COM),而不是服务主体名称(例如 HTTP/service.example.com@EXAMPLE.COM)。您还可以使用 ktpass 实用程序生成密钥表,在这种情况下,您可以使用主体名称的任一样式。

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

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

  2. 将密钥表复制到 Tableau Server 数据目录中,并验证运行身份服务帐户是否可以访问和读取密钥表文件。默认情况下,Tableau Server 数据目录位于 C:\ProgramData\Tableau。如果在分布式部署中运行 Tableau Server,请在群集中的初始节点上执行此步骤。

  3. 运行以下 TSM 命令以设置运行身份服务帐户和密钥表文件路径:

    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-keytab>

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

  4. 创建 krb5.conf 文件,并安装在所有 Tableau Server 节点上的 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