使用Postman调用PowerBI API获令牌遇AADSTS65001错误及授权异常求助
解决Power BI API调用的AADSTS65001错误及授权返回HTML问题
核心问题分析
AADSTS65001错误本质是用户未对目标应用完成权限授权,即便不需要管理员同意,委托权限仍需用户自行完成授权流程- 授权返回HTML而非授权码,大概率是请求参数、端点配置或重定向URI不匹配导致
分步解决方案
1. 确认Azure AD应用权限配置
- 确保添加的是委托权限(Delegated permissions),而非应用权限(Application permissions):你是用个人用户身份调用API,委托权限仅需当前用户同意即可,无需管理员授权
- 检查权限是否已正确添加并保存:比如Power BI的
Dataset.Read.All、Workspace.Read.All等常用权限,添加后无需点击"授予管理员同意"(除非权限本身要求管理员审批)
2. 修正Postman授权请求参数
- 端点正确性:使用v2.0授权端点(Power BI API推荐)
- 授权端点:
https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/authorize - 令牌端点:
https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/token
- 授权端点:
- 重定向URI完全匹配:Postman默认回调地址是
https://oauth.pstmn.io/v1/callback,必须在Azure AD应用注册的"重定向URI"中添加该地址,且类型选择"Web" - 必填参数检查:
client_id:必须填写你的应用注册ID,不能为空response_type:固定为code(要获取授权码)scope:格式为{Power BI资源URI}/{权限名},例如https://analysis.windows.net/powerbi/api/Dataset.Read.All offline_access(offline_access用于获取刷新令牌)state:可任意填写,用于防CSRF攻击
3. Postman可视化授权配置步骤
- 在Postman请求的「Authorization」标签页,选择类型为
OAuth 2.0 - 填写以下配置项:
- Authorization URL:上述v2.0授权端点
- Access Token URL:上述v2.0令牌端点
- Client ID:你的应用注册ID
- Scope:填写所需的Power BI权限(带资源前缀)
- Redirect URI:
https://oauth.pstmn.io/v1/callback
- 点击「Get New Access Token」,弹出登录窗口后完成登录并同意权限,即可正常获取授权码和访问令牌
4. 排查返回HTML的问题
- 查看返回的HTML内容:如果是错误页面,里面会包含具体错误提示(如
invalid_scope、redirect_uri_mismatch),根据提示修正配置 - 避免使用
common作为租户ID:如果你的应用是单租户,必须填写具体的租户ID(可在Azure AD租户概览中获取) - 确保scope格式正确:Power BI的权限必须带上资源前缀
https://analysis.windows.net/powerbi/api/,不能只写权限名
内容的提问来源于stack exchange,提问作者Mostafa Bouzari
相关产品推荐
相关产品推荐

