Power BI REST API服务主体缺失权限及许可配置问题咨询
问题解答
1. 许可相关疑问
你的问题不是许可限制,Power BI Pro足以支持服务主体调用Power BI REST API,不需要Power BI Premium或Entra P2。
你看不到Dataset/Report/Workspace类应用权限,是因为在Entra ID应用注册中选错了API源——当前看到的是Microsoft Graph的权限,而Power BI的专属权限需要选择「Power BI Service」这个API来添加。
至于找不到「Allow service principals to use Power BI APIs」设置,是因为只有Power BI管理员角色的账号才能看到并修改这个租户设置,全局管理员默认没有Power BI管理员权限,需要先分配该角色。
2. 分配Power BI管理员角色与启用租户级API访问
分配Power BI管理员角色
- 登录Microsoft 365管理中心,进入「角色」>「角色中心」>「Power BI管理员」;
- 点击「分配」,添加你的全局管理员账号(或指定的管理员账号);
- 保存后,该账号即可访问Power BI管理门户的租户设置。
启用租户级API访问
- 用已分配Power BI管理员角色的账号登录Power BI管理门户;
- 进入「租户设置」>「开发人员设置」;
- 找到「允许服务主体使用Power BI API」选项,开启后可指定允许的服务主体(留空则允许所有),保存设置。
添加Power BI应用权限
- 回到Entra ID应用注册页面,进入你的应用的「API权限」;
- 点击「添加权限」>「我的组织使用的API」,搜索并选择「Power BI Service」;
- 选择「应用权限」,勾选需要的权限(Dataset.ReadWrite.All、Report.ReadWrite.All、Workspace.ReadWrite.All等);
- 点击「添加权限」后,点击「授予管理员同意」完成权限配置。
3. 服务主体身份验证的替代方案
- 客户端证书认证:给服务主体配置客户端证书替代客户端密码,安全性更高,适合生产环境。配置时在Entra ID应用注册的「证书和密码」中上传证书,认证时使用证书生成令牌。
- 用户密码凭证(ROPC)流:使用Power BI Pro用户的账号密码直接认证,但该方式不支持MFA,安全性低,微软不推荐用于生产场景。
- 托管身份(跨云场景):通过AWS IAM角色与Entra ID的身份联合,让Lambda获取Entra ID令牌,配置相对复杂,但无需维护客户端密码或证书。
内容的提问来源于stack exchange,提问作者Gauri Uphade
相关产品推荐
相关产品推荐

