委托Web应用使用Power BI API的权限配置方法问询
分页报表导出PDF场景下的Power BI 服务主体/托管身份配置指南
方案适配性说明
你提到的embedded方案完全适配当前需求,你的场景属于服务主体非交互调用Power BI REST API的标准场景,不管选择应用注册还是托管身份都可以实现,无需给最终用户单独配置PPU许可。
前置要求确认
- 先在Power BI管理中心的租户设置页,开启允许服务主体使用Power BI API的全局开关
- 存储目标分页报表的工作区必须位于Premium容量(PPU容量、EM/P系列SKU均可),你当前用个人PPU账号可正常导出,说明工作区已经满足容量要求
- 服务主体/托管身份本身不需要单独分配PPU许可,只要工作区符合容量要求即可正常调用API
身份配置(二选一即可)
方案1:Azure AD应用注册(服务主体)
- 在Azure AD后台创建新的应用注册,无需配置重定向URI,生成客户端密钥后留存客户端ID、客户端密钥、租户ID三个核心参数
- 如果你在租户设置中没有开放所有服务主体的API访问权限,需要把刚创建的服务主体添加到Power BI管理中心「开发者设置」的允许列表中
- 进入目标工作区的访问管理页,将该服务主体添加为工作区成员及以上角色,最低成员权限即可满足导出API的调用要求
方案2:Azure托管身份(适合部署在Azure资源上的Web应用,无需维护密钥)
- 给你的Web应用所在的Azure资源(如App Service、Function App、虚拟机等)开启系统分配托管身份,或创建独立的用户分配托管身份绑定到应用
- 后续Power BI侧的权限配置和方案1完全一致,直接把托管身份对应的服务主体添加到目标工作区的访问列表即可,调用API时可直接通过Azure资源的内置身份验证能力获取访问令牌,无需手动维护客户端密钥
API调用注意事项
- 调用导出接口前先获取Azure AD访问令牌,令牌的资源域填
https://analysis.windows.net/powerbi/api - 分页报表导出属于异步操作,调用
Reports - Export To File接口提交导出请求后,需要凭返回的operationId轮询导出状态,状态变为成功后再调用下载接口获取PDF文件 - 无需配置embedded方案中面向前端嵌入的相关参数,仅调用导出REST API即可满足需求
内容的提问来源于stack exchange,提问作者wilson_smyth
相关产品推荐
相关产品推荐

