在 Tableau Server 上使用 Azure AD IdP 配置 SAML
您可以将 Azure AD 配置为 SAML 身份提供程序 (IdP),并将 Tableau Server 添加到支持的单点登录 (SSO) 应用程序。如果将 Azure AD 与 SAML 和 Tableau Server 集成,用户可以使用其标准网络凭据登录到 Tableau Server。
开始之前:先决条件
您的环境必须具有以下各项,然后才能使用 Azure AD 配置 Tableau Server 和 SAML:
使用 SHA-2(256 位或 512 位)加密进行加密,并满足以下部分中列出的其他要求的 SSL 证书:
如果您的用户从不是默认域的域登录,请查看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 特性 | 传出声明类型 |
---|---|
onpremisessamaccountname | username |
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
返回到 TSM Web UI,并导航到“配置”>“用户身份和访问”>“身份验证方法”选项卡。
在 SAML 配置窗格的“步骤 4”中,输入从 Azure AD 导出的 XML 文件的位置,并选择“上载”。
按配置服务器范围 SAML中指定的方式完成其余步骤(匹配声明和指定客户端类型访问权限)。保存并应用更改。
如果这不是第一次配置 SAML,请执行以下步骤:
停止 Tableau Server,打开 TSM CLI,然后运行以下命令。
tsm configuration set -k wgserver.saml.sha256 -v true
tsm authentication saml configure -a -1
应用更改:
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 <max-auth-age>”。
AppID 不匹配
查看 vizportal.log 文件时,您可能会看到“目标受众与收件人不匹配”错误。
为了解决此问题,请确保 appID 与发送的内容匹配。将应用程序 ID 与正在使用的应用程序一起使用时,Azure 会自动将“SPN”附加到 appID。您可以通过向应用程序 ID 添加“SPN:”前缀来更改 Tableau SAML 设置中的值。
例如:SPN:myazureappid1234