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

Azure DevOps推送NuGet包遇403权限问题:需AddPackage权限

解决Azure DevOps Artifacts NuGet推送403权限问题

问题拆解

首先你看到的那个GUID 4a2eb786-540d-4690-a12b-013aec2c86e5,是Azure DevOps中你的流水线用来访问NuGet Feed的身份标识——大概率是你配置的个人访问令牌(PAT)对应的用户、服务主体(Service Principal),或是Azure Pipelines运行时使用的内置服务身份。

一步步解决

1. 先找到这个身份是谁

登录你的Azure DevOps组织,进入组织设置 → 用户,在搜索框直接粘贴这个GUID搜索,就能定位到对应的身份(可能是一个服务主体,也可能是你创建PAT时用的个人账户)。

2. 给该身份授予AddPackage权限

找到身份后,去配置目标NuGet Feed的权限:

  • 打开你的Azure DevOps项目,进入Artifacts模块,选中你要推送的NuGet Feed
  • 点击右上角的齿轮图标(Feed Settings),切换到Permissions标签页
  • 点击Add users/groups,搜索刚才找到的身份,添加后给它分配Contributor角色(这个角色默认包含AddPackage权限);如果不想给全Contributor权限,也可以自定义权限,确保勾选Add package选项。

3. 额外排查项

  • 检查$(NUGET_API_KEY):如果是PAT,确认它拥有**Packaging (Read & Write)**权限,且没有过期,作用域覆盖当前组织或项目;如果是服务连接的凭据,确认服务连接的身份配置正确。
  • 确认$(NUGET_FEED)是正确的Azure DevOps Artifacts Feed URL(标准格式为https://pkgs.dev.azure.com/{你的组织名}/{你的项目名}/_packaging/{Feed名}/nuget/v3/index.json)。

4. 针对GitHub托管仓库的特殊说明

因为你的代码存在GitHub,但流水线是Azure Pipelines,要注意:NuGetAuthenticate@0任务是使用你配置的$(NUGET_API_KEY)或服务连接凭据来访问Feed的,和GitHub的集成身份无关,所以重点还是确保推送用的身份拥有足够权限。

内容的提问来源于stack exchange,提问作者diegosasw

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:29:21