Azure生成OAuth令牌时Azure DevOps范围无效问题求助
解决Microsoft OAuth 2.0 invalid_scope错误的方案
1. 修正Scope参数格式
Azure AD v2.0端点要求资源特定的Scope格式,你当前使用的vso.project、vso.work_write属于Azure DevOps的权限,必须加上对应的资源URI前缀,正确的Scope组合应为:
scope=https://app.vssps.visualstudio.com/vso.project https://app.vssps.visualstudio.com/vso.work_write https://graph.microsoft.com/User.Read
https://app.vssps.visualstudio.com/是Azure DevOps的资源标识符前缀,必须添加才能让端点识别vso类权限https://graph.microsoft.com/User.Read是明确指定Microsoft Graph的User.Read权限(也可简写为User.Read,v2端点会自动映射到Graph,但显式书写更稳妥)
2. 检查Azure门户的API权限配置
确保你在Azure应用注册中已添加对应权限:
- 进入Azure门户 → 应用注册 → 你的应用 → API权限
- 添加以下两类权限:
- Microsoft Graph:添加
User.Read(委托权限,允许用户自行同意) - Azure DevOps:搜索并添加
vso.project、vso.work_write(均为委托权限)
- Microsoft Graph:添加
- 若应用面向所有用户开放,确保这些权限的类型为“委托权限”(而非应用权限),这类权限大多支持用户自行同意,无需管理员审批
- 若需批量用户使用,可点击授予管理员同意完成租户级权限配置
3. 关于CLIENT_ID/.default的问题
使用{client_id}/.default的前提是你已在应用注册的API权限中添加了目标资源的权限,且该权限已获得用户或管理员同意。如果提示“资源未在必要资源访问中列出”,说明你未为应用添加对应资源的权限,按步骤2配置后即可使用。但针对你的场景,更推荐使用明确的Scope组合,避免过度授予权限。
内容的提问来源于stack exchange,提问作者Scott
相关产品推荐
相关产品推荐

