You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需手动登录获取Power BI API访问令牌的方法求助

解决Power BI API自动获取AccessToken绕过MFA及客户免登查看报表的方案

核心方案:改用服务主体(Service Principal)实现无交互认证

用户账号启用MFA后,无法通过用户名密码静默获取Token,必须通过服务主体完成无交互认证,同时实现客户无需Power BI账号即可查看报表。

1. 在Azure AD中注册服务主体

  • 登录Azure门户,进入Azure Active Directory → 应用注册 → 新建注册
  • 注册完成后,记录客户端ID、租户ID;在「证书和密码」菜单创建客户端密码,务必保存密码值(仅显示一次)

2. 配置Power BI服务主体权限

  • 登录Power BI管理门户,进入租户设置 → 开发人员设置,开启「允许服务主体访问Power BI API」
  • 进入目标工作区,在「访问权限」中添加服务主体名称,分配成员或管理员权限(按需选择最小权限)

3. Postman中用服务主体获取AccessToken

  • 新建POST请求,URL:https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/token
  • 请求头设置:Content-Type: application/x-www-form-urlencoded
  • 请求体参数:
    • grant_type: client_credentials
    • client_id: 服务主体客户端ID
    • client_secret: 服务主体客户端密码
    • scope: https://analysis.windows.net/powerbi/api/.default
  • 发送请求即可获取无需MFA验证的AccessToken,直接用于调用Power BI API

4. 实现客户免登查看报表:使用嵌入令牌

如果目标是让客户无需登录查看报表,推荐用嵌入令牌方案:

  • 后端用服务主体获取的AccessToken调用Power BI API的GenerateTokenInGroup接口,生成针对指定报表的嵌入令牌
  • 前端通过嵌入令牌加载报表,客户无需拥有Power BI账号

关键注意事项

  • 服务主体权限遵循最小化原则,避免过度授权
  • 客户端密码禁止硬编码到前端代码,需在后端安全存储并调用API
  • 确保Power BI租户已开启服务主体访问权限

内容的提问来源于stack exchange,提问作者Hanno Seegers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 21:32:02