Kerberos
- 版本 :2022.1 及更高版本
Kerberos 是一种三向的身份验证协议,它依赖于使用名为“密钥分发中心”(KDC) 的受信任第三方网络服务来验证计算机的身份,以及通过交换“票证”在计算机之间提供安全的连接。
Kerberos 是一种三向的身份验证协议,它依赖于使用名为“密钥分发中心”(KDC) 的受信任第三方网络服务来验证计算机的身份,以及通过交换“票证”在计算机之间提供安全的连接。这些票证在计算机或服务之间提供相互身份验证,并验证某计算机或服务是否有权访问另一计算机或服务。
Tableau Server 支持 Active Directory Kerberos 环境中的 Kerberos 身份验证(Tableau Server 用户的身份验证由 Kerberos 处理)。
注意:Tableau Server 中的 Kerberos 支持是针对用户身份验证的。它并不处理与 Tableau Server 内容(例如工作簿)有关的内部权限和授权。
Kerberos 的工作原理
当在 Active Directory (AD) 环境中将 Tableau Server 配置为使用 Kerberos 时,AD 域控制器还充当 Kerberos 密钥分发中心 (KDC),并向域中的其他节点颁发票证授予票证。由 KDC 验证身份的用户在连接到 Tableau Server 时不必接受进一步的身份验证。
下面是身份验证工作流的图示。
用户登录到其 Active Directory 域。 | Kerberos KDC 验证用户的身份并将“票证授予票证”(TGT) 发送到用户的计算机。 | ||
用户在 Tableau Desktop 或 Web 浏览器中连接到 Tableau Server。 | Tableau Server 验证用户身份。 |
此部分中的其他文章
您可以为在 Active Directory 环境中运行的 Tableau Server 配置 Kerberos 身份验证。
一般要求
外部负载平衡器/代理服务器:如果打算在具有外部负载平衡器 (ELB) 或代理服务器的环境中将 Tableau Server 与 Kerberos 一起使用,必须先对它们进行设置,再使用 Tableau Server 配置实用工具配置 Kerberos。请参见针对 Tableau Server 配置代理。
iOS 浏览器支持:如果安装了指定用户 Kerberos 身份的配置文件,则 iOS 用户可以将 Kerberos 身份验证与 Mobile Safari 一起使用。请参见 Tableau Mobile 帮助中的针对 Kerberos 支持配置 iOS 设备。有关 Kerberos SSO 的浏览器支持的详细信息,请参见Kerberos SSO 的 Tableau 客户端支持。
Tableau Server 支持为数据源身份验证使用约束委派。在此方案中,会专门授予 Tableau 数据访问帐户对目标数据库 SPN 的委派权。不支持非约束委派。
必须为 Kerberos 身份验证配置受支持的数据源(SQL Server、MSAS、PostgreSQL、Hive/Impala 和 Teradata)。
一个密钥表文件,该文件配置为具有 Tableau Server 用户身份验证所用的服务提供程序名称。有关详细信息,请参见了解密钥表要求。
Active Directory 要求
您必须满足以下要求才能在 Active Directory 环境中将 Tableau Server 与 Kerberos 一起运行:
Tableau Server 必须使用 Active Directory (AD) 进行身份验证。
域必须是 AD 2003 或更高版本的域才能实现 Tableau Server 的 Kerberos 连接。
智能卡支持:如果用户使用智能卡登录到其工作站,而且此登录导致通过 Active Directory 向用户授予 Kerberos TGT,则智能卡受支持。
单点登录 (SSO):在用户登录到其计算机时,必须通过 Active Directory 授予其 Kerberos 票证授予票证 (TGT)。这对于联接域的 Windows 计算机和使用 AD 作为网络帐户服务器的 Mac 计算机是标准行为。有关使用 Mac 计算机和 Active Directory 的详细信息,请参见 Apple 知识库的将 Mac 联接到网络帐户服务器。
Kerberos 委派
对于 Kerberos 委派方案,需要以下内容:
如果域是 AD 2003 或更高版本,则支持单域 Kerberos 委派。用户、Tableau Server 和后端数据库必须位于同一个域中。
如果域是 AD 2008,则提供的跨域支持有限。如果满足以下条件,则可以委派来自其他域的用户。Tableau Server 和后端数据库必须位于同一个域中,并且在 Tableau Server 所在的域与用户的域之间需要双向信任。
如果域是 2012 或更高版本,则支持完整的跨域委派。AD 2012 R2 是首选版本,因为该版本有用于配置约束委派的对话框,而 2012 非 R2 需要手动配置。
Kerberos 身份验证依赖于存储在特殊格式文件(称为密钥表文件)中的凭据。您可能需要为 Tableau Server 部署生成密钥表文件。本主题介绍 Tableau Server 用于访问一个典型组织中的各种服务的密钥表文件。您可能需要为 Tableau Server 生成密钥表以集成到以下服务中:
Windows Active Directory 中的用户身份验证 (SSO)
数据源委派
操作系统
目录服务
如果组织中有负责处理身份、身份验证和/或安全性的 IT 专家,则您应与他们协作,创建一个用于为 Tableau Server 部署生成适当密钥表的规划。
Windows Active Directory 中的用户身份验证 (SSO)
如果将使用 Active Directory 作为 Tableau Server 的身份存储,并且希望向使用 Kerberos SSO 进行身份验证,则您将需要为 Tableau Server 生成密钥表文件。
Tableau 运行平台... | 需要手动生成密钥表? |
---|---|
Active Directory 域中的 Windows | 是 |
Active Directory 域中的 Linux | 是 |
非 Active Directory 环境中的 Windows 或 Linu | Kerberos SSO 方案不受支持。 |
请遵循以下建议(适用于 Windows 版和 Linux 版 Tableau Server):
在您的目录中为 Tableau Server 创建一个服务帐户。
专门为 Tableau Server 服务帐户创建一个密钥表。不要重用计算机帐户/操作系统用于进行身份验证的密钥表文件。您可以将在上面方案中用于目录身份验证的相同密钥表用于 Kerberos SSO。
您必须在 Active Directory 中为 Tableau Server 服务创建服务主体名称。
在下一部分中使用批处理文件来创建 SPN 和密钥表文件。
创建了 SPN 之后,请按配置 Kerberos中所述的方式上载密钥表文件。
批处理文件:在 Active Directory 中设置 SPN 并创建密钥表
您可以使用批处理文件来设置服务主体名称 (SPN) 并创建密钥表文件。在为 Active Directory 中运行的 Tableau Server(Windows 或 Linux 版)启用 Kerberos SSO 的过程中,将执行这些操作。
在以前版本的 Tableau Server(2018.2 之前)中,配置脚本是通过 Tableau Server 配置实用工具生成的。
若要生成配置脚本,请将以下批处理文件内容复制并粘贴到一个文本文件中。该批处理文件为 Tableau Server 创建服务主体名称 (SPN),并为您在文件中指定的用户创建密钥表文件。
执行文件内容中的指令。完成文件的自定义之后,将其另存为 .bat 文件。
此文件必须由域管理员在 Active Directory 域中运行,系统将提示该管理员输入您在文件中指定的帐户的服务帐户密码。
批处理文件使用 Windows set、setspn 和 ktpass 命令。
注意:下面的批处理文件为自我说明文件。但是,如果您没有 Kerberos 和生成密钥表文件的经验,我们建议您在继续之前阅读 Microsoft 博客文章您需要了解的所有密钥表文件相关信息。组织中的环境详细信息可能要求对 ktpass 命令进行额外配置。例如,您必须确定要为 /crypto
参数设置什么值。我们建议指定 KDC 所需的单一 /crypto
值。有关 /crypto
参数支持的值的完整列表,请参见 Microsoft 文章 ktpass。
SPN 和密钥表批处理文件内容
@echo offsetlocal EnableDelayedExpansionREM ******* REM This script generates the Service Principal Names (SPNs) and keytab files required for REM Kerberos SSO with Apache.REM This script executes set, setspn, and ktpass commands included in any Windows Server REM Operating System from 2003 on.REM Before running this script you must enter configuration information for the setspn and REM ktpass commands. REM Elements that require your configuration information are enclosed in as such:REM ! -- and --!. REM After you customize this file, save it as a .bat file, and run on a domain-joined REM computer. REM This script must be run by a Domain admin.REM **********REM The following set command will prompt the domain admin for credentials of the REM Tableau Server service account. REM This account must be a valid domain user account.REM If the password contains a literal \" (blackslash - double quote), all backslashes REM immediately before the double quote must beREM duplicated when typed for the password to work, e.g. if password contains REM \" replace with \\", if passwords contains \\" replace with \\\\"set /p adpass= "Enter password for the Tableau Server service account."set adpass=!adpass:"=\"!REM **********REM The following setspn commands create the SPN in the domain.REM More information on setspn can be found here: REM http://technet.microsoft.com/en-us/library/cc731241(WS.10).aspx REM Enter the canonical FQDN and the host names for Tableau Server followed by the REM Tableau Server service account name.REM Use this syntax: HTTP/hostname domain\service_account_name.REM The example below shows syntax for a computer named "tableau01" in the "example.lan" REM domain, with service account, "tab-serv-account":REM setspn -s HTTP/tableau01 example\tab-serv-accountREM setspn -s HTTP/tableau01.example.lan example\tab-serv-account REM DNS and AD are not case sensitive, but the keytab files are. Verify that host names REM match letter case as stored in DNS. REM Use Windows Server's DNS Manager utility to verify host name case.REM **********echo Creating SPNs... setspn -s HTTP/!--replace with canonical host name and service account --! setspn -s HTTP/!--replace with canonical FQDN and service account --!REM **********REM The following commands create the keytab file in the same directory where the REM bat file is run. More information on ktpass can be found here: REM https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass REM Note: keytab files are case-sensitive.REM The realm following the FQDN should be all uppercase.REM Syntax is:REM ktpass /princ HTTP/!--FQDN--!@!--Kerberos_Realm--! /pass !adpass!REM /pttype KRB5_NTPRINCIPAL /crypto !--cipher--! /out keytabs\kerberos.keytabREM Best practice: specify the /crypto value that is required by your KDC. REM Options for /crypto = {DES-CBC-CRC|DES-CBC-MD5|RC4-HMAC-NT|AES256-SHA1|AES128-SHA1|All}REM Specifying /crypto All will result in passwords stored with RC4 cipher, which isREM no longer considered secure.REM When using AES256-SHA1 OR AES128-SHA1, the /mapuser option must be included REM in the ktpass command to ensure the keytab file is mapped properly to the user. For example:REM ktpass /princ HTTP/!--FQDN--!@!--Kerberos_Realm--! /pass !adpass! /ptype KRB5_NT_PRINCIPAL /mapuser /crypto AES256-SHA1 /out keytabs\kerberos.keytabREM The following example shows the ktpass syntax with the example.lan configuration from above:REM ktpass /princ HTTP/!--FQDN--!@!--Kerberos_Realm--! /pass !adpass! /ptype KRB5_NT_PRINCIPAL /crypto DES-CBC-CRC /out keytabs\kerberos.keytab REM **********echo Creating Keytab files in %CD%\keytabsmkdir keytabs ktpass /princ HTTP/!--FQDN--!@!--Kerberos_Realm--! /pass !adpass! /ptype KRB5_NT_PRINCIPAL /crypto DES-CBC-CRC /out keytabs\kerberos.keytab
操作系统
如果组织使用 Kerberos 进行身份验证,则运行 Tableau Server 的计算机必须向它在其中运行的 Kerberos 域进行身份验证。
Tableau 运行平台... | 需要手动生成密钥表? |
---|---|
Active Directory 域中的 Windows | 否 |
Active Directory 域中的 Linux | 是 |
非 Active Directory 环境中的 Windows 或 Linu | 是 |
如果运行 Windows 版 Tableau Server,并且计算机已加入 Active Directory,则您无需为操作系统管理或生成密钥表文件。
如果在 Kerberos 域(MIT KDC 或 Active Directory)中运行 Linux 版 Tableau Server,则您需要专门为计算机操作系统生成密钥表文件。您为计算机创建的密钥表应专用于操作系统身份验证。不要为您将用于本主题后面描述的其他服务的操作系统身份验证使用同一密钥表文件。
目录服务
如果组织使用目录服务(例如 LDAP 或 Active Directory)来管理用户身份,则 Tableau Server 将需要该目录的只读访问权限。
或者,您可以通过安装本地身份存储将 Tableau Server 配置为管理所有帐户。在这种情况下,您不需要密钥表。
下表汇总了密钥表要求:
Tableau 运行平台... | 目录服务 | 需要手动生成密钥表? |
---|---|---|
AD 域中的 Windows | Active Directory | 否 |
Windows | LDAP(GSSAPI 绑定) | 是 |
Linux | Active Directory 或 LDAP(GSSAPI 绑定) | 是 |
Windows 或 Linux | Active Directory 或 LDAP(简单绑定) | 否 |
Windows 或 Linux | 本地身份存储 | 不需要密钥表。 |
如果需要为此方案手动生成密钥表,则您将需要使用它通过 GSSAPI 绑定到目录。请遵循以下建议:
在您的目录中为 Tableau Server 创建一个服务帐户。
专门为 Tableau Server 服务帐户创建一个密钥表。不要重用计算机帐户/操作系统用于进行身份验证的密钥表文件。
上载密钥表文件作为 Tableau Server 身份存储 json 配置的一部分。请参见identityStore 实体。
作为灾难恢复计划的一部分,我们建议将密钥表和配置文件的备份保留在 Tableau Server 外的安全位置。添加到 Tableau Server 的密钥表和配置文件将由客户端文件服务存储并分发到其他节点。但是,这些文件不会以可恢复格式存储。请参见Tableau Server 客户端文件服务。
数据源委派
您也可以使用 Kerberos 委派在 Active Directory 中访问数据源。在此方案中,可以使用支持的身份验证机制(SAML、本地身份验证、Kerberos 等)向 Tableau Server 验证用户的身份,但用户可访问 Kerberos 启用的数据源。
请遵循以下建议:
Tableau Server(Windows 或 Linux)的计算机帐户必须位于 Active Directory 域中。
用于 Kerberos 委派的密钥表文件可以与用于 Kerberos 用户身份验证 (SSO) 的密钥表相同。
密钥表必须映射到 Active Directory 中的 Kerberos 委派服务主体。
您可以为多个数据源使用相同密钥表。
有关详细信息,请参见以下配置主题:
Linux 版 Tableau Server:启用 Kerberos 委派
Windows 版 Tableau Server:启用 Kerberos 委派
可以将 Tableau Server 配置为使用 Kerberos。这使您能够在组织中的所有应用程序之间提供单点登录 (SSO) 体验。在将 Tableau Server 配置为使用 Kerberos 之前,确保环境满足 Kerberos 要求。
注意:不支持针对 Tableau Server 的 Kerberos SSO 约束委派。(支持数据源的约束委派。)有关详细信息,请参见Kerberos 要求中的“单点登录 (SSO)”。
若要配置 Kerberos,必须先启用 Kerberos,然后指定用于用户身份验证的 keytab 文件。必须为您指定的 keytab 文件配置用于用户身份验证的 Tableau Server 服务提供程序名称。如果为数据源使用 Kerberos 身份验证,则应将这些凭据包括在您将在 Tableau Server 上配置 Kerberos 的过程中指定的单一 keytab 文件中。
作为灾难恢复计划的一部分,我们建议将密钥表文件的备份保留在 Tableau Server 外的安全位置。添加到 Tableau Server 的密钥表文件将由客户端文件服务存储并分发到其他节点。但是,该文件不会以可恢复格式存储。请参见Tableau Server 客户端文件服务。
在浏览器中打开 TSM:
https://
在“配置”选项卡上单击“用户身份和访问”,然后单击“身份验证方法”。
在“身份验证方法”下的下拉菜单中选择“Kerberos”。
在“Kerberos”下,选择“为单点登录 (SSO) 启用 Kerberos”。
若要将密钥表文件复制到服务器,请单击“选择文件”,然后浏览到您的计算机上的文件。
输入配置信息后,单击“保存待处理的更改”。
单击页面顶部的“待定更改”:
单击“应用更改并重新启动”。
确认 SSO 配置
在 Tableau Server 重新启动后,在另一台计算机上的 Web 浏览器中,通过在 URL 窗口内键入 Tableau Server 名称来测试 Kerberos 配置:
Tableau Server 应会自动验证您的身份。
本文介绍有关将 Kerberos 单点登录 (SSO) 与 Tableau Server 结合使用的一些要求和细微差别,具体情况取决于特定 Tableau 客户端和操作系统。本文中涵盖的 Tableau 客户端包括常用 Web 浏览器、Tableau Desktop 和 Tableau Mobile 应用。
一般浏览器客户端支持
要使用基于浏览器的 Kerberos 单点登录 (SSO),必须满足以下条件:
必须在 Tableau Server 上启用 Kerberos。
用户必须具有用于登录到 Tableau Server 的用户名和密码。
注意:如果 Kerberos SSO 失败,用户可以回退为使用其用户名和密码凭据。
必须在客户端计算机或移动设备上通过 Kerberos 向 Active Directory 验证用户的身份。具体而言,这意味着他们具有 Kerberos 票证授予票证 (TGT)。
Tableau Desktop 和浏览器客户端
在 Windows 或 Mac 上,您可以使用 Kerberos SSO 从以下版本的 Tableau Desktop 或浏览器中登录到 Tableau Server。特别要说明的是,可能需要额外的配置。
Windows
支持 Tableau Desktop 10.3 或更高版本。
Internet Explorer - 支持,可能需要配置,请参见注释 1
Chrome - 支持,可能需要配置,请参见注释 1
Firefox - 需要配置,请参见注释 2
Safari - 不支持
Mac OS X
Tableau Mobile 应用客户端
在 iOS 或 Andoid 设备上,您可以使用以下 Tableau Mobile 或移动浏览器版本,通过 Kerberos 向 Tableau Server 进行身份验证:
iOS
Android - 请参见注释 5
Tableau Mobile 应用
Chrome
特定于操作系统和浏览器的注意事项
以下注意事项描述特定操作系统和客户端组合的配置要求或问题。
注释 1:Windows 桌面上的 Internet Explorer 或 Chrome
Internet Explorer 和 Chrome 上都支持 Kerberos SSO,但需要在 Windows Internet 选项中进行配置:
启用集成 Windows 身份验证。
验证 Tableau Server URL 是否位于本地 Intranet 区域中。
Internet Explorer 有时可能会检测到 Intranet 区域并配置此设置。如果未检测到和配置 Tableau Server URL,则您必须将 URL 手动添加到本地 Intranet 区域。
启用集成 Windows 身份验证:
在 Windows 控制面板中,打开“Internet 选项”。
在“高级”选项卡上,向下滚动到“安全”部分。
选择“启用集成 Windows 验证”。
单击“应用”。
进行验证或将 Tableau Server URL 添加到本地 Intranet 区域:
在 Windows 控制面板中,打开“Internet 选项”。
在“安全”选项卡上上,选择“本地 Intranet”,然后单击“站点”。
在“本地 Intranet”对话框上,单击“高级”。
在“网站”字段中,查找内部 Tableau Server URL。
在某些组织中,IT 管理员将使用通配符 (*) 来指定内部 URL。例如,以下 URL 包括本地 Intranet 区域中内部
example.lan
命名空间内的所有服务器。https://*.example.lan
下图显示了
https://tableau.example.lan
的特定 URL。如果 Tableau Server URL 或通配符 URL 未在“网站”字段中指定,请在“将该网站添加到区域”字段中输入 Tableau Server URL,单击“添加”,然后单击“确定”。
如果 Tableau Server URL 已经列在“网站”中,您只需关闭对话框即可。
注释 2:Windows 或 Mac OS X 桌面上的 Firefox
您可以在 Windows 或 Mac 上将 Firefox 与 Kerberos SSO 结合使用来登录到 Tableau Server。为此,您必须完成以下步骤,将 Firefox 配置为支持 Kerberos:
在 Firefox 的地址栏中输入
about:config
。出现有关更改高级设置的警告时,单击“我承诺我会小心”。
在“搜索”框中输入
negotiate
。双击“network.negotiate-auth.allow-non-fqdn”,然后将值设置为 true。
双击“network.negotiate-auth.trusted-uris”,并输入 Tableau Server 的完全限定域名 (FQDN)。例如,
tableau.example.com
。
注释 3:Mac OS X 桌面上的 Chrome
根据 Chrome 文档,当您使用以下命令从终端窗口中启动 Chrome 时,Kerberos SSO 可在 Mac 上工作::
open -a "Google Chrome.app" --args --auth-server-whitelist="tableauserver.example.com"
其中,tableauserver.example.com
是您的环境中 Tableau Server 的 URL。
但是,我们在测试中发现了不一致的结果。因此,如果想要在 Mac 上使用 Kerberos SSO,我们建议您使用 Safari 或 Firefox。有关详细信息,请参见“The Chromium Projects”站点上 HTTP authentication(HTTP 身份验证)中的“Integrated Authentication”(集成身份验证)部分。
注意:用户仍然可以在 Mac OS X 上使用 Chrome 登录到 Tableau Server,但可能会提示用户使用其用户名和密码登录(单点登录可能不起作用)。
注释 4:iOS 上的 Mobile Safari 或 Tableau Mobile
如果针对 Kerberos 配置了 iOS,则支持 Kerberos SSO。iOS 设备必须已安装 Kerberos 身份验证配置文件。此操作通常由企业 IT 团队完成。Tableau 支持团队无法协助您针对 Kerberos 配置 iOS 设备。请参见 Tableau Mobile 部署指南中的身份验证主题。
注释 5:Android 平台
Android 操作系统上的 Tableau Mobile 应用不支持 Kerberos SSO。您仍然可以使用 Android 设备以及 Tableau Mobile 应用或支持的移动浏览器连接到 Tableau Server。在这种情况下,用户在访问 Tableau Server 时,系统会提示用户输入其凭据,而不是使用 Kerberos 进行身份验证。
详细信息
Tableau Mobile 部署指南:控制 Tableau Mobile 的身份验证和访问权限
请参见 Tableau Server 技术规格下的“Web 浏览器”
本主题中的故障排除建议分为与服务器上的单一登录 (SSO) 相关的问题以及委派数据源的问题。
Tableau Server 单点登录
在 Kerberos SSO 环境中,通过 Web 浏览器或 Tableau Desktop 登录到 Tableau Server 的用户可能会看到一条消息,指明 Tableau Server 无法(使用单点登录)自动将这些用户登录。该消息建议用户改为提供 Tableau Server 用户名和密码。
在客户端计算机上排查登录错误
输入用户名和密码 — 若要检查用户对 Tableau Server 的一般访问权限,请通过输入用户的名称和密码进行登录。
如果这些凭据失败,则该用户可能不是 Tableau Server 上的用户。为了使 Kerberos SSO 起作用,用户必须能够访问 Tableau Server,并且必须获得 Active Directory 授予的票证授予票证 (TGT),如此列表后面的“TGT”项中所述。
检查其他用户的 SSO 凭据 — 尝试使用其他用户帐户通过 SSO 连接到 Tableau Server。如果所有用户均受影响,则问题可能在 Kerberos 配置中。
使用不是服务器计算机的计算机 — 如果在 localhost 上登录 Tableau Server,Kerberos SSO 将不起作用。客户端必须从 Tableau Server 计算机以外的计算机进行连接。
使用服务器名称而不是 IP 地址 — 如果输入 IP 地址作为 Tableau Server 名称,Kerberos SSO 将不起作用。此外,用于访问 Tableau Server 的服务器名称必须与 Kerberos 配置中使用的名称匹配(请参见下面的密钥表条目)。
确认客户端有 TGT — 客户端计算机必须有来自 Active Directory 域的 TGT(票证授予票证)。不支持代理授予票证的约束委派。
若要确认客户端计算机具有 TGT,请执行以下操作:
输出应显示正尝试接受 Tableau Server 身份验证的用户/域的 TGT。
在以下情况下,客户端计算机可能没有 TGT:
客户端计算机使用 VPN 连接。
客户端计算机没有加入域(例如,它是在工作时使用的非工作用计算机)。
用户使用本地(非域)帐户登录到计算机。
计算机是没有将 Active Directory 用作网络帐户服务器的 Mac 计算机。
在 Windows 上,打开命令提示符并键入以下命令:
klist tgt
在 Mac 上,打开终端窗口并键入以下命令:
klist
确认浏览器版本和设置 — 对于 Web 浏览器登录,请确保浏览器对于 Kerberos 受支持并在必要的情况下已正确配置。
有关详细信息,请参见Kerberos SSO 的 Tableau 客户端支持。
Internet Explorer (IE) 和 Chrome 立即可在 Windows 上运行。
Safari 立即可在 Mac 上运行。
Firefox 需要额外的配置。
在服务器上排查登录错误
如果无法通过客户端计算机解决问题,则下面的步骤是在运行 Tableau Server 的计算机上排除故障。管理员可以使用请求 ID 在 Tableau Server 上的 Apache 日志中查找登录尝试。
日志文件 — 查看 Apache error.log 中的错误(含有失败登录尝试的确切日期/时间)。
在 ziplog 存档中,这些日志位于 \httpd 文件夹下。
在 Tableau Server 上,这些日志位于 \data\tabsvc\logs\httpd\ 文件夹中。
键表条目 — 如果 error.log 条目包含“No key table entry matching HTTP/
[Fri Oct 24 10:58:46.087683 2014] [:error] [pid 2104:tid 4776] [client 10.10.1.62:56789] gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, No key table entry found matching HTTP/servername.domain.com@)
此错误是由以下任意项的不匹配造成的:
Kerberos .keytab 文件。
服务器的服务主体名称 (SPN)
Tableau Server URL - 客户端计算机用于访问服务器的 URL。
这是您键入 Tableau Desktop 或浏览器地址栏的名称。它可以是短名称 (
http://servername
),也可以是完全限定域名 (http://servername.domain.com
)服务器 IP 地址的 DNS 反向查找。
它使用 IP 地址查找 DNS 名称。
在命令提示符处,键入:
ping servername
利用在 ping 服务器之后返回的 IP 地址执行 DNS 反向查找,键入:
nslookup
nslookup 命令将返回该 IP 地址的网络信息。在响应的 Non-authoritative answer 部分中,验证完全限定的域名 (FQDN) 是否与以下配置的值匹配:
有关配置这些值的详细信息,请参见了解密钥表要求。
验证 Kerberos 配置脚本
您可能需要修改用于生成环境变量密钥表文件的 ktpass 命令。查看知识库文章无法为 Tableau Server 生成 Kerberos 脚本配置中的疑难解答步骤。
数据源 SSO
委派的数据源访问失败
检查 vizqlserver 日志文件中是否有“workgroup-auth-mode”:
在 ziplog 存档中,这些日志位于 \vizqlserver\Logs 文件夹中
在 Tableau Server 上, 这些日志位于 \data\tabsvc\vizqlserver\Logs 文件夹中
在日志文件中查找“workgroup-auth-mode”。它应显示“kerberos-impersonate”而不是“as-is”。
Kerberos 委派多域配置
Tableau Server 能够从其他 Active Directory 域中委派用户。如果您的数据库使用 MIT Kerberos,您需要将 Kerberos 主体调整为数据库用户映射。具体而言,您将需要使用用户将从中连接的每个 Kerberos 域的规则更新 krb5.conf。使用 [realms]
部分中的 auth_to_local
标记将主体名称映射到本地用户名。
例如,假设一个用户为 EXAMPLE\jsmith
,其 Kerberos 主体为 jsmith@EXAMPLE.LAN
。在这种情况下,Tableau Server 将指定委派用户 jsmith@EXAMPLE
。Tableau Server 将使用 Active Directory 旧域别名作为 Kerberos 域。
目标数据库可能已经有诸如以下规则,用于将用户 jsmith@EXAMPLE.LAN
映射到数据库用户 jsmith
。
EXAMPLE.LAN = {
RULE:[1:$1@$0](.*@EXAMPLE.LAN)s/@.*//
DEFAULT
}
为了支持委派,您必须添加另一条规则,将 jsmith@EXAMPLE 映射到数据库用户:
EXAMPLE.LAN = {
RULE:[1:$1@$0](.*@EXAMPLE.LAN)s/@.*//
RULE:[1:$1@$0](.*@EXAMPLE)s/@.*//
DEFAULT
}
有关详细信息,请参见 MIT Kerberos 文档主题 krb5.conf。
跨域约束委派
在 KDC 运行于 Windows 2012 之前的 Windows Server 上的某些跨域方案中,委派可能会失败。您可能会看到以下错误:
SQL Server Network Interfaces:The system cannot contact a domain controller to service the authentication request.Please try again later.(系统无法联系域控制器来为身份验证请求提供服务。请稍后再试。)
SQL Server Native Client: Cannot generate SSPI context.(SQL Server Native Client:无法生成 SSPI 上下文。)
域控制器将返回:
KRB-ERR-POLICY error with a status STATUS_CROSSREALM_DELEGATION_FAILURE (0xc000040b)
。
“跨域”是指 Tableau Server 使用不同服务帐户运行在与数据源不同的域中的情形。例如:
Tableau Server 使用 DomainA 服务帐户运行在 DomainA 上。
SQL Server 使用 DomainB 服务帐户运行在 DomainB 上。
只有当两个服务器位于同一域中时,传统约束委派才能工作。用户可能来自其他域。
如果您看到上述错误,则您的 Active Directory 管理员应移除在委派帐户上配置的任何传统约束委派以启用此方案。可以使用 Active Directory 管理工具或通过移除与 Active Directory 属性 msDS-AllowedToDelegateTo.
关联的值来移除委派。
如果想要随跨域委派一起保留现有单域委派,您必须使用基于资源的约束委派对两者进行配置。
有关 Kerberos 和约束委派的详细信息,请参见 Microsoft 主题 Kerberos 约束委派概述。
Web 制作
有两种不支持 Kerberos 委派的 Web 制作场景:“在 Web 上连接到数据”和“在 Web 上创建数据源”功能尚不支持委派。具体而言,如果通过 Web 制作创建使用 Kerberos 的数据源,则数据源将使用“运行身份服务帐户”身份验证。如果要使用 Kerberos 委派创建数据源,则必须使用 Tableau Desktop 进行发布。有关运行身份服务帐户的详细信息,请参见使用运行身份服务帐户访问数据。