You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用应用服务的系统分配托管标识获取Azure Repos访问令牌?

解决应用服务托管身份访问Azure Repos未授权问题

1. 修正令牌请求的Scope

你当前使用的https://app.vssps.visualstudio.com/.default是Azure DevOps账户服务的Scope,仅适用于组织管理类操作,无法用于Git仓库访问。需要替换为Git操作对应的Scope:

var token = tokenCredential.getTokenSync(
            new TokenRequestContext().addScopes("https://dev.azure.com/.default"));

2. 完善Azure DevOps权限配置

仅将托管身份加入项目管理员组可能不足以授予Git仓库的具体操作权限,需单独配置仓库权限:

  • 登录Azure DevOps组织,进入目标项目
  • 打开项目设置 → Repos → Repositories
  • 找到目标仓库,点击右侧「...」选择Security
  • 点击「Add users or groups」,搜索应用服务的系统分配托管身份名称(注意选择「Azure Active Directory」身份类型)
  • 为该身份分配对应权限:
    • 仅需克隆/读取:勾选Read权限的「Allow」
    • 需要推送修改:勾选Contribute权限的「Allow」
  • 保存权限设置

3. 验证令牌有效性

获取新令牌后,可通过Azure DevOps API验证权限:

curl -H "Authorization: Bearer {你的令牌}" https://dev.azure.com/{组织名}/{项目名}/_apis/git/repositories/{仓库名}?api-version=7.1-preview.1

若返回仓库信息,则令牌权限正常;若仍返回未授权,需检查托管身份是否已正确添加到Azure DevOps组织用户列表(组织设置→Users)。

4. 确认Git访问格式

保持你当前的Git URL格式,但确保令牌未过期:

https://{获取到的令牌}@dev.azure.com/orgname/projname/_git/reponame

内容的提问来源于stack exchange,提问作者h-okhs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:40:58