内容:

在 Tableau Server 上使用 Azure AD IdP 配置 SAML

  • 版本 :2022.1 及更高版本

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

您可以将 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 文件的位置,并选择“上载”

  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