如何为我的项目设置构建授权范围?

Hen*_*ler 3 devops azure-devops

现在我的 NuGet 还原失败,因为项目构建用户没有对包源的贡献者访问权限。

/usr/share/dotnet/sdk/3.0.100/NuGet.targets(123,5): 错误:无法加载源 pkgs.dev.azure.com[..]index.json 的服务索引。/usr/share/dotnet/sdk/3.0.100/NuGet.targets(123,5): 错误 : 响应状态代码未表示成功:403(禁止 - 用户“xxxxxxx”缺乏完成此操作的权限。您需要有“阅读包”。

解决方案是将构建授权范围从当前项目更改为项目集合。这似乎非常可行,如下所示:

https://docs.microsoft.com/en-us/azure/devops/pipelines/build/options?view=azure-devops

但是,在 DevOps 的无数菜单中,可以在哪里设置此范围?

Dav*_*eña 6

所有答案都是有效的,但这取决于情况。

请考虑到仅允许贡献者所有者角色推送包, 请阅读此处的文档

然后还要记住Scoped 构建标识

Azure DevOps 使用两个内置标识来执行管道。

  • 集合范围的标识,可以访问集合中的所有项目(或 Azure DevOps Services 的组织)
  • 项目范围的身份,可以访问单个项目

...

默认情况下,使用集合范围的标识,除非在项目设置 > 设置中设置了将作业授权范围限制为当前项目

考虑到这一点,请执行以下步骤:

  1. 您需要检查您的管道正在使用哪个身份:

在此输入图像描述

对我来说是项目范围的身份

  1. 添加/检查可能适用的 Feed 权限(我将在图像下方留下说明)

在此输入图像描述

  • No. 1 如果身份是集合范围的
  • No. 2 如果身份是项目范围的
  • 第三,如果适用的话,给予你的贡献者最小特权原则。(对我来说,让他们阅读提要是可以的,管道或我是唯一允许推送包的人)

再次记住您需要使用所有者贡献者角色。


Mar*_*ark 5

几个小时前发布的这个 403 错误有一个解决方法:https : //developercommunity.visualstudio.com/content/problem/795493/403-error-during-nuget-restore.html

简而言之,这似乎会影响连接到私有源的新项目。这是建议的解决方法:

  1. 在构建失败的项目中单击“Artifacts”

    在此处输入图片说明

  2. 选择您在构建中尝试使用的提要,然后单击右上角的齿轮

    在此处输入图片说明

  3. 点击“饲料设置”

    在此处输入图片说明

  4. 转到权限选项卡

    在此处输入图片说明

  5. 单击选项卡右侧出现的 3 个点 [...]

    在此处输入图片说明

  6. 单击“允许项目范围的构建”

    在此处输入图片说明

这添加了 OP 发布的错误所抱怨的相关用户权限。希望微软能尽快对此做出适当的修复。

完全归功于来自开发者社区页面的 Tim Lynch。


Sha*_*zyk 2

转到您的 Feed 设置:

在此输入图像描述

在“权限”选项卡中,验证至少具有“项目集合构建服务(用户名)”的读者权限:

在此输入图像描述