设置和管理身份池
若要创建和管理身份池,您需要使用 Tableau REST OpenAPI,以编程方式对身份池方法(链接在新窗口中打开)进行调用。若要在身份池中添加或管理用户,您可以直接或通过 Tableau REST API 使用 Tableau Server 用户界面 (UI)。
身份池设置过程总结为以下步骤。
- 配置 Tableau Server 并建立会话。
- 通过设置新的本地身份存储实例来预置用户。注意:您可以跳过此步骤以使用现有的本地身份存储或在 Tableau Server 设置期间在 TSM 中配置的外部身份存储。
- 设置身份验证以使用 OpenID Connect (OIDC) 向 Tableau Server 验证用户的身份。
- 创建身份池,使用您配置的身份存储和 OIDC 身份验证。
- 通过使用 Tableau Server UI 或 REST API 将用户添加到身份池,使用户能够登录到 Tableau Server。
设置后,您可以测试、管理身份池,以及对身份池进行 故障排查。
注意:您可以使用 Salesforce 开发人员的 Postman 工作区中的身份池(链接在新窗口中打开) Postman 集合来了解、开发和测试本主题中描述的方法。
先决条件
在开始使用身份池之前,必须满足以下要求:
- 已配置与 OIDC 身份提供程序 (IdP)(例如 Okta)的集成
- 您正在运行 Tableau Server 2023.1 或更高版本
- 如果您在从版本 2021.4 或更低版本升级后运行 Tableau Server,则已经执行了身份迁移(链接在新窗口中打开)
入门指南
步骤 1:配置 Tableau Server 并建立会话
启用与设置身份池相关的更改需要一次性 TSM 配置以及会话和主机变量的声明。
在群集中的初始节点(安装了 TSM 的节点)上以管理员身份打开命令提示符。
运行以下命令:
tsm configuration set -k gateway.external_url -v http://<host>
tsm pending-changes apply
例如,您可以运行以下命令来配置您的 Tableau Server,即 http://myco:
tsm configuration set -k gateway.external_url -v http://myco
tsm pending-changes apply
有关详细信息,请参见 gateway.external_url(链接在新窗口中打开)。
(可选)运行以下命令为初始池(已配置 TSM)添加描述:
tsm configuration set -k wgserver.authentication.identity_pools.default_pool_description -v "<description>"
tsm pending-changes apply
例如,您可以运行以下命令来添加“MyCo 员工登录”描述:
tsm configuration set -k wgserver.authentication.identity_pools.default_pool_description -v "Sign-in for MyCo employees"
tsm pending-changes apply
有关详细信息,请参见 wgserver.authentication.identity_pools.default_pool_description(链接在新窗口中打开)。
以站点管理员身份登录到 Tableau Server,并执行以下操作:
- 转到浏览器的开发人员工具,并导航到应用程序的 Cookie。
- 记下 workgroup_session_id 值。
举例来说,如果在 Chrome 中工作,请右键单击 Tableau Server 主页上的任意位置,右键单击并选择“Inspect”(检查)。从顶部导航窗格中单击“Application”(应用程序),并从左侧导航窗格中单击“Cookie”。在“Cookie”下,单击您的 Tableau Server 名称,例如 http://myco.com,并记下中央窗格中的 workgroup_session_id 值。
在您用来通过 Tableau REST OpenAPI 发出身份池请求的脚本或 API 开发人员工具中,执行以下操作:
- 添加 workgroup_session_id 值作为全局变量。
- 此外,将端口 80、主机(您的 Tableau Server URL)和协议(HTTP 或 HTTPS)添加到您的全局变量。
例如,下表显示了您的 Tableau Server(即 http://myco)所需的全局变量。
全局变量 | 值 |
---|---|
工作组会话 ID | AbC_2abcDefDwGVzPu1hCQ|FJk5Z6OroPCLEDTKkwDxaeA0YzrIY04f|ca608d3c-fc01-4e40-ae5e-9b2131e4e7mm |
端口 | 80 |
主机 | http://myco |
协议 | HTTP |
步骤 2:设置身份池
Tableau Server 要求您配置身份存储以获取或预置您的 Tableau Server 用户。
设置身份池时,您可以使用新的或现有的本地身份存储(链接在新窗口中打开),也可以使用外部身份存储(链接在新窗口中打开)(Active Directory (AD) 或轻量级目录访问协议 (LDAP))(如果在 Tableau Server 设置期间配置了该外部身份存储)置。
注意:如果新 AD 或 LDAP 实例不是您在 Tableau Server 设置期间在 TSM 中配置的 AD 或 LDAP 实例(也称为初始池(已配置 TSM)),则不能使用身份池进行配置。
若要设置新的本地身份存储,请使用以下过程。如果您想要使用现有本地身份存储或在 Tableau Server 设置期间配置的身份存储,请跳至步骤 3:设置身份验证。
向 Tableau REST API 发出登录(链接在新窗口中打开)请求以生成凭据令牌。
示例
URI
POST https://myco/api/3.19/auth/signin
生成凭据令牌后,将凭据令牌添加到所有后续 API 请求的标头中。
通过使用 Tableau REST API OpenAPI 调用配置身份存储(链接在新窗口中打开)端点来配置身份存储。
在请求中,指定以下内容:
- 类型。对于本地身份存储类型,类型值始终为 0。如果您想要使用现有的本地身份存储或在 Tableau Server 设置期间在 TSM 中配置的身份存储,则无需设置新的本地身份存储实例。相反,请跳至下面的“步骤 3:设置身份验证”。
- 名称。名称必须唯一。
- 显示名称。这是可选的。
示例
URI
https://myco/api/services/authn-service/identity-stores/
请求正文 (JSON)
{ "type": "0", "name": "Local identity store #1", "display_name": "Local identity store #1" }
响应正文
无
步骤 3:设置身份验证
您可以配置 OpenID Connect (OIDC) 身份验证方法来验证用户的身份。
注意:OIDC 是当前唯一可使用身份池配置的身份验证方法,无论您与身份池一起使用的身份存储类型如何。
设置身份存储后,使用 Tableau REST API OpenAPI 调用创建身份验证配置(链接在新窗口中打开)端点。
在请求中,指定以下内容:
身份验证类型。身份验证类型值为“
OIDC
”。- iFrame。iFrame 的默认值为“
false
”。 所需的 OIDC 客户端 ID、客户端密文、配置 URL、ID 声明、客户端身份验证和用户名声明。
- 客户端 ID、客户端密文由您的 OIDC IdP 提供。
- 配置 URL 也由您的 IdP 提供。URL 通常可以使用以下格式:
https://<idp_url>/.well-known/openid-configuration
。 - ID 声明的默认值为“
sub
”。有关详细信息,请参见更改 sub 声明。 - 客户端身份验证的默认值为“
CLIENT_SECRET_BASIC
”。 - 用户名声明的默认值为“
email
”。有关详细信息,请参见默认值:使用 email 声明来映射用户。
关于用户名声明
Tableau 使用用户名声明来进行身份匹配。如果您在将用户添加到 Tableau Server 时提供标识符,则该标识符用于匹配用户名声明中提供的值。如果未提供标识符,Tableau 默认使用 Tableau Server 中设置的用户名。
注意:
- 如果您打算将此身份验证配置与使用 AD 作为其身份存储的身份池一起使用,请确保分配的用户在用户名声明中具有 AD sAMAccountName 值。
- 如果您打算将此身份验证配置与使用 LDAP 作为其身份存储的身份池一起使用,请确保分配的用户在用户名声明中具有 LDAP username 值。
示例
URI
https://myco/api/services/authn-service/auth-configurations/
请求正文 (JSON)
{
"auth_type": "OIDC",
"iframed_idp_enabled": true,
"oidc": {
"client_id": "0oa1hotzhjv4tyCd08",
"client_secret": "EsKd2NCxY-BiLu_zcIwr2lJZLziT_7sw9Fi6HV3",
"config_url": "https://dev-532601-admin.oktapreview.com/.well-known/openid-configuration",
"custom_scope": "",
"id_claim": "sub",
"username_claim": "email",
"client_authentication": "CLIENT_SECRET_BASIC",
"essential_acr_values": "",
"voluntary_acr_values": "",
"prompt": "login,consent",
"connection_timeout": 100,
"read_timeout": 100,
"ignore_domain": false,
"ignore_jwk": false
}
}
响应正文
无
步骤 4:创建身份池
根据您在 Tableau Server 设置期间配置的身份存储,您创建的身份池只能具有以下身份存储和身份验证方法组合之一:
- AD 身份存储 + OIDC 身份验证
- LDAP 身份存储 + OIDC 身份验证
- 本地身份存储 + OIDC 身份验证
前两个组合要求将初始池(已配置 TSM)配置为使用 AD 或 LDAP。
下面描述的过程使用最后一个组合“本地身份存储 + OIDC 身份验证”创建身份池。
配置 OIDC 身份验证后,使用 Tableau REST API OpenAPI 调用创建身份池(链接在新窗口中打开)端点。
在请求中,指定以下内容:
身份池的名称和描述。Tableau Server 登陆页面上的所有用户都可以看到身份池名称和描述。
身份存储实例 ID 和身份验证类型实例 ID。
注意:
- 若要获取身份存储实例 ID 和身份验证类型实例 ID,您可以调用列出身份存储(链接在新窗口中打开)和列出身份验证配置(链接在新窗口中打开)端点。
如果要创建使用您在 Tableau Server 设置期间在 TSM 中配置的身份存储的身份池,则身份存储实例值始终为
'1'
。
示例
URI
https://myco/api/services/authn-service/identity-pools/
请求正文 (JSON)
{ "name": "MyCo contractors", "identity_store_instance": "2", "auth_type_instance": "0", "is_enabled": true, "description": "Sign-in for MyCo contractors" }
示例响应正文
无
创建身份池后,转到您的 IdP 配置并将登录重定向 URI 设置为
http://<host>/authn-service/authenticate/oidc/<identity_pool_id>/login.
例如,
http://myco/authn-service/authenticate/oidc/57tgfe21-74d2-3h78-bdg6-g2g6h4734564/login
注意:若要获取身份池 ID,您可以调用列出身份池(链接在新窗口中打开)端点。
注意:
- 您可以根据组织的需要创建任意数量的身份池。
- 配置的初始池 (TSM) 支持其他身份存储类型和身份验证方法。有关详细信息,请参见身份验证。
步骤 5:将用户添加到身份池
您可以直接使用 Tableau Server 将用户添加到身份池。用户必须属于初始池(已配置 TSM)或者被添加到身份池才能登录 Tableau Server。将用户添加到身份池时,您的工作流可能会发生变化,具体取决于使用身份池配置的身份存储。
下面的过程描述了如何通过 Tableau Server UI 将用户添加到身份。但是,您可以使用 Tableau REST API 通过调用将用户添加到身份池(链接在新窗口中打开)端点来将用户添加到身份池。
以管理员身份登录到 Tableau Server UI。
从左侧导航窗格中,选择“用户”(或者,对于多站点 Tableau Server,选择“所有站点”>“用户”)。
单击 “添加用户”按钮,然后选择 “创建新用户”或“从文件导入用户”。
对于“创建新用户”:
选择要将新用户添加到的身份池,然后单击“下一步”。
如果您选择了配置有 AD 或 LDAP 身份存储的身份池,请输入用户名,分配站点成员身份和站点角色。完成后,单击“导入用户”按钮。
如果您选择了配置有本地身份存储的身份池,请输入用户名。该对话框将展开,以便您可以添加显示名称、标识符(在大多数情况下)、电子邮件地址以及设置站点和站点角色。完成后,单击“创建用户”按钮。
有关用户名以及如何分配站点成员资格和站点角色的详细信息,请参见设置用户的站点角色。
关于 Tableau 中的用户名和标识符
用户名是代表系统用户的信息。标识符用于补充用户名信息,并且可以被外部身份存储用作用户名的替代。
在 Tableau 中,用户名是用于登录 Tableau 的不可变值,标识符是可变值,在 Tableau 的身份结构中用作将用户与其用户名匹配的方式。标识符使 Tableau 更加灵活,因为它们可以与用户名不同。如果外部身份存储中的用户名发生更改,Tableau Server 管理员可以更新标识符以确保用户与正确的用户名匹配。
将现有用户添加到身份池时,您可能希望能够设置标识符。举例来说,如果现有用户属于配置有本地身份存储的身份池,而您希望将其添加到配置有 AD 身份存储的身份池中,我们会要求您提供用户名以搜索与该用户关联的标识符。另一方面,如果现有用户属于配置有 AD 身份存储的身份池,而您希望将其添加到配置有本地身份存储的身份池中,我们会要求您提供一个可选标识符。如果您希望将用户添加到配置有本地身份存储和本地身份验证的初始池(已配置 TSM),则是例外情况。您将无法为该用户设置标识符。
对于“从文件导入用户”:
按所列顺序上载包含以下列的 .csv 文件:
username, password, display name, license level, admin level, publishing capability, email address, identity pool name, identifier
注意:用户名和密码是唯一的必填列。但是,如果您不指定身份池名称,用户将被添加到初始池(已配置 TSM)。有关详细信息,请参见 CSV 导入文件准则。
例如,假设您要将 Henry Wilson 和 Fred Suzuki 添加到 General Contractors 身份池。您的 .csv 可能包含以下值:
henryw,henrypassword,Henry Wilson,Viewer,None,yes,hwilson@myco.com,General Contractors,hwilson
freds,fredpassword,Fred Suzuki,Creator,None,no,fsuzuki@myco.com,General Contractors,fsuzuki
注意:创建一个或多个身份池后,Tableau Server 登陆页面会更新以包含属于这些身份池成员的用户的登录选项。有关详细信息,请参见使用身份池预置和验证用户。
测试身份池
设置身份池后,我们建议您通过注销 Tableau Server 并以属于身份池的用户身份再次登录来对其进行测试。请确保完成登录过程以确保正确配置了 OIDC 身份验证。
注意:如果您在步骤 1:配置 Tableau Server 并建立会话中为初始池(已配置 TSM)配置了可选描述, 或者有适用于 Tableau Server 的服务器设置(常规和自定义)注释,我们建议该描述特定于使用初始池(已配置 TSM)登录的用户,而“登录自定义”注释适用于登录 Tableau Server 的所有用户。
管理身份池
您可以从服务器级别和站点级别的用户页面管理身份池中的用户。在“用户”页面上,您可以查看用户属于哪些身份池以及有关身份池的摘要详细信息。
对于所有其他身份池管理任务,包括更新身份验证配置或身份池以及删除本地身份存储或身份池,请使用 身份池方法(链接在新窗口中打开)中描述的 Tableau REST API OpenAPI。
身份池故障排查
身份池的局限性
身份池仅适用于 Tableau Server。
注意:身份池目前仅可用于服务器级配置。身份池不能限定在站点范围内。
Tableau Server 登陆页面显示 IdP 错误
在 Tableau Server 登陆页面上,在主要登录选项下方,身份池登录选项旁边可能会显示与 IdP 相关的错误消息。当满足以下其中一项或两项条件时,可能会出现此 OIDC 身份验证相关问题:1) Tableau Server 尚未配置为向 IdP 发送外部 URL,以及 2) 尚未声明全局变量。
若要解决此问题,请确保完成上面的步骤 1:配置 Tableau Server 并建立会话中描述的过程。
Tableau Server 登陆页面不显示身份池
如果身份池功能被禁用,您可以使用以下 TSM 命令再次启用它:
tsm configuration set -k features.IdentityPools -v true
tsm configuration set -k features.NewIdentityMode -v true
tsm configuration set -k wgserver.authentication.legacy_identity_mode.enabled -v false
tsm pending-changes apply
注意:运行这些命令会导致 Tableau Server 重新启动。