人生没有彩排
每一天都是现场直播

彻底搞懂PowerBI Embedded:从后端鉴权到前端渲染的全链路解析

本文属于《PowerBI 进阶秘籍》专栏,仅限尊享会员独享!

前言

通过PowerBI Embedded,可以将PowerBI报表嵌入到其他第三方的自定义应用中,比如钉钉、企微、自定义报表门户等,从而让用户可以在同一个业务应用里直接查看数据,而不是跳转到PowerBI Service。与此同时,也可以借助PowerBI Embedded所提供的丰富API接口来实现各种自定义需求,满足企业的个性化定制。

PowerBI Embedded的嵌入分为两种模式,“为客户嵌入”与“为组织嵌入”,这两种模式的核心差异在于谁来登录/鉴权,以及许可证的要求:

  • 为客户嵌入:通过Azure应用,使用服务主体或主用户去调用PowerBI REST API,生成用于前端嵌入的Embed Token。最终访问报表的各个终端用户都不需要有PowerBI账号或许可证,但嵌入的报表需要驻留在高级容量工作区中。该模式的权限控制更多由应用侧决定,但也可以结合RLS做细粒度隔离,更适合面向外部客户的场景。
  • 为组织嵌入:该模式相当于给PowerBI Service套了个壳,终端用户每次访问报表时,都要使用自己的账号进行登录,并需要PRO/PPU许可证(如果报表驻留在高级容量工作区中,则不需要许可证)。该模式下,用户的访问权限由PowerBI Service决定,更适合企业内部集成。

一般都是使用的“为客户嵌入”的模式。如果要使用“为组织嵌入”的模式,那么其实没必要走PowerBI Embedded,可以直接在PowerBI Service中打开对应报表,然后左上角文件菜单中选择嵌入报表到网站或门户选项,通过IFrame的方式来嵌入会更快,也更简单,虽然这样就不能再使用PowerBI Embedded所提供的丰富API接口,但“为组织嵌入”模式下一般也不会弄很复杂的功能,所以IFrame的方式也足够使用了。

然后,虽然微软的官方文档中也有嵌入报表的操作介绍与示例,但介绍的比较模糊,而且提供的示例只是让你在特定位置填写参数后运行就没了,没有详细介绍为何要这样做,从而很难改造它所给的示例。

因此,本篇文章将介绍PowerBI Embedded的“为客户嵌入”模式下的全流程开发。从Azure AD应用注册、后端Access Token获取、Embed Token生成,到最终前端JS SDK的渲染与嵌入等,将通过一套代码,同时兼容国际版与世纪互联两个环境,并支持服务主体与主用户两种认证模式,带你彻底搞懂PowerBI Embedded!

报表嵌入流程介绍

此内容仅限尊享会员查看,请先
登录后,购买的内容长期有效,不受时间限制。

服务主体与主用户的简单介绍

此内容仅限尊享会员查看,请先
登录后,购买的内容长期有效,不受时间限制。

Azure应用的注册与配置

此内容仅限尊享会员查看,请先
登录后,购买的内容长期有效,不受时间限制。

PowerBI Service的配置

此内容仅限尊享会员查看,请先
登录后,购买的内容长期有效,不受时间限制。

获取Access Token

此内容仅限尊享会员查看,请先
登录后,购买的内容长期有效,不受时间限制。

获取嵌入报表的元信息

此内容仅限尊享会员查看,请先
登录后,购买的内容长期有效,不受时间限制。

生成Embed Token

此内容仅限尊享会员查看,请先
登录后,购买的内容长期有效,不受时间限制。

使用PowerBI-Client SDK完成嵌入

此内容仅限尊享会员查看,请先
登录后,购买的内容长期有效,不受时间限制。

完整的实现代码

此内容仅限尊享会员查看,请先
登录后,购买的内容长期有效,不受时间限制。

总结

通过PowerBI Embedded,不再受限于PowerBI原生的访问方式,而是能够根据业务需求,灵活地构建自定义的数据门户、客户报表系统或内部管理看板等,真正实现数据价值的最大化与个性化分发。

本篇文章出于演示的目的,只是将报表嵌入到了一个空白的页面中,可能不够亮眼,但实际上整套嵌入的流程、条件等都已经介绍清楚了,后面只需要自己造一个好用的应用或自定义报表门户的外壳即可。

技术壁垒已被打破,剩下的就是发挥你的想象力,去填补那块“空白页面”,打造出令人眼前一亮的专属数据应用!

赞(0) 打赏
版权声明:本文为夕枫的原创文章,著作权归作者所有,未经允许不得转载
文章名称:《彻底搞懂PowerBI Embedded:从后端鉴权到前端渲染的全链路解析》
文章链接:https://www.ximaple.com/posts/1704.html
订阅评论
提醒
guest
0 评论
最新
最久 最赞
内联反馈
查看所有评论

觉得文章有用的话就支持一下吧~

感谢您的打赏支持,我将持续输出有价值的内容!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册

Operation don't support