配置具有独立网关的身份验证模块

一种常见的安全做法是:只允许经过身份验证的请求通过 DMZ 服务器的内部防火墙。独立网关支持传统的 Tableau Server 身份验证方法,但它还包括允许集成 Apache httpd 可加载模块以进行自定义身份验证的配置属性。

例如,通过在 Tableau Server 上配置 SAML 并配置自定义身份验证模块,您可以要求所有用户在独立网关上向您的 IdP 进行身份验证。只有经过身份验证的用户才能访问 Tableau Server,然后 Tableau Server 才能进行身份验证并授权用户访问。

有关此身份验证方案的更详细说明,请参见企业部署指南中的使用 AuthN 模块进行预身份验证(链接在新窗口中打开)

若要配置身份验证模块,您必须完成以下步骤:

  1. 生成身份验证模块配置文件。设置完成后,每个模块及其配置指令将被视为“包括”选项,从而使包含的文件在逻辑上成为整个 httpd 配置的一部分。
  2. 将配置文件复制到每台运行独立网关的计算机。所有文件都必须复制到每台独立网关计算机上的相同位置。每个文件都映射到由 Tableau Server 管理的配置属性。
  3. 在 Tableau Server 上使用 tsm configuration set 命令设置配置属性。

不要在独立网关上编辑 httpd 配置文件 (httpd.conf),因为独立网关包括相关逻辑,用于根据 Tableau Server 上的 TSM 命令所做的更改更新 httpd 配置。

身份验证模块配置示例

有关端到端身份验证模块配置示例,请参见企业部署指南中的示例身份验证配置:带有外部 IdP 的 SAML(链接在新窗口中打开)。以下示例介绍如何使用 Okta IdP 和 Mellon 身份验证模块为在 AWS 中运行的 Linux 版 Tableau Server 设置和配置 SAML。虽然该示例描述了适用于 Linux 的过程,但是配置示例对于 Windows 版 Tableau Server 也很有用。

配置属性

下表描述了您可以参考的各种配置文件。每个文件都映射到在 Tableau Server 上设置的配置属性。 在路径中使用正斜杠,即使在 Windows 上也是如此(Apache httpd 约定。)您只需定义制定自定义身份验证配置所需的属性。跳过任何不需要的配置属性。

配置属性描述
gateway.tsig.authn_module_block出现在一组正常加载的 Apache httpd 模块的末尾。目的是让文件包含一个或多个 LoadModule 指令。模块本身应使用完整路径进行标识。
gateway.tsig.authn_global_block出现在所有 LoadModule 参考之后和大多数其他 Apache httpd 指令之前。目的是为自定义模块所需的任何配置指令提供一个位置。
gateway.tsig.authn_globalbottom_block出现在配置文件的最底部,同样处于全局级别。目的是为自定义模块所需的任何配置指令提供一个位置,这些配置指令必须专门位于各种其他指令之后。(您不太可能需要此项。)
gateway.tsig.authn_location_block出现在 <Location "/"> 块内容,覆盖所有 URL 路径。
gateway.tsig.authn_directory_block此项出现在 <Directory "/"> 块内容,覆盖独立网关提供的文件的所有路径。(您不太可能需要此项。独立网关提供的大多数文件都是非敏感静态资产,例如图像和 JavaScript 文件。)
gateway.tsig.authn_virtualhost_block

出现在一两个 <VirtualHost> 块中:一个用于 TLS(如果启用),一个用于非 TLS。如果已配置,则两个位置都包含相同的文件。如果需要区分这两种情况,可以使用标准的 Apache httpd HTTPS 环境变量。

<Location "/tsighk">

除了用于正常请求流量的预期 <Location "/"> 块之外,还有一个 <Location "/tsighk"> 块,用于服务内部独立网关整理 (HK) 请求。这些 HK 请求有自己的身份验证保护,不适用于典型的自定义 SSO 解决方案。

您可能需要明确排除您的自定义模块尝试对 HK URL 路径进行身份验证。

若要确定是否需要排除模块,请先配置模块。然后在独立网关访问日志中查找 HK 请求。您应该每分钟至少看到一次或两次状态检查。如果这些请求收到 200 响应代码,则可能一切正常。另一方面,如果这些请求收到 3xx 响应代码(重定向到您的自定义身份验证提供程序),那么您需要对其进行处理。

可行的解决方案包括:

  • <Location "/tsighk"> 块包含指令 AuthType None,这可能就足够了。
  • 独立网关 httpd.conf 具有标准的 Apache httpd 指令 ProxyPreserveHost(链接在新窗口中打开) On。如果有异常情况需要将其设置为 Off 或其他值,可以通过 TSM 配置项 gateway.tsig.proxypreservehost 设置该值。
  • 您可能需要一些特定于模块的指令来为 <Location "/tsighk"> 禁用您的身份验证模块。您不能直接在 httpd.conf 文件中修改该块。相反,您可以在 gateway.tsig.authn_global_block文件中建立另一个 <Location "/tsighk"> 块,并让 Apache httpd 对其进行逻辑合并。例如,常用的开源身份验证模块 mod_auth_mellon 的某些版本对于其不适用的部分需要 MellonEnable Off,即使在这些部分中设置 AuthType None 也是如此。
  • 按前一项中所述创建额外的 <Location "/tsighk"> 部分时,您可能会发现 httpd.conf 文件中各个部分的出现顺序会使它们的相互影响方式有所不同。标准 <Location "/tsighk"> 部分出现在标准 <Location "/"> 部分之前。如果您的实验表明需要一些不同的顺序,则除了另一个 <Location "/tsighk"> 部分,您可能还必须在 gateway.tsig.authn_global_block 块中定义另一个 <Location "/"> 部分,在这种情况下,您可能不需要 gateway.tsig.authn_location_block 块中的任何内容。

自定义身份验证模块配置疑难解答

了解独立网关如何构成 httpd.conf 文件的一种方便方法是使用指向独立网关计算机上的空文件的值设置 TSM 配置项。(这些文件必须存在,但可以为空。)然后,您可以查看独立网关的 httpd.conf 文件,以具体了解各种配置文件的 Include 指令将实际在何处出现。

独立网关 httpd.conf 中的配置问题可能导致 tsig-httpd 服务无法启动。其他配置问题可能会干扰从 Tableau Server 群集上的独立网关配套服务接收配置更新。在解决了导致问题的任何问题后,一种恢复方法是将 TSIG_DATA/config/httpd.conf.stub 复制到 TSIG_DATA/config/httpd.conf,然后重新启动 tsig-httpd 服务。

有关更多故障排除提示,请参见企业部署指南 (EDG)中的 Tableau Server 独立网关故障排除(链接在新窗口中打开)。EDG 提供了在 Linux 上部署 Tableau Server 的示例。故障排除步骤对于 Windows 或 Linux 版本的 Tableau Server 非常有用。

感谢您的反馈!您的反馈已成功提交。谢谢!