内容:

SAML

  • 版本 :2022.1 及更高版本

SAML(安全断言标记语言)是一种 XML 标准,它允许安全的 Web 域交换用户身份验证和授权数据。您可以将 Tableau Server 配置为使用外部身份提供程序 (IdP) 通过 SAML 2.0 对用户进行身份验证。

SAML(安全断言标记语言)是一种 XML 标准,它允许安全的 Web 域交换用户身份验证和授权数据。您可以将 Tableau Server 配置为使用外部身份提供程序 (IdP) 通过 SAML 2.0 对用户进行身份验证。不会与 Tableau Server 一起存储任何用户凭据,而使用 SAML 使您能够将 Tableau 添加到组织的单点登录环境。

您可以在服务器范围内使用 SAML 服务器,也可以单独配置站点。下面概述了这些选项:

  • 服务器范围 SAML 身份验证。单一 SAML IdP 应用程序处理所有 Tableau Server 用户的身份验证。如果服务器只有“默认”站点,请使用此选项,因为在这种情况下,无需配置特定于站点的 SAML。您也可以在多站点环境中使用服务器范围 SAML,但用户仅限于跨所有站点的单个 IdP。

  • 服务器范围本地身份验证和特定于站点的 SAML 身份验证。在多站点环境中,没有启用站点级别 SAML 身份验证的用户可以使用本地身份验证登录。

  • 服务器范围 SAML 身份验证和特定于站点的 SAML 身份验证。在多站点环境中,所有用户都通过在站点级别配置的 SAML IdP 进行身份验证,并且您将为属于多个站点的用户指定服务器范围默认 SAML IdP。

如果要使用特定于站点的 SAML,您必须在配置单独站点之前先配置服务器范围 SAML。特定于站点的 SAML 不需要启用服务器端 SAML 也能正常工作,但必须对其进行配置。

通过 SAML 进行的用户身份验证不适用于 Tableau Server 内容(例如数据源和工作簿)的许可和授权。它也不控制对工作簿和数据源连接到的基础数据的访问。

注意: Tableau Server 在浏览器和 Tableau Mobile 应用软件中仅支持由服务提供程序和 IdP 启动的 SAML。来自Tableau Desktop 的 SAML 连接必须是服务提供程序启动的。

下图显示了在典型的服务提供程序启动的流程中使用单点登录对用户进行身份验证的步骤:

通过 SAML 进行单点登录

  1. 用户导航到 Tableau Server 登录页面或单击已发布的工作簿 URL。

  2. Tableau Server 通过将客户端重定向到已配置的 IdP 启动身份验证过程。

  3. IdP 向用户请求用户的用户名和密码。用户提交有效凭据后,IdP 对用户进行身份验证。

  4. IdP 以 SAML 响应的形式将成功的身份验证返回到客户端。客户端将 SAML 响应传递到 Tableau Server

  5. Tableau Server 验证 SAML 响应中的用户名是否与 Tableau Server 存储库中存储的已许可用户匹配。如果经验证匹配,则 Tableau Server 以请求的内容响应客户端。

此部分中的其他文章

在 Tableau Server 上配置 SAML 之前,确保您的环境满足要求。

重要信息:IdP 和 Tableau Server 上的 SAML 配置都区分大小写。例如,使用 IdP 和 Tableau Server 上配置的 URL 必须完全匹配。

证书和身份提供程序 (IdP) 要求

若要将 Tableau Server 配置为使用 SAML,您需要以下内容:

  • 证书文件PEM 编码的 x509 证书文件,扩展名为 .crt。此文件由 Tableau Server 而不是 IdP 使用。如果有 SSL 证书,在某些情况下您可以将同一个证书与 SAML 一起使用。有关详细信息,请参见本文后面的为 SAML 使用 SSL 证书和密钥文件

    Tableau Server 需要证书密钥对来签署发送到 IdP 的请求。这减少了中间人攻击的威胁,因为难以欺骗签名的请求。此外,Tableau Server 会验证它收到的 AuthNResponse 是否来自从受信任的 IdP。Tableau Server 使用 IdP 生成的签名验证 AuthNResponse。IdP 证书元数据在初始 SAML 配置过程中提供给 Tableau Server。

    并非所有 IdP 都需要签名的请求。默认情况下,Tableau Server 需要签名的请求。我们建议使用此配置,以确保与 IdP 的通信传输更安全。与您的 IdP 团队合作,了解是否需要禁用签名的请求。若要禁用签名的请求,请参见samlSettings 实体

  • 签名算法。证书必须使用安全签名算法,例如 SHA-256。如果您尝试通过使用 SHA-1 签名哈希的证书为 SAML 配置 Tableau Server,则 Tableau Server 将拒绝该证书。您可以通过设置 tsm wgserver.saml.blocklisted_digest_algorithms 配置键,将 Tableau Server 配置为接受安全性较低的 SHA-1 哈希。

  • RSA 密钥和 ECDSA 曲线大小。Tableau Server 证书的 RSA 密钥强度必须为 2048,IdP 证书的 RSA 密钥强度必须为 2048,或者 ECDSA 曲线大小必须为 256。

    您可以通过设置相应的配置键 wgserver.saml.min_allowed.rsa_key_sizewgserver.saml.min_allowed.elliptic_curve_size,将 Tableau Server 配置为安全性较低的大小。

  • 证书密钥文件RSA 或 DSA 私钥文件,扩展名为 .key。RSA 密钥必须为 PKCS#1 或 PKCS#8 格式。

    密码保护要求如下所示:

    支持概要

    密钥文件格式服务器范围 SAML 支持站点级别 SAML 支持
    PKCS#8 RSA
    PKCS#8(无密码/空密码)
    PKCS#1 RSA
    PKCS#1 RSA(密码)
    PKCS#1 DSA(密码)
    • 无法使用密码保护 PKCS#1 RSA 密钥文件。

    • 若要使用密码保护的密钥文件,您必须使用 RSA PKCS#8 文件配置 SAML。注意:不支持包含 null 密码的 PKCS#8 文件。

    • 特定于站点的 SAML 部署不支持受密码保护的密钥文件。

  • IdP 必须使用安全的签名算法对 SAML 断言进行签名。默认情况下,Tableau Server 将拒绝使用 SHA-1 算法签名的 SAML 断言。您可以通过设置 tsm wgserver.saml.blocklisted_digest_algorithms 配置键,将 Tableau Server 配置为接受使用安全性较低的 SHA-1 哈希签名的断言。

  • 支持 SAML 2.0 或更高版本的 IdP 帐户您需要一个外部身份提供程序帐户。一些示例包括 PingFederate、SiteMinder 和 Open AM。

  • 支持导入和导出 XML 元数据的 IdP 提供程序尽管手动创建的元数据文件可以工作,但 Tableau 技术支持无法协助进行生成该文件或排除其问题。

SSL 卸载

如果在将身份验证请求发送到 Tableau Server 之前,您的组织在代理服务器处终止了来自 IdP 的 SSL 连接,则您可能需要进行代理配置。在这种情况下,SSL 在代理服务器处被“卸载”,这意味着 https 请求在代理服务器处被终止,然后通过 http 转发到 Tableau Server。

Tableau Server 将验证从 IdP 返回的 SAML 响应消息。由于 SSL 在代理处被卸载,因此 Tableau Server 将使用它收到的协议进行验证,但 IdP 响应的格式是使用 https 设置的,因此验证将失败,除非代理服务器包括设置为 https 的 X-Forwarded-Proto 标头。请参见将 Tableau Server 配置为使用反向代理服务器

为 SAML 使用 SSL 证书和密钥文件

如果将 PEM 编码的 x509 证书文件用于 SSL,则可以将同一个文件用于 SAML。对于 SSL,证书文件用于加密流量。对于 SAML,证书用于进行身份验证。

除了上面的证书和身份提供程序 (IdP) 要求中列出的要求外,若要为 SSL 和 SAML 使用相同的证书,证书还必须满足以下条件才能用于 SAML:

  • 确认证书仅包含适用于 Tableau Server 的证书,而不包含任何其他证书或密钥。

    为此,您可以创建证书文件的备份副本,然后在文本编辑器中打开该副本以查看其内容。

用户管理要求

如果启用 SAML,用户身份验证将在 Tableau 外部通过 IdP 执行。但是,用户管理通过身份存储执行:外部身份存储(Active Directory 或 LDAP),或由 Tableau Server 在本地身份存储中执行。有关使用 Tableau Server 规划用户管理的详细信息,请参见身份存储

在安装过程中配置用户身份验证时,您必须选择反映所需 SAML 使用方式的选项。如果要使用特定于站点的 SAML,您必须在配置单独站点之前先配置服务器范围 SAML。

  • 对于特定于站点的 SAML:如果在 Tableau Server 上有多个站点,并且希望为特定 IdP 或 IdP 应用程序设置每个站点(或将某些站点配置为不使用 SAML),请将 Tableau Server 配置为使用本地身份存储管理用户。对于特定于站点的 SAML,Tableau Server 依靠 IdP 进行身份验证,并且不使用密码。

  • 对于服务器范围 SAML:如果配置具有单一 IdP 的服务器范围 SAML,您可以将 Tableau Server 配置为使用本地身份存储或外部身份存储。如果要使用 Active Directory,则必须禁用“启用自动登录”选项。

  • 服务器范围 SAML 身份验证和特定于站点的 SAML 身份验证。在多站点环境中,所有用户都通过在站点级别配置的 SAML IdP 进行身份验证。在这种方案中,您将为属于多个站点的用户指定服务器范围的默认 SAML IdP。若要配置此方案,Tableau Server 必须配置为使用本地身份存储。

注意: REST APItabcmd 不支持 SAML 单点登录 (SSO)。若要登录,您必须指定已在服务器上创建的用户的名称和密码。可以通过本地身份存储或外部身份存储管理用户,具体取决于您配置 Tableau Server 的方式。对于 Tableau Online,您可以指定用户的 TableauID 凭据。REST API 或 tabcmd 调用将具有您在登录时使用的用户的权限。

SAML 兼容性注意事项和要求

  • 匹配的用户名:存储在 Tableau Server 中的用户名必须与 IdP 在 SAML 断言中发送的已配置用户名属性匹配。默认情况下,Tableau Server 期望传入断言包含名为“username”的属性以及该用户的信息。举例来说,如果 Jane Smith 的用户名在 PingFederate 中存储为 jsmith,那么它在 Tableau Server 中也必须存储为 jsmith

    在身份验证期间配置 SAML 时

    如果要在初始 Tableau Server 设置过程中配置 SAML,请在运行安装程序之前确保您的 IdP 存在计划使用的帐户。在 Tableau Server 设置过程中,您将创建服务器管理员帐户。

    运行多个域时

    如果使用 Active Directory 或 LDAP 外部身份存储,并且在多个域中运行(也就是说,用户属于多个域或 Tableau Server 安装包括多个域),则 IdP 必须在 SAML 断言中为用户同时发送用户名域属性。。这些用户名和域属性都必须与 Tableau Server 中存储的用户名和域完全匹配。为用户属性使用 domain\username 格式,并为域属性使用完全限定的域名 (FQDN)。如果不包含域属性,则将为所有用户使用 Tableau Server 计算机的域(也称为默认域)。如果用户与 Tableau Server 计算机不在同一个域中,则排除域属性将导致登录错误。

    有关详细信息,请参见支持多个域配置服务器范围 SAML“使用TSM CLI”中的“匹配断言”部分。

  • 签名算法:Tableau Server 使用 SHA256 签名算法。

  • 单点注销 (SLO):Tableau Server 支持服务提供商 (SP) 发起的 SLO 和身份提供程序 (IdP) 发起的 SLO,用于服务器范围的 SAML 和特定于站点的 SAML。

  • 外部身份验证类型:Tableau Server 支持一次使用一种外部身份验证类型。

  • 相互 SSL:Tableau Server 不同时支持相互 SSL(双向 SSL)和 SAML。如果要使用相互 SSL,您可以在 IdP 上对其进行配置。

  • 断言编码:断言必须为 UTF-8 编码。

  • 加密和 SAML 断言:针对服务器范围 SAML 进行配置时,Tableau Server 支持来自 IdP 的加密断言。作为服务器范围 SAML 的初始配置的一部分,您上传的证书将启用加密断言。

    针对特定于站点的 SAML 进行配置时,Tableau Server 不支持来自 IdP 的加密断言。但是,所有 SAML 请求和响应都通过 HTTPS 发送。

  • Tableau Server 中适用于 tabcmd 用户的用户标识:如上面的用户管理要求部分中所述,若要使用 tabcmd,您必须以服务器上定义的用户身份登录。您不能将 SAML 帐户与 tabcmd 一起使用。

  • 将 SAML SSO 与 Tableau Desktop 结合使用:默认情况下,Tableau Desktop 允许 SP 发起的 SAML 身份验证。

    如果您的 IdP 不支持此功能,您可以使用以下命令为 Tableau Desktop 禁用 SAML 登录。

    tsm authentication saml configure --desktop-access disable

    有关详细信息,请参见 tsm authentication saml

  • 分布式安装:TSM 版本的 Tableau Server(2018.2 及更高版本)使用客户端文件服务在多节点群集中共享文件。在群集中的初始节点上配置 SAML 后,客户端文件服务会将证书和密钥文件分发到其他节点。

  • 登录 URL:为了使用户能够登录,您的 IdP 必须配置为具有可将 POST 请求发送到以下 URL 的 SAML 登录端点:

    https://

  • 注销 URL:为了使用户能够在使用 SAML 登录后注销(单点注销,或 SLO),您的 IdP 必须配置为具有可将 POST 请求发送到以下 URL 的 SAML 注销端点:

    https://

    注意:Tableau Server 支持服务提供商 (SP) 发起的 SLO 和身份提供程序 (IdP) 发起的 SLO,用于服务器范围的 SAML 和特定于站点的 SAML。

  • 注销后重定义 URL:默认情况下,当用户注销 Tableau Server 时,将显示登录页面。

    若要在注销后显示其他页面,请带 -su--signout-url 选项使用 tsm authentication saml configure 命令。

    • 若要指定绝对 URL,请使用以 http://https:// 开头的完全限定的 URL,如此示例中所示:

      tsm authentication saml configure -su https://example.com

    • 若要指定相对于 Tableau Server 主机的 URL,请使用以 /(斜杠)开头的页面:

      tsm authentication saml configure -su /ourlogoutpage.html

  • Active Directory 联合服务 (AD FS):您必须配置 AD FS 以返回使用 SAML 的 Tableau 身份验证的其他属性。Name IDusername 属性可映射到相同的 AD 属性:SAM 帐户名称

    有关配置信息,请参见在 Tableau Server 上使用 AD FS 配置 SAML

  • AuthNContextClassRef:AuthNContextClassRef 是一个可选的 SAML 属性,用于强制验证 IdP 启动的流程中的某些身份验证“上下文”。您可以使用 TSM 为此属性设置逗号分隔值。设置此属性后,Tableau Server 将验证 SAML 响应是否至少包含列出的值之一。如果 SAML 响应不包含配置的值之一,则即使用户已成功使用 IdP 进行身份验证,身份验证也将被拒绝。

    将此可选属性留空将导致默认行为:任何成功经过身份验证的 SAML 响应都将导致用户在 Tableau Server 中被授予会话。

    仅支持为服务器范围 SAML 评估该值。如果配置了站点 SAML,则将忽略 AuthNContextClassRef 该属性。

    若要使用 TSM Web 界面设置此值,请参见配置服务器范围 SAML

    若要使用 tsm configuration set设置此值,请使用 wgserver.saml.authcontexts 键设置逗号分隔的值列表。

    若要使用 JSON 配置文件设置此值,请参见samlSettings 实体

将 SAML SSO 用于 Tableau 客户端应用程序

Tableau Server 用户(具有 SAML 凭据)可从 Tableau Desktop 或 Tableau Mobile 应用登录到服务器。为了全面兼容,我们建议 Tableau 客户端应用程序版本与服务器的版本匹配。若要使用特定于站点的 SAML 进行连接,用户必须运行 Tableau 客户端应用程序版本 10.0 或更高版本。

从 Tableau Desktop 或 Tableau Mobile 连接到 Tableau Server 时,将使用服务提供程序 (SP) 发起的连接。

将经过身份验证的用户重定向回 Tableau 客户端

用户登录到 Tableau Server 时,Tableau Server 会向 IdP 发送一个 SAML 请求 (AuthnRequest),其中包括 Tableau 应用程序的 RelayState 值。如果用户已通过诸如 Tableau Desktop 或 Tableau Mobile 等 Tableau 客户端登录到 Tableau Server,则在 IdP 对 Tableau 的 SAML 响应内返回 RelayState 值至关重要。

如果在此情形下未正确返回 RelayState 值,则会在 Web 浏览器中将用户转向其 Tableau Server 主页,而不是重定向回他们从中登录的应用程序。

与身份提供商和内部 IT 团队合作,确认此值将包括在 IdP 的 SAML 响应内,然后由位于 IdP 和 Tableau Server 之间的任何网络设备(例如代理或负载平衡器)保留。

XML 数据要求

在 SAML 配置过程中,您会在 Tableau Server 和 IdP 之间交换 XML 元数据。此 XML 元数据用于在用户启动 Tableau Server 登录过程时验证用户的身份验证信息。

Tableau Server 和 IdP 都各自会生成自己的元数据。每组元数据都必须包含以下列表中描述的信息。如果任何一组元数据缺少信息,则在您配置 SAML 或在用户尝试登录时可能会发生错误。

  • HTTP POST:对于 SAML 通信,Tableau Server 只支持 HTTP POST 请求。不支持 HTTP 重定向。

  • Binding 属性设置为 HTTP-POST 的情况下,Tableau Server 和 IdP 每次导出的 SAML 元数据必须包含以下元素。

    • 指定身份验证成功后 IdP 重定向到的 URL 的元素。这是服务提供商元数据(而不是身份提供程序元数据)中所必需的。

      对于站点 SAML,Location 端点为 /samlservice/public/sp/metadata?alias=

    • 注销端点元素显示在 Tableau Server 元数据中,并指定 IdP 将用于 Tableau Server 的注销端点的 URL。如果此元素不在 IdP 元数据中,Tableau Server 将无法与 IdP 协调注销端点,并且“SAML 注销”功能在 Tableau Server 内将不可用:

      注意:服务器范围和特定于站点的 SAML 都支持 SP 发起的 SLO。但是,不支持 IdP 发起的 SLO。

    • 验证您从 IdP 获得的元数据 XML 是否包括绑定设置为 HTTP-POSTSingleSignOnService 元素,如以下示例中所示:

    • 此元素应出现在 IdP 元数据中,并指定 Tableau Server 将用于 IdP 的注销端点的 URL。

  • 名为 username 的属性:您必须配置 IdP 以返回在 saml:AttributeStatement 元素中包括 username 属性的声明。声明的属性类型必须为 xs:string应将其键入为 xs:any)。

    以下示例显示此项可能的样子。


    默认情况下,Tableau Server 将在 Idp 返回的 AuthNResponse 中读取 username 属性。但是,某些 IdP 可能返回用于标识用户的不同属性。

    若要更改传递 username 值的 SAML 属性,请运行以下 TSM 命令:

    tsm authentication saml map-assertions --user-name

    请参见tsm authentication


在希望 Tableau Server 上的所有单点登录 (SSO) 用户通过单一 SAML 身份提供程序 (IdP) 进行身份验证时配置服务器范围 SAML,或作为第一步在多站点环境中配置特定于站点的 SAML。

如果配置了服务器范围 SAML 并已准备好配置站点,请参见配置特定于站点的 SAML

我们提供的 SAML 配置步骤假设:

  • 您熟悉用于在 Tableau Server 上配置 SAML 身份验证的选项,如SAML主题中所述。

  • 您已经验证了您的环境符合 SAML 要求,并获得了这些要求中描述的 SAML 证书文件。

开始之前

收集证书文件并将其放在 Tableau Server 上。

在 Tableau Server 文件夹中,创建一个名为 SAML 的新文件夹,并将 SAML 证书文件的副本放在该文件夹中。例如:

C:\Program Files\Tableau\Tableau Server\SAML

这是建议的位置,因为运行 Tableau Server 的用户帐户具有访问此文件夹的必要权限。

作为灾难恢复计划的一部分,我们建议将证书和 IdP 文件的备份保留在 Tableau Server 外的安全位置。您上传到 Tableau Server 的 SAML 资产文件将由客户端文件服务存储并分发到其他节点。但是,这些文件不会以可恢复格式存储。请参见Tableau Server 客户端文件服务

注意:如果为 SSL 使用相同的证书文件,您可以选择使用现有证书位置用于配置 SAML,并在此过程中稍后下载 IdP 元数据文件时将其添加到该目录。有关详细信息,请参见 SAML 要求中的为 SAML 使用 SSL 证书和密钥文件

如果在群集中运行 Tableau Server,则在启用 SAML 时,将跨各个节点上自动分发 SAML 证书、密钥和元数据文件。

此过程要求您将 SAML 证书上载到 TSM,以便在服务器配置中正确存储和分发这些证书。在此过程中,运行 TSM Web 界面的本地计算机上的浏览器必须能够使用 SAML 文件。

如果已经按照上一节中建议的方式将收集并将 SAML 文件保存到 Tableau Server,请从在其中复制文件的 Tableau Server 计算机中运行 TSM Web 界面。

如果您正从其他计算机运行 TSM Web 界面,则需要在继续之前以本地方式复制所有 SAML 文件。在进行下面的过程时,浏览到本地计算机上的文件以将它们上载到 TSM。

  1. 在浏览器中打开 TSM:

    https://

  2. “配置”选项卡上,选择“用户身份和访问”,然后选择“身份验证方法”选项卡。

    Tableau 服务管理器用户身份验证设置

  3. 对于“身份验证方法”,选择“SAML”

  4. 在出现的“SAML”部分,完成 GUI 中的步骤 1,同时输入以下设置(还不要选中复选框来为服务器启用 SAML)。

    • Tableau Server 返回 URLTableau Server 用户将访问的 URL,例如 https://tableau-server。

      不支持使用 https://localhost 或结尾有斜杠的 URL(例如,http://tableau_server/)。

    • SAML 实体 ID — 向 IdP 唯一标识您的 Tableau Server 安装的实体 ID。

      可以在此处再次输入您的 Tableau Server URL。如果打算稍后启用特定于站点的 SAML,此 URL 还充当每个站点的唯一 ID 的基础。

    • SAML 证书和密钥文件 — 单击“选择文件”上载其中每个文件。

      如果使用 PKCS#8 密码保护的密钥文件,则必须使用 TSM CLI 输入密码:

      tsm configuration set -k wgserver.saml.key.passphrase -v

      在提供了 GUI 中的步骤 1 所需的信息之后,GUI 中的步骤 2 的“下载 XML 元数据文件”按钮将变为可用。

  5. 现在选中 GUI 中的步骤 1 上方的“为服务器启用 SAML 身份验证”复选框。

  6. 完成其余 SAML 设置。

    1. 对于 GUI 中的步骤 2 和步骤 3,在 Tableau Server 和 IdP 之间交换元数据。(您可能需要在此处查阅 IdP 的文档。)

      选择“下载 XML 元数据文件”,并指定文件位置。

      如果要使用 AD FS 配置 SAML,您可以返回到“在 Tableau Server 上使用 AD FS 配置 SAML”的步骤 3:配置 AD FS 以接受来自 Tableau Server 的登录请求

      对于其他 IdP,转到您的 IdP 帐户,以将 Tableau Server 添加到其应用程序(作为服务提供程序),并根据情况提供 Tableau 元数据。

      按照 IdP 的网站或文档中的说明进行操作,下载 IdP 的元数据。将 .xml 文件保存到包含 SAML 证书和密钥文件的同一位置。例如:

      C:\Program Files\Tableau\Tableau Server\SAML\idp-metadata.xml

    2. 返回到 TSM Web UI。对于 GUI 中的步骤 4,输入 IdP 元数据文件的路径,然后单击“选择文件”

      突出显示了您在其中上载 SAML IDP 元数据的 TSM UI 区域的屏幕快照

    3. 对于 GUI 中的步骤 5:在某些情况下,您可能需要更改 Tableau Server 配置中的断言值,以匹配 IdP 传递的断言名称。

      您可以在 IdP 的 SAML 配置中找到断言名称。如果从 IdP 传递了不同的断言名称,则您必须更新 Tableau Server 以使用同一断言值。

      提示:“断言”是关键 SAML 组件,而映射断言的概念起初可能难以捉摸。将这一概念放在表格式数据的上下文中可能有所帮助,在该上下文中,断言(属性)名称相当于表中的列标题。您输入该“标题”名称,而不是可能出现在该列中的值的示例。

    4. 对于 GUI 中的步骤 6,选择要在其中为用户提供单点登录体验的 Tableau 应用程序。

      注意:运行 Tableau Mobile 应用版本 19.225.1731 及更高版本的设备会忽略用于禁用移动访问的选项。若要为运行这些版本的设备禁用 SAML,请在 Tableau Server 上禁用 SAML 作为客户端登录选项。

    5. 对于 SAML 注销重定向,如果 IdP 支持单点注销 (SLO),请输入希望在用户注销后将其重定向到的页面(相对于您为 Tableau Server 返回 URL 输入的路径)。

    6. 对于 GUI 中的步骤 7,根据需要为 AuthNContextClassRef 属性添加逗号分隔值。有关如何使用此属性的详细信息,请参见SAML 兼容性注意事项和要求

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

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

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

测试配置

  1. 在 Web 浏览器中,打开一个新页面或标签,并输入 Tableau Server URL。

    浏览器会将您重定向到 IdP 的登录表单。

  2. 输入您的单点登录用户名和密码。

    IdP 将验证您的凭据,并将您重定向回 Tableau Server 开始页面。


本主题提供了描述如何使用 Salesforce IdP 在 Tableau Server 上配置 SAML 的路线图步骤。

本主题还介绍了如何启用 Lightening Web Component (LWC)。LWC 允许 Salesforce 管理员在 Lightning 页面中嵌入 Tableau 可视化项。在 Tableau Server 上为 Tableau 可视化项 LWC 配置 SSO 时,用户体验是无缝的:用户登录 Salesforce 后,嵌入式 Tableau 视图将无需向 Tableau Server 进行进一步身份验证即可工作。

启用 Salesforce 作为 SAML 身份提供商

如果您尚未将 Salesforce 配置为 IdP,请按照 Salesforce 帮助站点上的启用 Salesforce 作为 SAML 身份提供商(链接在新窗口中打开)过程进行操作。

在启用 Salesforce 作为 SAML IdP 的过程中,您将指定证书,或者 Salesforce 将生成自签名证书以用于 SAML。下载此证书(.crt 文件)和关联的提供程序元数据文件 (.xml)。在下一步中您将需要这些资产。

在 Tableau Server 上配置 SAML

使用您在上一步中下载的证书和元数据文件,按照配置服务器范围 SAML中的过程进行操作。

在配置过程中,您将为 Tableau Server 生成 SAML 实体 ID 和返回 URL(也称为“ACS”)。在下一步中您将需要这些资产。

(可选)配置服务器范围 SAML 后,您可以在 Tableau Server 上配置特定于站点的 SAML。请参见配置特定于站点的 SAML

在 Salesforce 中添加 Tableau Server 作为已连接应用

按照 Salesforce 帮助站点上的将服务提供商作为已连接应用与 SAML 2.0 集成(链接在新窗口中打开)过程进行操作。

在此过程中,您将创建一个新的已连接应用 (Tableau Server)。一些重要的细节如下:

  • 选择“启用 SAML”

  • 输入您在上一节中配置 Tableau 时生成的实体 ID 和 ACS(返回 URL)。

  • 对于 IdP 证书,请确保选择您在启用 Salesforce 作为 SAML 提供商时指定或生成的相同证书。

  • 若要允许用户从您的组织登录 Tableau Server,请通过分配适当的配置文件或权限集来管理对已连接应用的访问。

启用 Lightening Web Component

若要在 Tableau Server 上为 SAML SSO 启用 LWC,您必须启用框架内身份验证。在启用 LWC 之前,请升级到 Tableau Sever 的最新维护版本。有两个额外的版本细节很重要:

在 Tableau Server 上配置 SAML 后,运行以下 TSM 命令以启用框架内身份验证:

tsm configuration set -k wgserver.saml.iframed_idp.enabled -v true

tsm pending-changes apply

将 Tableau 视图嵌入 Salesforce

为 SSO 配置 Tableau Server 后,您可以在 Salesforce org 中安装 LWC 并嵌入 Tableau 视图。请参见将 Tableau 视图嵌入 Salesforce(链接在新窗口中打开)


Tableau 提供了一个 Lightning Web 组件 (LWC),用于在 Salesforce Lightning 页面中嵌入 Tableau 可视化项。

本主题介绍如何为 Salesforce Lightning 页面中的嵌入式 Tableau 可视化项 SSO 体验。Tableau 可视化项 LWC 方案的 SSO 需要 SAML 配置。用于 Tableau 身份验证的 AML IdP 必须是 alesforce IdP 或用于 Salesforce 实例的同一 IdP。

在这种情况下,Salesforce 管理员将 Tableau 可视化项 LWC 拖到要嵌入可视化项的 Lightning 页面中。Tableau Server 上可供他们使用的任何视图都可以通过输入视图的嵌入 URL 显示在仪表板中。

在 Tableau Server 上为 Tableau 可视化项 LWC 配置单点登录 (SSO) 时,用户体验是无缝的:用户登录 Salesforce 后,嵌入式 Tableau 视图将无需向 Tableau Server 进行进一步身份验证即可工作。

如果未配置 SSO,则用户将需要使用 Tableau Server 重新进行身份验证,以通过 Tableau Server 查看嵌入式可视化项。

要求

配置身份验证工作流

您可能需要进行其他配置,以优化使用嵌入式 Tableau 视图访问 Lightning 的用户的登录体验。

如果无缝身份验证用户体验很重要,则需要进行一些其他配置。在此上下文中,“无缝”意味着访问已启用 Tableau 可视化项 LWC SSO 的 Salesforce Lightning 页面的用户无需执行任何操作来查看嵌入的 Tableau 视图。在无缝方案中,如果用户登录到 Salesforce,则嵌入的 Tableau 视图将显示,无需执行其他用户操作。此方案通过框架内身份验证启用。

要获得无缝的用户体验,您需要在 Tableau Server 和您的 IdP 处启用框架内身份验证。以下部分介绍如何配置框架内身份验证。

另一方面,有些情况下,用户正在与 Lightning 页面交互,需要他们单击“登录”按钮以查看嵌入的 Tableau 视图。在此方案中,用户必须执行其他操作才能查看嵌入的 Tableau 视图,因此称为弹出式身份验证。

如果不启用框架内身份验证,则弹出式身份验证是默认用户体验。

在 Tableau Server 上启用框架内身份验证

在 Tableau Server 上启用框架内身份验证之前,您必须已在 Tableau Server 上配置和启用 SAML。

运行以下 TSM 命令以启用框架内身份验证:

tsm configuration set -k wgserver.saml.iframed_idp.enabled -v true

tsm pending-changes apply

注意:默认情况下,Tableau Server 上已启用单击劫持保护。当您启用框架内身份验证时,会为框架内身份验证会话暂时禁用单击劫持保护。您应该评估禁用单击劫持保护的风险。请参见单击劫持保护

Tableau Server 版本控制

为了获得最佳用户体验,请运行 Tableau Server 的最新维护版本。

如果您未运行最新的维护版本,并且您的用户正在运行 Chrome 浏览器以访问 Salesforce Lightning,请查看 Tableau 知识库文章更新到 Chrome 80 后嵌入视图无法加载(链接在新窗口中打开)

使用 SAML IDP 启用框架内身份验证

如上所述,使用 Salesforce Mobile 实现无缝身份验证用户体验需要 IdP 支持框架内身份验证。此功能在 IdP 处也称为“iframe 嵌入”或“框架保护”

Salesforce 安全列表域

在某些情况下,IdP 只允许按域启用框架内身份验证。在这种情况下,在启用框架内身份验证时设置以下 Salesforce 通配符域:

*.force

*.visualforce

Salesforce IdP

默认情况下,Salesforce IdP 支持框架内身份验证。您无需在 Salesforce 配置中启用或配置框架内身份验证。但是,您必须在 Tableau Server 上运行 TSM 命令,如上所述。

Okta IdP

请参见 Okta 帮助中心主题常规自定义选项(链接在新窗口中打开)中的“在 iframe 中嵌入 Okta”。

Ping IdP

请参阅 Ping 支持主题如何禁用 PingFederate 中的“X-Frame-Options=SAMEORIGIN”标头(链接在新窗口中打开)

OneLogin IdP

请参见 OneLogin 知识库文章帐户所有者的帐户设置(链接在新窗口中打开)中的“框架保护”。

ADFS 和 Azure AD IdP

Microsoft 已阻止所有框架内身份验证,无法将其启用。相反,Microsoft 在第二个窗口中仅支持弹出式身份验证。因此,某些浏览器可能会阻止弹出窗口行为,这将要求用户接受 force.comvisualforce.com 站点的弹出窗口。

Salesforce 移动应用软件

如果您的用户主要在 Salesforce 移动应用软件中与 Lightning 进行交互,则您应该了解以下情况:

  • Salesforce 移动应用软件要求您配置 SSO/SAML 以查看嵌入式 Tableau。

  • Salesforce 移动应用软件需要框架内身份验证。弹出式身份验证不起作用。相反,Salesforce 移动应用软件上的用户将看到 Tableau 登录按钮,但无法登录到 Tableau。

  • 移动应用软件在 ADFS 和 Azure AD IdP 上不起作用。

  • 移动应用软件使用 OAuth 令牌启用 SSO。在某些情况下,OAuth 令牌会刷新并注销用户,同时要求用户重新登录。若要了解详细信息,请参见 Tableau 知识库文章 Salesforce Mobile App 上的 Tableau Viz Lightning Web 组件提示登录(链接在新窗口中打开)

  • SSO 行为因 Salesforce 移动应用软件(iOS 与 Android) 和 IdP 而不同:

    IdP移动操作系统SSO 行为
    Salesforce IdPAndroidSSO 最初会工作,但用户一段时间后需要登录。
    iOS
    外部 IdPAndroidSSO 不工作。用户需要手动登录。(仍必须配置 SSO 以允许用户访问嵌入的 Tableau 视图)。
    iOSSSO 最初会工作,但用户一段时间后需要登录。


您可以将 Azure AD 配置为 SAML 身份提供程序 (IdP),并将 Tableau Server 添加到支持的单点登录应用程序。如果将 Azure AD 与 SAML 和 Tableau Server 集成,用户可以使用其标准网络凭据登录到 Tableau Server

开始之前:先决条件

您的环境必须具有以下各项,然后才能使用 Azure AD 配置 Tableau Server 和 SAML:

步骤 1:验证与 Azure AD 的 SSL 连接

Azure AD 需要 SSL 连接。如果尚未这样做,请使用符合上面指定要求的证书完成针对与来往 Tableau Server 的外部 HTTP 流量配置 SSL中的步骤。

或者,如果 Tableau Server 配置为使用反向代理或 SSL 在其中终止(通常称为 SSL 卸载)的负载平衡器,则您无需配置外部 SSL。

如果您的组织使用 Azure AD 应用代理,请参见下面的 Azure AD 应用代理部分。

步骤 2:在 Tableau Server 上配置 SAML

通过将 Tableau Server 元数据下载为一个 XML 文件,完成配置服务器范围 SAML中的步骤。此时,返回此处并继续下一部分。

步骤 3:配置 Azure AD 声明规则

映射区分大小写,并且需要准确的拼写,因此请仔细检查您输入的内容。此处的表显示了常见的属性和声明映射。您应使用特定的 Azure AD 配置验证属性。

LDAP 特性传出声明类型
onpremisessamaccountnameusername
Given-Name

firstName

注意:这是可选的。

Surname

lastName

注意:这是可选的。

netbiosname

domain

注意:仅当您的用户从非默认域的域中登录时才需要这样做。

在某些组织中,SAML IDP 形式的 Azure AD 与 Active Directory 一起使用,作为 Tableau Server 的身份存储。在这种情况下,username 通常是 sAMAccountName 名称。请参见 Microsoft 文档,确定 Azure AD 中用于映射到 username 属性的 sAMAccountName 属性。

步骤 4:将 Azure AD 元数据提供给 Tableau Server

  1. 返回到 TSM Web UI,并导航到“配置”>“用户身份和访问”>“身份验证方法”选项卡。

  2. 在 SAML 配置窗口的“步骤 4”中,输入从 Azure AD 导出的 XML 文件的位置,并选择“上载”

    突出显示了您在其中上载 SAML IDP 元数据的 TSM UI 区域的屏幕快照

  3. 配置服务器范围 SAML中指定的方式完成其余步骤(匹配声明和指定客户端类型访问权限)。保存并应用更改。

  4. 停止 Tableau Server,打开 TSM CLI,然后运行以下命令。

    第一个命令确保 Azure AD 在接受用户的 SAML 凭据后可以正确重定向到 Tableau Server。第二个命令使用 Azure AD 和 Azure AD Azure AD上默认的相同“刷新令牌最长不活动时间”配置 Tableau Server。将最长非活动时间设置为与 Azure AD 匹配可避免常见错误状态,如 Tableau 知识库文章 Tableau Server 上的 SAML SSO 出现间歇性错误“Unable to Sign In”(链接在新窗口中打开)中所述。

    tsm configuration set -k wgserver.saml.sha256 -v true

    tsm authentication saml configure -a 7776000

  5. 应用更改:

    tsm pending-changes apply

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

Azure AD 应用代理

如果在 Tableau Server 前面运行 Azure AD 应用代理,并且启用了 SAML,则需要对 Azure AD 应用代理进行其他配置。

启用 SAML 后,Tableau Server 只能接受来自一个 URL 的流量。但是,默认情况下,Azure AD 应用代理会设置外部 URL 和内部 URL。

必须将这两个值设置为自定义域中的同一 URL。有关详细信息,请参见 Microsoft 文档使用 Azure AD 应用程序代理配置自定义域(链接在新窗口中打开)

疑难解答

Azure AD 应用代理

在某些情况下,指向视图的链接在内部呈现,但当流量穿过 Azure AD 应用代理时在外部失败。当 URL 中存在磅符号 (#) 并且用户正在使用浏览器访问链接时,将出现此问题。Tableau Mobile 应用能够访问包含镑符号的 URL。

用户会话超时似乎被忽略

为 SAML 配置 Tableau Server 时,用户可能会遇到登录错误,因为 IdP 最长身份验证期限设置的值比 Tableau 的最长身份验证期限设置大。为了解决此问题,您可以使用 tsm configuration set 选项 wgserver.saml.forceauthn 要求 IdP 在每次 Tableau 重定向身份验证请求时重新对用户进行身份验证,即使用户的 IdP 会话仍处于活动状态。

例如,当 Azure AD 设置 maxInactiveTime 大于 Tableau Server 的设置 maxAuthenticationAge 时,Tableau 将身份验证请求重定向到 IdP,后者随后向 Tableau 发送用户已通过身份验证的断言。但是,由于用户在 Tableau Server 的 maxAuthenticationAge 外进行了身份验证,因此 Tableau 会拒绝用户身份验证。在像这样的情况下,您可以执行以下一项或两项操作:

  • 启用 wgserver.saml.forceauthn 选项以要求 IdP 在每次 Tableau 重定向身份验证请求时重新对用户进行身份验证。有关详细信息,请参见 wgserver.saml.forceauthn

  • 增加 Tableau Server 的 maxAuthenticationAge 设置。有关详细信息,请参见tsm authentication主题中的“a, --max-auth-age


您可以将 Active Directory 联合服务 (AD FS) 配置为 SAML 身份提供程序,并将 Tableau Server 添加到支持的单点登录应用程序。如果将 AD FS 与 SAML 和 Tableau Server 集成,用户可以使用其标准网络凭据登录到 Tableau Server

先决条件

您的环境必须具有以下各项,然后才能使用 AD FS 配置 Tableau Server 和 SAML:

  • 运行 Microsoft Windows Server 2008 R2(或更高版本)并安装了 AD FS 2.0(或更高版本)及 IIS 的服务器。

  • 我们建议您保护 AD FS 服务器的安全(例如,使用反向代理)。如果可从防火墙外部访问您的 AD FS 服务器,则 Tableau Server 可将用户重定向到 AD FS 托管的登录页面。

  • 使用 SHA-2(256 位或 512 位)加密进行加密,并满足以下部分中列出的其他要求的 SSL 证书:

步骤 1:验证与 AD FS 的 SSL 连接

AD FS 需要 SSL 连接。如果尚未这样做,请使用符合上面指定要求的证书完成针对与来往 Tableau Server 的外部 HTTP 流量配置 SSL中的步骤。

或者,如果 Tableau Server 配置为使用反向代理或 SSL 在其中终止(通常称为 SSL 卸载)的负载平衡器,则您无需配置外部 SSL。

步骤 2:在 Tableau Server 上配置 SAML

通过将 Tableau Server 元数据下载为一个 XML 文件,完成配置服务器范围 SAML中的步骤。此时,返回此处并继续下一部分。

步骤 3:配置 AD FS 以接受来自 Tableau Server 的登录请求

注意:这些步骤反映第三方应用程序,并且会在我方不知道的情况下发生更改。

将 AD FS 配置为接受 Tableau Server 登录请求是一个多步骤过程,此过程从将 Tableau Server XML 元数据文件导入 AD FS 开始。

  1. 执行以下操作之一以打开添加依赖方信任向导

  2. Windows Server 2008 R2:

    1. 单击“开始”菜单 >“管理工具”>“AD FS 2.0”

    2. “AD FS 2.0”中的“信任关系”下,右键单击“信赖方信任”文件夹,然后单击“添加信赖方信任”

    Windows Server 2012 R2:

    1. 打开“服务器管理器”,然后在“工具”菜单上单击“AD FS 管理”

    2. “AD FS 管理”中的“操作”菜单上,单击“添加信赖方信任”

  3. “添加信赖方信任向导”中,单击“开始”

  4. “选择数据源”页面上,选择“从文件导入有关信赖方的数据”,然后单击“浏览”找到 Tableau Server XML 元数据文件。默认情况下,此文件名为 samlspmetadata.xml

  5. 单击“下一步”,然后在“指定显示名称”页面上的“显示名称”“备注”框中,为信赖方信任键入名称和说明。

  6. 单击“下一步”跳过“立即配置多重身份验证”页面。

  7. 单击“下一步”跳过“选择颁发授权规则”页面。

  8. 单击“下一步”跳过“准备好添加信任”页面。

  9. “完成”页面上,选中“向导关闭时打开此信赖方信任的‘编辑声明规则’对话框”复选框,然后单击“关闭”

接下来,您将在“编辑声明规则”对话框中进行操作,以添加一个规则,来确保 AD FS 发送的断言与 Tableau Server 需要的断言匹配。Tableau Server 至少需要一个电子邮件地址。不过,如果除电子邮件之外还包括名字和姓氏,则可确保 Tableau Server 中显示的用户名与 AD 帐户中的用户名相同。

  1. “编辑声明规则”对话框中,单击“添加规则”

  2. “选择规则类型”页面上,针对“声明规则模板”,选择“以声明方式发送 LDAP 特性”,然后单击“下一步”

  3. “配置声明规则”页面上,针对“声明规则名称”,输入对您有意义的规则名称。

  4. 对于“特性存储”,选择“Active Directory”,按如下所示方式完成映射,然后单击“完成”

  5. 映射区分大小写,并且需要准确的拼写,因此请仔细检查您输入的内容。此处的表显示了常见的属性和声明映射。使用特定的 Active Directory 配置验证属性。

    LDAP 特性传出声明类型
    SAM-Account-Name名称 ID
    SAM-Account-Nameusername
    firstName
    姓氏lastName

如果运行的是 AD FS 2016 或更高版本,则必须添加一个规则以经历所有声明值。如果运行的是早期版本的 AD FS,请跳到下一个过程以导出 AD FS 元数据。

  1. 单击“Add Rule”(添加规则)。

  2. 在“Claim rule template”(声明规则模板)下,选择“Pass Through or Filter an Incoming Claim”(经历或筛选传入声明)。

  3. 在“Claim rule name”(声明规则名称)下,输入“Windows”。

  4. 在“Edit Rule - Windows”(编辑规则 - Windows)弹出窗口中:

    • 在“Incoming claim type”(传入声明类型)下,选择“Windows account name”(Windows 帐户名)。

    • 选择“Pass through all claim values”(传递所有声明值)。

    • 单击“OK”(确定)。

现在,您将导出稍后将导入到 Tableau Server 的 AD FS 元数据。您还将确保已针对 Tableau Server 对元数据进行了正确配置和编码,并验证 SAML 配置的其他 AD FS 要求。

  1. 将 AD FS 联合元数据导出到 XML 文件,然后从 https:///FederationMetadata/2007-06/FederationMetadata.xml 下载文件。

  2. 在文本编辑器(如 Sublime Text 或 Notepad++)中打开元数据文件,并验证它是否正确编码为无 BOM 的 UTF-8。

    如果文件显示某种其他编码类型,请使用正确的编码从文本编辑器中保存该文件。

  3. 验证 AD FS 是否使用基于表单的身份验证。登录是在浏览器窗口中执行的,因此您需要 AD FS 默认使用这种类型的身份验证。

    编辑 c:\inetpub\adfs\ls\web.config,搜索相关标记并移动行以使其显示为列表中的第一行。保存文件,以便 IIS 能够自动重新加载它。

    注意:如果未看到 c:\inetpub\adfs\ls\web.config 文件,则 AD FS 服务器上未安装和配置 IIS。

  4. (可选)仅当针对特定于站点的 SAML 将 AD FS 配置为 IDP 时,才需要执行此步骤。如果针对服务器范围的 SAML 将 AD FS 配置为 IDP,则不需要此步骤。

    配置其他 AD FS 信赖方标识符。这使得您的系统能够解决 SAML 注销的任何 AD FS 问题。

    执行以下操作之一:

    Windows Server 2008 R2:

    Windows Server 2012 R2:

    注意:对于依赖于同一实例的单一依赖方,AD FS 可与 Tableau Server 结合使用。AD FS 不能用于依赖于同一实例的多个依赖方,例如,多站点 SAML 站点或者服务器范围和站点 SAML 配置。

    1. “AD FS 管理”“信赖方信任”列表中,右键单击您之前为 Tableau Server 创建的信赖方,并单击“属性”

    2. “标识符”选项卡上的“信赖方标识符”框中,输入 https://,然后单击“添加”

    3. AD FS 2.0 中,右键单击您之前为 Tableau Server 创建的信赖方,并单击“属性”

    4. “标识符”选项卡上的“信赖方标识符”框中,输入 https://,然后单击“添加”

步骤 4:将 AD FS 元数据提供给 Tableau Server

  1. 返回到 TSM Web UI,并导航到“配置”>“用户身份和访问”>“身份验证方法”选项卡。

  2. 在 SAML 配置窗口的“步骤 4”中,输入从 AD FS 导出的 XML 文件的位置,并选择“上载”

    突出显示了您在其中上载 SAML IDP 元数据的 TSM UI 区域的屏幕快照

  3. 配置服务器范围 SAML中指定的方式完成其余步骤(匹配声明和指定客户端类型访问权限)。保存并应用更改。

  4. 停止 Tableau Server,打开 TSM CLI,然后运行以下命令。

    第一个命令确保 AD FS 在接受用户的 SAML 凭据后可以正确重定向到 Tableau Server。第二个命令使用 AD FS 和 Azure AD FS 上默认的相同“刷新令牌最长不活动时间”配置 Tableau Server。将最长非活动时间设置为与 AD FS 匹配可避免常见错误状态,如 Tableau 知识库文章 Tableau Server 上的 SAML SSO 出现间歇性错误“Unable to Sign In”(链接在新窗口中打开)中所述。

    tsm configuration set -k wgserver.saml.sha256 -v true

    tsm authentication saml configure -a 7776000

  5. 应用更改:

    tsm pending-changes apply

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


在 Windows Active Directory (AD) 环境中,您可以连同 Kerberos 数据库委派一起启用 Tableau Server SAML 单点登录 (SSO)。这使授权用户能够直接访问 Tableau Server 以及其已发布工作簿和数据源中定义的基础数据。

过程概述

通过 SAML 向 Tableau Server 进行身份验证以及通过 Kerberos 访问基础数据的概念图

在一个典型方案中:

  1. 您的一位 Tableau 分析人员将仪表板发布到 Tableau Server。该仪表板包含与 Hadoop 群集的连接,例如,配置为接受 Kerberos 凭据的连接。

    然后,工作簿发布者将链接发给同事进行审阅。

  2. 当同事单击链接时,Tableau Server 通过 SAML SSO 进程验证用户身份。然后,它查看用户的授权方案,并在允许的情况下代表用户使用 Tableau Server 密钥表访问基础数据库。这将会用用户有权查看的 Hadoop 数据填充仪表板。

针对 SAML 及 Kerberos 配置 Tableau Server

当您完成以下过程将 SAML 和 Kerberos 各自单独启用后,将 SAML 与 Kerberos 结合使用就是自然而然的事:

  1. 针对 SAML 配置 Tableau Server,如配置服务器范围 SAML中所述。

  2. 配置 Tableau Server 和基础数据库以接受 Kerberos 凭据,如启用 Kerberos 委派及相关文章中所述。


当您要启用单点登录,并且还使用多个 SAML 身份提供程序 (IdP) 或 IdP 应用程序时,请在多站点环境中使用特定于站点的 SAML。启用站点 SAML 时,您可以为每个站点指定 IdP 或 IdP 应用程序,或者将某些站点配置为使用 SAML,而将其他站点配置为使用默认服务器范围身份验证方法。

如果希望所有服务器用户都使用 SAML 并通过同一个 IdP 应用程序登录,请参见配置服务器范围 SAML

启用特定于站点的 SAML 的先决条件

在站点级别启用 SAML 单点登录之前,请满足以下要求:

  • 必须针对本地身份存储配置 Tableau Server 身份存储。

    如果 Tableau Server 配置为使用外部身份存储(例如 Active Directory 或 OpenLDAP),则无法配置特定于站点的 SAML。

  • 确保您的环境和您的 IdP 符合一般的SAML 要求

    某些功能仅在服务器范围 SAML 部署中受支持,包括但不限于:

    • 特定于站点的 SAML 部署不支持的受密码保护的密钥文件。

  • 在配置特定于站点的 SAML 之前,您必须配置服务器范围的 SAML。您不需要启用服务器范围的 SAML,但特定于站点的 SAML 需要服务器范围的配置。请参见配置服务器范围 SAML

  • 请记下 SAML 证书文件的位置。在将服务器配置为支持特定于站点的 SAML时,您将提供此位置。

    有关详细信息,请参阅关于配置服务器范围 SAML 的主题中的将元数据和证书文件放在适当位置

  • Tableau Server 作为服务提供程序添加到 IdP。您可以在 IdP 提供的文档中找到此信息。

  • 确认托管特定于站点的 SAML IdP 的计算机和托管 Tableau Server 的计算机的系统时钟彼此相差不超过 59 秒。Tableau Serer 没有用于调整 Tableau Server 计算机和 IdP 之间的响应偏移(时间差异)的选项。

与特定于站点的 SAML 相关的服务器范围设置

在用于配置特定于站点的 SAML 的设置中,Tableau 基于这些设置提供特定于站点的返回 URL 和实体 ID。无法修改特定于站点的返回 URL 和实体 ID。这些配置由 SAML 设置,如配置服务器范围 SAML中所述。

服务器范围的设置、最长身份验证期限和响应偏移不适用于特定于站点的 SAML。这些配置是硬编码的:

  • 最长身份验证期限是指来自 IdP 的身份验证令牌在发出后的有效期。特定于站点的 SAML 的硬编码最长身份验证期限为 24 天。

  • 响应偏移是 Tableau Server 时间与仍允许处理消息的断言创建时间(基于 IdP 服务器时间)相差的最大秒数。此设置特定于站点的硬编码值为 59 秒。

将服务器配置为支持特定于站点的 SAML

满足上述先决条件后,可以运行以下命令以将服务器配置为支持特定于站点的 SAML。

  1. 配置服务器范围 SAML。至少必须运行以下 TSM 命令(如果已经配置了服务器范围 SAML,请跳至步骤 2):

    tsm authentication saml configure --idp-entity-id

  2. 启用站点 SAML。运行以下命令:

    tsm authentication sitesaml enable

    tsm pending-changes apply

关于命令

sitesaml enable 命令会在 Tableau Server Web UI 中的每个站点的“设置”页面上显示“身份验证”选项卡。将服务器配置为支持站点 SAML 后,您可以继续为站点配置 SAML,以完成“身份验证”选项卡上的设置。

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

如果希望检查运行 pending-changes apply 时将执行的命令和设置,则可以先运行以下命令:

tsm pending-changes list --config-only

为站点配置 SAML

此部分将引导您完成在 Tableau Server web UI 的“身份验证”页面上出现的配置步骤。在自托管式 Tableau Server 安装中,只有当在服务器级别启用了特定于站点的 SAML 支持时,此页面才会出现。Tableau Online 中已默认启用该支持。

注意:若要完成此过程,您还将需要 IdP 提供的文档。请查找那些介绍如何为 SAML 连接配置或定义服务提供程序或者添加应用程序的主题。

步骤 1:从 Tableau 中导出元数据

要在 Tableau Server 与您的 IdP 之间创建 SAML 连接,需要在这两项服务之间交换必需的元数据。要从 Tableau Server 中获取元数据,请执行以下任一步骤:请参见 IdP 的 SAML 配置文档来确认正确的选项。

  • 选择“导出元数据”,以下载一个包含 Tableau Server SAML 实体 ID、声明使用者服务 (ACS) URL 和 X.509 证书的 XML 文件。

    实体 ID 特定于站点,并且基于您在服务器上启用 SAML 时指定的服务器范围实体 ID。例如,如果指定了 https://tableau_server,则可能会看到站点的以下实体 ID:

    https://tableau_server/samlservice/public/sp/metadata?alias=48957410-9396-430a-967c-75bdb6e002a0

    您无法修改特定于站点的实体 ID 或 Tableau 生成的 ACS URL。

  • 如果您的 IdP 期望以另一种方式获得所需的信息,请选择“下载签名和加密证书”。举例来说,它希望您在将临的位置中输入 Tableau Server 实体 ID、ACS URL 和 X.509 证书。

    下图经过编辑,显示出这些设置在 Tableau Online 和 Tableau Server 中相同。

步骤 2 和 3:外部步骤

对于步骤 2,若要导入您在步骤 1 中导出的元数据,请登录您的 IdP 帐户,然后按照 IdP 的文档提供的说明来提交 Tableau Server 元数据。

对于步骤 3,IdP 的文档将也可在如何向服务提供程序提供元数据方面为您提供指导。它将指示您下载元数据文件,或者将显示 XML 代码。如果它显示 XML 代码,请将代码复制并粘贴到一个新文本文件中,并使用 .xml 扩展名保存文件。

步骤 4:将 IdP 元数据导入 Tableau 站点

Tableau Server 中的“身份验证”页面上,导入您从 IdP 下载或通过它提供的 XML 手动配置的元数据文件。

步骤 5:匹配属性

属性包含有关用户的身份验证、授权和其他信息。在“身份提供程序 (IdP) 断言名称”列中,提供包含 Tableau Server 所需信息的属性。

  • 用户名或电子邮件:(必填)输入存储用户姓名或电子邮件地址的属性的名称。

  • 显示名称:(可选但建议使用)某些 IdP 为名和姓使用单独的属性,而另一些则将全名存储在一个属性中。

    选择对您的 IdP 存储名称的方式对应的按钮。举例来说,如果 IdP 将名和姓合并在一个属性中,请选择“显示名称”,然后输入属性名称。

    为 Tableau Server 配置站点 SAML 的步骤 5 的屏幕快照 - 匹配属性

步骤 6:管理用户

选择现有的 Tableau Server 用户,或者添加您想批准其进行单点登录的新用户。

在添加或导入用户时,还要指定用户的身份验证类型。在“用户”页面上,可以在添加用户后随时更改用户的身份验证类型。

有关详细信息,请参见向站点添加用户导入用户以及针对 SAML 设置用户身份验证类型

重要信息:使用特定于站点的 SAML 进行身份验证的用户只能属于一个站点。如果用户需要访问多个站点,请将其身份验证类型设置为服务器默认值。根据服务器管理员配置特定于站点的 SAML 的方式,服务器默认值为本地身份验证或服务器范围 SAML。

步骤 7:疑难解答

首先执行“身份验证”页面上建议的疑难解答步骤。如果这些步骤无法解决问题,请参见 SAML 疑难解答


配置 SAML 身份验证后,可能需要定期更新证书。在某些情况下,您可能需要更改证书以在 IT 环境中进行操作更改。无论哪种情况,您都必须使用 TSM 或“站点身份验证”页面来更新已配置的 SAML 证书。

以下是更新服务器范围和特定于站点的 SAML 实现的证书和密钥文件的步骤。

更新服务器范围 SAML 的证书

若要更改或更新服务器范围 SAML 的证书(并在需要的情况下更新相应的密钥文件),请按照以下步骤操作:

  1. 在浏览器中打开 TSM:

    https://

  2. 停止 Tableau Server。

    您可以通过从 TSM Web UI 中单击 “Tableau Server 正在运行”并选择“停止 Tableau Server”来执行此操作,或者从命令行中使用 tsm stop 命令来执行此操作。

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

    Tableau 服务管理器用户身份验证设置

  4. 对于“身份验证方法”,选择“SAML”

  5. 在 GUI 中完成步骤 1 - 步骤 4,以更新 SAML 证书文件并在 Tableau Server 和您的 IdP 之间交换元数据。

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

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

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

更改证书后,必须运行 tsm pending-changes apply 以重新启动 Tableau Server 服务。我们还建议重新启动计算机上使用 SAML 证书的任何其他服务。如果要在操作系统上更改根证书,则必须重新启动计算机。

更新特定于站点的 SAML 的证书

用于 Tableau 站点元数据的证书由 Tableau 提供,不可配置。若要更新特定于站点的 SAML 证书,您必须将新证书上载到 IdP,并与 Tableau Server 重新交换元数据。

  1. 以服务器或站点管理员身份登录到站点,并选择“设置”>“身份验证”

  2. 在“身份验证类型”下,选择“编辑连接”以展开身份验证 GUI。

  3. 打开一个新选项卡或窗口,并登录到您的 IdP 帐户。

  4. 使用 IdP 文档提供的说明上载新的 SAML 证书。

  5. 下载新的 XML 元数据文件以提供给 Tableau Server。

  6. 返回到 Tableau Server 中的“身份验证”页面,并在 GUI 的步骤 4 中导入您从 IdP 下载的元数据文件。

  7. 更新配置信息后,单击“保存”


本主题提供相关信息,帮助解决在配置 SAML 身份验证时可能发生的问题。

SAML 和启用自动登录

如果您使用 SAML 且 Tableau Server 还配置为使用 Active Directory,请不要同时选择“启用自动登录”“启用自动登录”和 SAML 不能同时在同一服务器安装上使用。

配置 SAML 时出现 HTTP 状态 500 错误

在某些情况下,启用 SAML 并在浏览器中导航到 Tableau Server URL 之后,您可能会收到 HTTP 状态 500 错误并看到以下错误:

org.opensaml.saml2.metadata.provider.MetadataProviderException: User specified binding is not supported by the Identity Provider using profile urn:oasis:names:tc:SAML:2.0:profiles:SSO:browser

为了帮助解决此错误,请确保以下各项:

  • 在“SAML”选项卡中指定的 SSO 配置文件的 IdP URL 正确无误。

  • 在 IdP 中创建服务提供程序时提供的 SSO 配置文件的 IdP URL 正确无误。

  • IdP 配置为使用 HTTP-POST 请求。(不支持重定向和 SOAP。)

如果任何这些设置不正确,请进行适当的更新,然后再次执行 SAML 配置步骤,从通过 Tableau Server 生成和导出 XML 元数据文档开始。

如果这些设置正确无误,但您仍然看到错误,请检查 Tableau Server 和 IdP 生成的元数据 XML,如 SAML 要求中所述。

从命令行登录

当您使用 tabcmdTableau 数据提取命令行实用程序(链接在新窗口中打开)(Tableau Desktop 随附)登录到 Tableau Server 时,SAML 不用于进行身份验证,即使将 Tableau Server 配置为使用 SAML 也不例外。这些工具要求在最初安装 Tableau Server 时配置身份验证(本地身份验证或 AD)。

登录失败:未能找到用户

登录失败,并出现以下消息:

>Login failure: Identity Provider authentication successful for user

此错误通常意味着 Tableau Server 中存储的用户名与 IdP 提供的用户名之间存在不匹配。若要修复此错误,请确保这些用户名匹配。例如,如果史珍妮的用户名在 IdP 中存储为 jsmith,那么它在 Tableau Server 中也必须存储为 jsmith

登录失败:SSL 卸载

登录失败,并出现以下消息:

Unable to Sign In - Invalid username or password.

此外,vizportal 日志(设置为 debug 模式)包含以下消息:

DEBUG com.tableau.core.util.RemoteIP - Found header null in X-FORWARDED-PROTO

注意:若要记录 SAML 相关事件,vizportal.log.level 必须设置为 debug。有关详细信息,请参见更改日志记录级别

这种消息组合指明将连接 SSL 卸载到 Tableau Server 的外部代理服务器的配置不正确。若要解决此问题,请参见知识库文章升级后 SAML 出现“Unable to Sign In”和“Invalid username or password”错误(链接在新窗口中打开)

SAML 错误日志

SAML 身份验证在 Tableau Server 外部进行,因此,排查身份验证问题可能很困难。但是,Tableau Server 会记录登录尝试。可以创建日志文件的快照,并使用它们来排查问题。有关详细信息,请参见日志文件快照(将日志存档)

注意:若要记录 SAML 相关事件,vizportal.log.level 必须设置为 debug。有关详细信息,请参见更改日志记录级别

在未解压的日志文件快照内的以下文件中,检查 SAML 错误:

\vizportal\vizportal-

在 Tableau Server 9.0 及更高版本中,应用程序进程 (vizportal.exe) 处理身份验证,因此 SAML 响应由该进程记录。

末尾斜杠

在“SAML”选项卡上,确认“Tableau Server 返回 URL”的末尾没有斜杠

正确:http://tableau_server

错误:http://tableau_server/

确认连接

确认您配置的 Tableau Server 具有可路由的 IP 地址,或者在防火墙上具有允许直接与服务器双向通信的 NAT。

若要测试连接,可以在 Tableau Server 上运行 telnet,并尝试与 SAML IdP 进行连接。例如:C:\telnet 12.360.325.10 80

以上测试应连接到 IdP 上的 HTTP 端口 (80),而且您应收到 HTTP 标头。