Power BI 使用方案:为客户嵌入内容
备注
本文是 Power BI 实现规划系列文章中的一篇。 本系列着重介绍 Microsoft Fabric 中的 Power BI 体验。 有关该系列的介绍,请参阅 Power BI 实施规划。
此使用方案着重介绍开发人员如何以编程方式在客户的自定义应用程序中嵌入 Power BI 内容。 (开发者不一定要负责创建 Power BI 内容。)当应用程序受众包括没有权限或适当许可证来访问贵组织 Power BI 内容的用户时,“为客户嵌入内容”方案适用。 自定义应用程序需要具有访问 Power BI 内容的权限和适当许可证的嵌入标识。 自定义应用程序可以是多租户应用程序。
注意
在此方案中,Power BI 是平台即服务 (PaaS)。 此嵌入方案有时称为“应用拥有数据”。
方案示意图
下图简要概述了支持为客户嵌入内容的最常见用户操作和 Power BI 组件。
提示
如果想要将方案图嵌入演示文稿、文档或博客文章,或者将其打印为墙上海报,建议下载方案图。 由于它是可缩放矢量图形 (SVG) 图像,因此可以放大或缩小它,而不会造成任何质量损失。
上面的示意图描绘了以下用户操作、工具和功能:
项目 | 描述 |
---|---|
Power BI 内容创建者使用 Power BI Desktop 开发 BI 解决方案。 | |
准备就绪后,内容创建者将 Power BI Desktop 文件 (.pbix) 或 Power BI 项目文件 (.pbip) 发布到 Power BI 服务。 | |
某些数据源(例如驻留在专用组织网络中的数据源)可能需要本地数据网关或 VNet 网关来进行数据刷新。 | |
Power BI 工作区包含准备嵌入的 Power BI 项。 嵌入标识是服务主体或主用户帐户,必须属于工作区“管理员”或“成员”角色。 在多组织解决方案中,可以通过为每个租户创建一个工作区来实现租户分离。 此设计模式被称为“工作区分离”。 | |
自定义应用程序会提示应用用户使用任何身份验证方法进行身份验证(不一定Microsoft Entra ID。 | |
身份验证成功后,自定义应用程序将使用嵌入标识来获取和缓存 Microsoft Entra 访问令牌。 | |
自定义应用程序使用 Microsoft Entra 访问令牌代表嵌入标识调用 Power BI REST API。 具体而言,应用程序会使用访问令牌来检索有关工作区项的元数据。 元数据包括将内容嵌入自定义应用程序所需的属性。 它还使用访问令牌生成和缓存嵌入令牌,这些令牌表示有关 Power BI 内容以及应用程序如何访问它的事实。 | |
自定义应用程序在 iframe HTML 元素中嵌入特定的 Power BI 项。 应用程序可支持创建和编辑 Power BI 报表,前提是嵌入标识有权执行此操作。 |
|
Power BI 管理员监督和监视 Power BI 服务中的活动。 |
要点
下面是关于以编程方式在客户的自定义应用程序中嵌入 Power BI 内容需要强调的一些要点。
使用案例
通常,为客户嵌入内容是由独立软件供应商 (ISV) 完成的。 ISV 认识到需要在其应用中嵌入分析。 这使得用户可以直接访问上下文中的见解,帮助他们基于事实而不是意见做出决策。 与开发可视化效果相比,嵌入 Power BI 内容通常更快、成本更低。
ISV 可以开发多租户应用程序,其中每个客户都是一个租户。 嵌入 Power BI 分析的多租户应用程序将使用“为客户嵌入内容”方案,因为应用程序用户包括外部用户。 本文稍后将更详细地介绍多租户应用程序。
可嵌入的内容
为客户嵌入内容时,可嵌入以下 Power BI 内容类型:
- Power BI 报表
- 特定的 Power BI 报表视觉对象
- 分页报表
- Q&A 体验
- 仪表板
- 特定仪表板磁贴
内容所在的位置没有限制,但内容不能位于个人工作区中。 重要的是,嵌入标识有权查看(或者创建或编辑)内容。
身份验证
身份验证流是使用 Microsoft Entra ID(也称为无提示身份验证)的非交互式身份验证。 非交互式身份验证意味着应用用户不需要拥有 Power BI 帐户,即使他们拥有此帐户,也不会使用它。 因此,专用的 Microsoft Entra 标识(称为嵌入标识)使用 Microsoft Entra ID 进行身份验证。 嵌入标识可以是服务主体或主用户帐户(后文中进行了介绍)。
身份验证流尝试以身份验证服务无法提示用户提供其他信息的方式获取 Microsoft Entra 令牌。 应用用户通过应用进行身份验证(应用可以使用任何身份验证方法)后,应用使用嵌入标识通过非交互式身份验证流获取 Microsoft Entra 令牌。
应用获取 Microsoft Entra 令牌后,它会缓存该令牌,然后使用它生成嵌入令牌。 嵌入令牌表示有关 Power BI 内容以及如何访问它们的事实。 应用使用嵌入令牌在 iframe
HTML 元素中嵌入内容。
服务主体
应用可以使用服务主体获取 Microsoft Entra 令牌。 Microsoft Entra 服务主体是应用使用的安全标识。 它定义 Microsoft Entra 租户中应用的访问策略和权限,启用登录期间的应用身份验证和资源访问期间的授权等核心功能。 服务主体可以使用应用机密或证书进行身份验证。 如果启用了“允许服务主体使用 Power BI API”租户设置,并且服务主体属于允许的组,则服务主体只能使用 Power BI REST API。
提示
建议使用生产应用的服务主体。 它提供最高的安全性,因此它是 Microsoft Entra ID 建议的方法。 此外,它还支持更好的自动化和缩放,管理开销更少。 但需要 Power BI 管理员权限进行设置和管理。
主用户帐户
应用可以使用主用户帐户获取 AD 令牌。 主用户帐户是常规 Microsoft Entra 用户。 在 Power BI 中,帐户必须属于工作区“管理员”或“成员”角色才能嵌入工作区内容。 它还必须具有 Power BI Pro 或 Power BI Premium Per User (PPU) 许可证。
注意
无法使用主用户帐户嵌入分页报表。
有关嵌入标识的详细信息,请参阅设置嵌入 Power BI 内容的权限。
许可
为客户嵌入 Power BI 内容时,需要确保内容位于具有以下许可证模式之一的工作区中:
- 高级容量:此许可证模式可用于 Power BI Premium。
- Embedded:此许可证模式可用于 Power BI Embedded。
- Fabric 容量:此许可证模式可用于 Microsoft Fabric。
重要
有时本文指的是 Power BI Premium 或其容量订阅 (P SKU)。 请注意,Microsoft 目前正在合并购买选项并停用 Power BI Premium Per Capacity SKU。 新客户和现有客户应考虑改为购买 Fabric 容量订阅 (F SKU)。
有关详细信息,请参阅 Power BI Premium 许可即将进行的重要更新和 Power BI Premium 常见问题解答。
每个许可证模式选项都需要购买属于基于容量的许可证的计费产品。 基于容量的许可证允许你创建预留容量。
容量表示处理工作负载所需的计算资源,例如报表呈现和数据刷新。 预留容量已与其他客户的工作负载隔离,因此提供能够发挥出可靠且一致的性能的规模。
注意
无法通过 Fabric(免费)、Power BI Pro 或 Power BI PPU 许可证在生产环境中使用“为客户嵌入”方案。
有关产品和许可的详细信息,请参阅选择适当的 Power BI 嵌入式分析产品。
Power BI 客户端 API
通过 Power BI 客户端 API,开发人员可在自定义应用程序和 Power BI 内容之间实现紧密集成。 他们通过使用在浏览器中运行的 JavaScript 或 TypeScript 编写自定义逻辑来开发应用程序。
应用程序可设置和自动执行操作,还可响应用户发起的操作。 此外,还可集成 Power BI 功能,包括导航、筛选器和切片器、菜单操作、布局和书签。
提示
Power BI 嵌入式分析操场是一个有助于学习、探索和试验 Power BI 嵌入式分析的网站。 它包括用于实践的开发人员沙盒,使用包含示例 Power BI 内容或你自己的内容的客户端 API。 代码片段和展示也可供你浏览。
有关详细信息,请参阅什么是 Power BI 嵌入式分析操场?
强制实施数据权限
当应用用户仅有权查看数据子集时,需要开发限制对 Power BI 语义模型数据的访问的解决方案。 这可能是因为不允许某些用户查看特定数据,例如其他销售区域的销售结果。 实现此要求通常涉及设置行级别安全性 (RLS),这涉及到定义筛选模型的角色和规则。
使用“为客户嵌入内容”方案时,应用必须设置嵌入令牌的有效标识,以限制对数据的访问。 此有效标识确定了 Power BI 如何连接到模型以及如何强制实施 RLS 角色。 如何设置有效的标识取决于 Power BI 语义模型的类型。
有关嵌入的内容的 RLS 角色的详细信息,请参阅强制实施 Power BI 嵌入式分析的数据权限。
多组织应用程序
多个组织可以使用一个多组织应用,其中每个组织是一个租户。 嵌入 Power BI 分析的多组织应用可以使用“为客户嵌入内容”方案,因为应用用户包括外部用户。 设计多组织应用时,可以从两个不同的租赁模式中进行选择。
建议采用“工作区分离”模式。 可以通过为每个租户创建一个 Power BI 工作区来是实现此方法。 每个工作区都包含特定于该租户的 Power BI 项目,语义模型连接到每个租户的独立数据库。
提示
有关工作区分离模型的详细信息,请参阅自动化工作区分离。 有关可缩放的多组织应用的详细信息,请参阅 Power BI Embedded 中多组织应用的服务主体配置文件。
或者也可以使用单个“多客户数据库”模式。 使用此模式时,解决方案可以实现与单个工作区的分离,该工作区中包含一组跨所有租户共享的 Power BI 项。 语义模型中定义的 RLS 角色可帮助更安全地筛选数据,以确保组织仅可查看自己的数据。
无代码嵌入
开发编程解决方案需要技能、时间和精力。 请考虑有一种成为“无代码嵌入”的嵌入技术,非开发人员可以使用这种技术在 Power Pages 中嵌入 Power BI 报表或仪表板。
网关设置
通常,在访问驻留在专用组织网络或虚拟网络中的数据源时需要一个数据网关。 网关的两个作用是刷新导入的数据,或查看查询实时连接或 DirectQuery 语义模型的报表。
系统监督
活动日志记录 Power BI 服务中发生的用户活动。 Power BI 管理员可以使用收集的活动日志数据来执行审核,以帮助他们了解使用模式和采用情况。
相关内容
若要详细了解 Power BI 嵌入式分析,请完成嵌入 Power BI 分析学习路径。
还可完成“Power BI 开发人员的一天”课程。 本课程包括一个自学工具包,指导你完成开发 ASP.NET Core MVC 应用的过程。
有关可帮助你做出 Power BI 实施决策的其他有用方案,请参阅 Power BI 使用方案一文。