针对Tableau Server配置反向代理
Posted TableauAnalysis
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了针对Tableau Server配置反向代理相关的知识,希望对你有一定的参考价值。
一、反向代理如何与 Tableau Server 配合工作
下图说明了当客户端向配置为使用反向代理服务器的TableauServer 发出请求时的通信路径。
1、外部客户端发起 TableauServer 连接。此客户端使用为反向代理服务器配置的公共 URL,例如 https://tableau.example.com。(客户端不知道它在访问反向代理。)
2、反向代理反过来会将该请求映射至Tableau Server 请求。可以将反向代理配置为(使用SSL/TLS)对客户端进行身份验证,以作为将请求传递给 TableauServer 的前提条件。
3、Tableau Server获取请求并将其响应发送到反向代理。
4、反向代理将内容发回给客户端。就客户端而言,它刚与Tableau Server 进行了交互,并且无法得知反向代理已传递了通信。
二、代理服务器和SSL
为了获得更好的安全性,应该将反向代理服务器配置为对网络外部的任何流量使用 SSL。这有助于保护隐私、内容完整性和身份验证。除非已经采取了其他安全措施来保护您的 Internet 网关与 Tableau Server 之间的流量,否则,也建议配置网关代理与 Tableau Server 之间的 SSL。可以使用内部证书或自签名证书来对 Tableau 服务器和其他内部计算机之间的流量进行加密。
移动访问
Tableau Server 会向 TableauMobile 会话的所有 HTTP 响应中添加 X 标头。默认情况下,大多数代理解决方案将保留 X 标头。如果您的代理解决方案未保留 X 标头,则您需要配置代理服务器以便为移动客户端会话的所有 HTTP 响应保留以下标头:X-Tableau: Tableau Server.
如果在代理服务器网关处配置了身份验证,则代理服务器必须使用 HTTP 302 响应来响应 Tableau Mobile HTTP 请求。302 必须重定向到身份提供程序登录页面。
三、反向代理和用户身份验证
Tableau Server 会始终验证用户的身份。这意味着,即使在组织网关处对入站连接进行身份验证,Tableau Server 仍将验证用户的身份。因此,推荐采用不会在网关处提示Tableau Desktop 或浏览器用户请求进行身份验证的透明方案。这种推荐方案不会禁止在网关代理处为客户端/服务器系统级别身份验证使用 SSL,事实上,强烈建议使用 SSL 系统级别身份验证。
可以将 SAML、OpenID Connect 或 Trusted Tickets 与反向代理一起使用。
如果组织使用 Active Directory 进行身份验证:
1、不支持将启用自动登录 (SSPI) 的 Active Directory 与反向代理一起使用。
2、在将 Tableau Server 配置为使用 Kerberos 之前,必须针对反向代理配置 Tableau Server。
四、将Tableau Server 配置为使用反向代理服务器
在配置 Tableau Server 之前,您需要收集有关代理服务器配置的以下信息。若要配置 Tableau Server,请使用 tsm configuration set命令。您需要收集的信息与运行 tsm 时所需的选项对应。
项 |
说明 |
对应的 tsm configuration set选项 |
|
gateway.trusted |
|
FQDN |
人员访问 Tableau Server 所使用的完全限定的域名,如 tableau.example.com。Tableau Server 不支持为此选项使用 URL,例如 example.com/tableau。 |
gateway.public.host |
非 FQDN |
人员访问 Tableau Server 所使用的完全限定的域名,如 tableau.example.com。Tableau Server 不支持为此选项使用 URL,例如 example.com/tableau。 |
gateway.trusted_hosts |
别名 |
代理服务器的任何公共备用名称。大多数情况下,会使用 CNAME 值指定别名。例如,代理服务器 bigbox.example.com 以及 CNAME 条目 ftp.example.com 和 www.example.com |
gateway.trusted_hosts |
端口 |
从客户端到反向代理服务器的流量的端口号。 |
|
如果使用 Tableau Server 的分布式安装,则在群集中的主节点上运行以下 tsm 命令。
1、输入以下命令以设置客户端通过代理服务器访问Tableau Server 时将使用的 FQDN,其中 name 是 FQDN:
tsm configuration set -k gateway.public.host -v 'name'
举例来说,如果通过在浏览器中输入 https://tableau.example.com 来访问 Tableau Server,请输入此命令:
tsm configuration set -k gateway.public.host -v 'tableau.example.com'
tsm configuration set -k gateway.trusted -v 'server_ip_address'
3、输入以下命令以为代理服务器指定备用名称,例如它的完全限定域名、任何非完全限定域名和任何别名。如果有多个名称,请用逗号将名称隔开。
tsm configuration set -k gateway.trusted_hosts -v'name1, name2, name3'
例如:
tsm configuration set -k gateway.trusted_hosts -v 'proxy1.example.com,proxy1, ftp.example.com, www.example.com'
4、如果代理服务器使用 SSL 与 Internet 通信,请运行以下命令,告知 Tableau 反向代理服务器正在使用端口 443,而不是端口 80:
tsm configuration set -v gateway.public.port -k '443'
注意:如果代理服务器使用 SSL 与 Tableau Server 进行通信,则必须在 Tableau Server 上配置和启用 SSL。
5、输入以下命令以提交配置更改:
tsm pending-changes apply
五、将反向代理服务器配置为使用 Tableau Server
当客户端通过反向代理访问 Tableau Server 时,必须要保留(或添加)特定消息标头。具体而言,必须在 gateway.trusted 和 gateway.trusted_hosts 设置中表示消息链中的所有代理服务器。
下图显示了一个单跳消息链的示例标头,在该消息链中,代理服务器直接与 Tableau Server 通信:
下图显示了一个多跳消息链的示例标头,在该消息链中,消息在连接到 Tableau Server 之前将穿过两个代理服务器:
下表介绍了这些标头,以及这些标头如何与 Tableau Server 上的配置设置相关:
标题 |
说明 |
相关的TableauServer配置 |
REMOTE_ADDR 和 X-FORWARDED-FOR (XFF) |
||
HOST 和 X-FORWARDED HOST(XFH) |
这些标头用于在 Tableau Server 回复客户端时生成指向 Tableau Server 的绝对链接。X-FORWARDED-HOST 标头必须按连接进行的顺序将主机名提供给 Tableau Server。 |
X-FORWARDED-HOST 标头中呈现的主机名必须包括在 gateway.trusted_hosts 中指定的主机名中。 |
X-FORWARDED-PROTO (XFP) |
如果为从客户端到代理的流量启用了 SSL,但没有为从代理到 Tableau Server 的流量启用,则必须提供标题。 对于未沿着消息路由的每个跃点来维护 HTTP 或 HTTPS 况, X-FORWARDED-PROTO 标头很重要。例如,如果反向代理需要使用 SSL 来处理外部请求,但是未将反向代理与 Tableau Server 之间的通信配置为使用 SSL,则需要提供 X-FORWARDED-PROTO 标头。有些代理解决方案会自动添加 X-FORWARDED-PROTO 头,而有些则不会。最后,根据您的代理解决方案,您可能必须配置端口转发以将请求从端口 443 转到端口 80。
|
必须在相应的参数中指定反向代理上的端口配置(来自客户端的入站连接以及到 Tableau Server 的出站连接):gateway.public.port,这是用于连接到代理的端口客户端。 如果代理服务器使用 SSL 与 Tableau Server 进行通信,则必须在 Tableau Server 上配置和启用 SSL。
|
以上是关于针对Tableau Server配置反向代理的主要内容,如果未能解决你的问题,请参考以下文章