Azure DevOps REST API SPA应用登录Scope配置问题求助
解决Azure DevOps REST API登录时的AADSTS650053错误
错误原因
你使用的vso.work_write是Azure DevOps专属的权限范围,但当前MSAL请求默认指向的资源是Microsoft Graph(客户端ID为00000003-0000-0000-c000-000000000000),该资源下并不存在Azure DevOps的权限范围,因此触发AADSTS650053错误。
正确的Scope配置方式
Azure DevOps的资源ID为499b84ac-1321-427f-aa17-267ca6975798,权限范围需要明确关联这个资源,有三种合法写法:
- 直接使用资源ID拼接权限:
'499b84ac-1321-427f-aa17-267ca6975798/vso.work_write' - 使用Azure DevOps通用资源URL拼接权限:
'https://app.vssps.visualstudio.com/vso.work_write' - 限定特定组织的资源URL拼接权限:
'https://dev.azure.com/{你的组织名}/_apis/vso.work_write'
MSAL登录请求代码示例
const loginRequest = { scopes: ['499b84ac-1321-427f-aa17-267ca6975798/vso.work_write'] }; msalInstance.loginPopup(loginRequest) .then(response => { // 处理登录成功后的逻辑,比如获取访问令牌调用API }) .catch(error => { console.error('登录失败:', error); });
补充:应用注册的API权限配置
在Azure AD应用注册中必须提前添加Azure DevOps的权限:
- 进入应用注册后台,切换到「API权限」页面
- 点击「添加权限」,选择「我的组织使用的API」,搜索
Azure DevOps或直接输入资源ID499b84ac-1321-427f-aa17-267ca6975798 - 勾选需要的权限(如
vso.work_write),完成添加 - 若为单租户应用,需点击「授予管理员同意」确保权限生效
内容的提问来源于stack exchange,提问作者Bridgewater
相关产品推荐
相关产品推荐

