配置相互 SSL 身份验证

使用相互 SSL,您可以为 Tableau Desktop、Tableau Mobile 和其他认可的 Tableau 客户端的用户提供安全的 Tableau Server 直接访问体验。借助相互 SSL,当具有有效 SSL 证书的客户端连接到 Tableau Server 时,Tableau Server 将确认存在客户端证书,并基于客户端证书中的用户名对用户进行身份验证。如果客户端没有有效的 SSL 证书,则 Tableau Server 会拒绝连接。

您也可以将 Tableau Server 配置为在相互 SSL 失败的情况下回退为使用用户名/密码身份验证。此外,无论是否配置回退身份验证,用户都可以使用用户名和密码(如果存在)通过 REST API 登录。

用户身份验证会话时间限制

当用户使用相互 SSL 登录时,身份验证会话的管理方法与管理 Tableau Server 全局身份验证会话配置的方法相同。

对于使用 Web 浏览器连接到 Tableau Server 的客户端,安全强化检查表中描述了全局身份验证会话的配置,请参见 9.验证会话生命周期配置

连接的客户端(Tableau Desktop、Tableau Mobile、Tableau Prep Builder 和 Bridge)的会话使用 OAuth 令牌通过重新建立会话来保持用户登录。默认情况下,OAuth 客户端令牌会在一年后重置。如果客户端令牌在 14 天内未使用,则它将过期。可通过设置 refresh_token.absolute_expiry_in_secondsrefresh_token.idle_expiry_in_seconds 选项来更改这些值。请参见 tsm configuration set 选项

证书使用情况

在启用和配置相互 SSL 之前,您必须配置外部 SSL。外部 SSL 向客户端验证 Tableau Server,并使用配置外部 SSL 时所需的证书和密钥加密会话。

对于相互 SSL,需要额外的证书文件。该文件是 CA 证书文件的级联。文件类型必须为 .crt。“CA”是向连接到 Tableau Server 的客户端计算机颁发证书的证书颁发机构。上传 CA 证书文件的操作会建立信任,使 Tableau Server 能够对客户端计算机提供的单个证书进行身份验证。

作为灾难恢复计划的一部分,我们建议将证书和吊销(如果适用)文件的备份保留在 Tableau Server 外的安全位置。添加到 Tableau Server 的证书和吊销文件将由客户端文件服务存储并分发到其他节点。但是,这些文件不会以可恢复格式存储。请参见Tableau Server 客户端文件服务

RSA 密钥和 ECDSA 曲线大小

用于相互 SSL 的 CA 证书的 RSA 密钥强度必须为 2048,或者 ECDSA 曲线大小为 256。

您可以通过设置相应的配置键来将 Tableau Server 配置为接受安全性较低的大小:

  • ssl.client_certificate_login.min_allowed.rsa_key_size
  • ssl.client_certificate_login.min_allowed.elliptic_curve_size

请参见 tsm configuration set 选项

客户端证书要求

使用双向 SSL 向 Tableau Server 进行身份验证的用户必须提供满足最低安全要求的客户端证书。

签名算法

客户端证书必须使用 SHA-256 或更强的签名算法。

配置为相互 SSL 身份验证的 Tableau Server 将阻止通过使用 SHA-1 签名算法客户端证书进行用户身份验证。

尝试使用 SHA-1 客户端证书登录的用户遇到“Unable to sign in”(无法登录)错误,并且 VizPortal 日志将出现以下错误:

Unsupported client certificate signature detected: [certificate Signature Algorithm name]

您可以通过设置 ssl.client_certificate_login.blocklisted_signature_algorithms tsm 配置选项,将 Tableau Server 配置为接受不太安全的 SHA-1 签名算法。

RSA 密钥和 ECDSA 曲线大小

用于相互 SSL 的客户端证书的 RSA 密钥强度必须为 2048,或者 ECDSA 曲线大小为 256。

Tableau Server 将拒绝来自不符合这些要求的客户端证书的相互身份验证请求。您可以通过设置相应的配置键来将 Tableau Server 配置为接受安全性较低的大小:

  • ssl.client_certificate_login.min_allowed.rsa_key_size
  • ssl.client_certificate_login.min_allowed.elliptic_curve_size

请参见 tsm configuration set 选项

  1. 针对与来往 Tableau Server 的外部 HTTP 流量配置 SSL

  2. 在浏览器中打开 TSM:

    https://<tsm-computer-name>:8850。有关详细信息,请参见登录到 Tableau 服务管理器 Web UI

  3. “配置”选项卡上,选择“用户身份和访问”>“身份验证方法”

  4. “身份验证方法”下的下拉菜单中选择“相互 SSL”

  5. 在“相互 SSL”下,选择“通过客户端证书使用相互 SSL 和自动登录”

  6. 单击“选择文件”,并将您的证书颁发机构 (CA) 证书文件上载到服务器。

    该文件 (.crt) 是一个一体式文件,其中包括用于客户端身份验证的 CA 证书。您上载的文件必须是各种 PEM 编码的证书文件的级联,按优先顺序排列。

  7. 输入组织的其余 SSL 配置信息。

    用户名格式:当 Tableau Server 配置为使用相互 SSL 时,服务器将从客户端证书中获取用户名,以便能够为客户端用户建立直接登录。Tableau Server 使用的名称取决于如何配置 Tableau Server 来进行用户身份验证。

    • 本地身份验证 — Tableau Server 使用证书中的 UPN(用户主体名称)。
    • Active Directory (AD)Tableau Server使用 LDAP(轻量级目录访问协议)来获取用户名。

    或者,您可以将 Tableau Server 设置为使用客户端证书中的 CN(公用名称)。

    配置相互 SSL 屏幕截图

  8. 输入配置信息后,单击“保存待处理的更改”

  9. 单击页面顶部的“待定更改”

  10. 单击“应用更改并重新启动”

步骤 1:需要为外部服务器通信使用 SSL

若要将 Tableau Server 配置为对 Tableau Server 和 Web 客户端之间的外部通信使用 SSL,请按如下方式运行 external-ssl enable 命令,并提供服务器证书的 .crt 和 .key 文件的名称:

tsm security external-ssl enable --cert-file <file.crt> --key-file <file.key>

  • 对于 --cert-file--key-file,指定在其中保存了 CA 颁发的 SSL 证书 (.crt) 和密钥 (.key) 文件的位置和文件名。

  • 上面的命令假设您已作为在 Tableau Server 上具有“服务器管理员”站点角色的用户登录。您可以改用 -u-p 参数来指定管理员用户和密码。

  • 如果证书密钥文件需要密码,请包括 --passphrase 参数和值。

步骤 2:配置并启用相互 SSL

在服务器和每个客户端之间添加相互身份验证,并允许 Tableau 客户端用户在第一次提供其凭据后直接进行身份验证。

  1. 运行以下命令:

    tsm authentication mutual-ssl configure --ca-cert <certificate-file.crt>

    对于 --ca-cert,指定证书颁发机构 (CA) 证书文件的位置和文件名。

    该文件 (.crt) 是一个一体式文件,其中包括用于客户端身份验证的 CA 证书。您上载的文件必须是各种 PEM 编码的证书文件的级联,按优先顺序排列。

  2. 运行以下命令以启用相互 SSL 并应用更改:

    tsm authentication mutual-ssl enable

    tsm pending-changes apply

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

其他相互 SSL 选项

可以使用 mutual-ssl configureTableau Server 配置为支持以下选项。

有关详细信息,请参见 tsm authentication mutual-ssl <commands>

后备身份验证

如果 Tableau Server 配置为使用相互 SSL,则会自动进行身份验证,并且客户端必须具有有效的证书。您可以配置 Tableau Server 以允许回退选项,以接受用户名和密码身份验证。

tsm authentication mutual-ssl configure -fb true

Tableau Server 接受来自 REST API 客户端的用户名和密码身份验证,即使上面的选项设置为 false

用户名映射

Tableau Server 配置为使用相互 SSL 时,服务器将通过从客户端证书中获取用户名来直接验证用户的身份。Tableau Server使用的名称取决于如何配置服务器来进行用户身份验证。

  • 本地身份验证 — 使用证书中的 UPN(用户主体名称)。

  • Active Directory (AD) — 使用 LDAP(轻量目录访问协议)来获取用户名。

您可以替代任一默认值以将 Tableau Server 设置为使用公用名称。

tsm authentication mutual-ssl configure -m cn

有关详细信息,请参见在相互身份验证过程中将客户端证书映射到用户

证书吊销列表 (CRL)

如果怀疑私钥已泄露,或者,如果证书颁发机构 (CA) 没有正确颁发证书,则您可能需要指定 CRL。

tsm authentication mutual-ssl configure -rf <revoke-file.pem>

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