前言
通过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原生的访问方式,而是能够根据业务需求,灵活地构建自定义的数据门户、客户报表系统或内部管理看板等,真正实现数据价值的最大化与个性化分发。
本篇文章出于演示的目的,只是将报表嵌入到了一个空白的页面中,可能不够亮眼,但实际上整套嵌入的流程、条件等都已经介绍清楚了,后面只需要自己造一个好用的应用或自定义报表门户的外壳即可。
技术壁垒已被打破,剩下的就是发挥你的想象力,去填补那块“空白页面”,打造出令人眼前一亮的专属数据应用!




















