Angular嵌入PowerBI(User Owns Data)遇AADSTS65001错误求助
排查AADSTS65001错误(User Owns Data模式嵌入PowerBI)
1. API权限配置遗漏或错误
- 确认应用注册中已添加Power BI Service的Delegated权限,必须包含以下必要项:
Report.Read.All(或按需使用更细粒度的Report.Read)Dataset.Read.All(若报表依赖数据集)
注意:必须选择Delegated权限,而非Application权限——User Owns Data模式需要绑定用户上下文
- 检查权限是否完成管理员同意:组织账户下普通用户无法自行同意权限,需管理员在应用注册的「API权限」页面点击「授予管理员同意」,确保权限状态显示为「已授予」
2. MSAL请求的Scope不正确
- 调用
acquireTokenSilent时,传入的scope必须匹配Power BI的完整资源标识符,正确格式示例:
注意:资源URI必须完整,不能省略前缀或使用错误域名const scopes = ["https://analysis.windows.net/powerbi/api/Report.Read.All"]; - 禁止仅使用
openid、profile等基础scope单独请求,必须包含Power BI的具体权限scope
3. 用户登录上下文未预请求Power BI权限
- 若登录时仅请求了基础OpenID权限,后续静默获取令牌会触发交互请求——用户未提前同意过Power BI相关权限
- 修改MSAL登录逻辑,在登录时直接包含Power BI的scope,示例:
让用户登录时直接完成权限同意,避免后续静默获取失败this.msalService.loginPopup({ scopes: ["https://analysis.windows.net/powerbi/api/Report.Read.All"] })
4. 应用注册重定向URI配置不匹配
- 确认应用注册中配置的重定向URI与Angular应用实际地址完全一致(包括http/https、端口号),不匹配会导致令牌流程中断,权限同意状态无法正确记录
- 必须启用「SPA」类型的重定向URI,Angular作为单页应用不适用Web类型配置
5. Power BI工作区权限验证
- 确认用户已被添加到Power BI高级工作区的成员/管理员角色,且报表权限继承自工作区(或单独给用户授予了报表访问权限)
- 测试用户直接登录Power BI服务能否打开目标报表,排除Power BI侧的权限问题
内容的提问来源于stack exchange,提问作者Bopsi
相关产品推荐
相关产品推荐

