---
schema_version: "1"
id: 3ba8e148d60d70c272ae08e488018218544f3d2dc26d9c91be600a4a44899096
title: 利用 Tableau Lightning Web 组件实现用户属性函数 (UAF)
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/online/lwc_uaf.md
canonical_url: https://help.tableau.com/current/online/zh-cn/lwc_uaf.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 2e2445832deabb3fcbb8f56532aaddc9078f8bd41fe378f06df21132b3182c65
description: Use User Attribute Functions (UAF) with Tableau Lightning web components for row-level security.
---
[跳转到主要内容](#main-content)

# 利用 Tableau Lightning Web 组件实现用户属性函数 (UAF)

您可以将用户属性函数 (UAF) 与 Tableau 视图和 Pulse Lightning Web 组件 (LWC) 一起使用，根据查看可视化项的用户的属性显示特定数据。[用户属性函数](https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_user.htm) 提供行级安全性，以便查看可视化项的人只能看到与他们相关的数据。有关 UAF 的详细信息，请参见[利用用户属性函数释放个性化分析的力量](https://www.tableau.com/zh-cn/blog/unlock-power-personalized-analytics-user-attribute-functions)。

先决条件

- 为 Tableau Lightning Web 组件配置了具有令牌身份验证的单点登录 (SSO)。请参见[使用令牌身份验证配置 Tableau Lightning Web 组件和单点登录 (SSO)](https://help.tableau.com/current/server/zh-cn/lwc_seamless_auth.htm)。
- Tableau 配置为在身份验证工作流中捕获用户属性。请参见[允许捕获用户属性](https://help.tableau.com/current/server/zh-cn/lwc_seamless_auth.htm#allow-capture-of-user-attributes)。
- 要嵌入的 Tableau 内容包括[用户属性函数](https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_user.htm)。有关如何在 Tableau 工作簿中使用用户属性函数的示例，请参见[确保内容作者包含用户属性函数](https://help.tableau.com/current/api/embedding_api/zh-cn/docs/embedding_api_user_attributes.html#4-ensure-the-content-author-includes-user-attribute-functions)。

## Salesforce 中的 Tableau UAF 声明定义

Tableau UAF 声明定义允许您在 JWT 中包含对用户属性的声明。这些属性的值可以从 Salesforce 中的“Account”（帐户）、“User”（用户）、“Opportunity”（商机）或“Case”（案例）对象中提取。当与 Tableau 内容中的用户属性函数结合使用时，仅显示与指定属性匹配的数据。

例如，Tableau 仪表板可以配置为仅显示其 \[州/省/市/自治区\] 数据列中的值与属性“state”的 JWT 声明中的某个值匹配的销售数据。

**语法**：USERATTRIBUTEINCLUDES（'attribute\_name'，预期值）

**示例**：USERATTRIBUTEINCLUDES('state'，\[州/省/市/自治区\])

在 Salesforce 中创建声明定义可以将适当的用户特定信息包含在 JWT 中。在此示例中，可以通过从“账单州/省/市/自治区”字段中提取值，用当前用户作为帐户所有者的帐户的值填充属性“state”。

**声明定义示例**

- 定义名称：state\_Account\_BillingState
- 属性名称：state
- 目标对象：帐户
- 目标对象字段：账单州/省/市/自治区
- 查看者目标对象关系：当前查看者是帐户所有者

对于在华盛顿州、俄勒冈州和加利福尼亚州拥有帐户的销售代表，JWT 将包含“state”声明，其值为 \[WA, OR, CA\]。Tableau 仪表板将仅显示 \[州/省/市/自治区\] 值与 WA、OR 或 CA 匹配的数据。

## Experience Cloud 中对外部用户的支持

通过 Experience Cloud 站点访问 Tableau 的**外部用户**支持用户属性函数 (UAF) 和主机映射。这允许将与登录的外部用户关联的 Salesforce 属性包含在 JWT 中，从而启用基于该用户数据的个性化 Tableau 视图。

外部用户包括经过身份验证的 Experience Cloud 用户，例如合作伙伴和客户社区用户。**不支持来宾用户。**

为确保功能正常，请执行以下操作：

- 外部用户必须有权访问 UAF 和主机映射使用的相关记录。
- 必须将以下对象配置为允许外部访问（例如，Public 只读）：
    - 分析用户属性函数令牌
    - 主机映射
- UAF 声明必须由具有“设置”访问权限的内部 Salesforce 用户创建和配置。

使用适当的共享配置后，UAF 和主机映射对外部用户的功能将与对内部用户的功能相同。

## 创建定义

若要创建用户属性定义，请执行以下步骤：

1. 从您的 Salesforce 应用中，选择右上角的齿轮，然后选择“Setup”（设置）。
2. 在左侧导航窗格的“Quick Find”（快速查找）搜索栏中输入“Tableau”。
3. 选择“Tableau UAF Claims Definition”（Tableau UAF 声明定义）设置页面。
4. 选择“Create New”（创建新定义）。
5. 填写定义值：
    
    1. 定义名称：输入一个唯一名称。（例如：state\_Account\_BillingState）
    2. 属性名称：输入Tableau中用户属性函数指定的属性名称。（例如：state）
    3. 目标对象：选择您想要从中提取值的目标对象。Tableau LWC 目前支持用户和帐户对象。
    4. 目标对象字段：选择您想要从中提取值的目标对象上的字段。（例如：账单州/省/市/自治区）
    5. 查看者目标对象关系：选择当前查看者和目标对象之间的关系。（例如：当前查看者是帐户所有者）。
6. 选择“保存”。或者，如果要返回 Tableau UAF 声明定义设置页面而不保存，请选择“取消”。

## 向 Tableau Lightning Web 组件页面添加定义

### 主页、应用程序和记录 Lightning 页面

若要添加定义，请执行以下操作：

1. 选择“选择…”。
2. 使用箭头将可用的定义移动到“已选定”字段。
3. 选择“确定”。
4. 对同一页面上的所有 Tableau Lightning Web 组件重复上述步骤。有关详细信息，请参见[同一页面上多个组件的注意事项](#Consider)。

### Experience Cloud 页面和 Utility Bar

输入以逗号分隔的 UAF 声明定义名称列表。若要复制定义名称，请从 Salesforce 应用程序中导航到“Tableau UAF Claims Definition”（Tableau UAF 声明定义）设置页面，然后选择“Copy”（复制）。

### 同一页面上多个组件的注意事项

如果将多个 Tableau 视图或 Tableau Pulse Lightning Web 组件添加到同一页面，则每个组件必须具有相同的一组 UAF 定义名称。只有一个组件向 Tableau 进行身份验证，并且该会话将用于加载两个组件。这意味着无论哪个组件执行身份验证，两个组件的相关用户属性信息都必须存在于该会话中。

例如：

- 如果您有两个 Tableau 视图组件，其中一个需要定义 A 中的用户属性信息，另一个需要定义 B 中的用户属性信息，则这两个组件都必须同时包含定义 A 和 B。
- 如果 Tableau 视图组件需要定义 A，但同一页面上的 Tableau Pulse 组件不需要任何用户属性信息，则两个组件都必须包含定义 A。

## 删除定义

若要删除用户属性定义，请执行以下步骤：

1. 从您的 Salesforce 应用中，选择右上角的齿轮，然后选择“Setup”（设置）。
2. 在左侧导航窗格的“Quick Find”（快速查找）搜索栏中输入“Tableau”。
3. 选择“Tableau UAF Claims Definition”（Tableau UAF 声明定义）设置页面。
4. 针对要删除的定义选择“Delete”（删除）。

### 主页、应用程序和记录 Lightning 页面

如果删除已添加到 Tableau LWC 的定义，请刷新 Lightning App Builder 中的页面以更新可用的定义。已删除的定义将被自动移除。

### Experience Cloud 页面和 Utility Bar

已删除的定义不会自动从 Tableau LWC 组件字段中移除。“UAF 定义名称”组件字段中的已删除定义不会导致问题，但会造成不必要的和令人困惑的混乱。若要从 Tableau LWC 组件字段中移除定义，请选择“UAF 定义名称”字段，然后手动删除不再使用的任何名称。