【问题标题】:How do I set the build authorization scope for my project?如何为我的项目设置构建授权范围?
【发布时间】:2020-02-23 18:54:47
【问题描述】:

现在我的 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”没有完成此操作的权限。您需要有“ReadPackages”。

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

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

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

【问题讨论】:

  • 组织设置页面中确实存在一个可疑的类似设置,位于管道/设置下,名为“将作业授权范围限制为当前项目”。但是,默认情况下它是关闭的,这意味着管道应该可以访问组织中的所有项目。
  • @HenrikMöller 你会尝试其他人的解决方案吗?他们有效吗?
  • @HughLin-MSFT 抱歉耽搁了,但没有。请参阅下面 Elven Spellmaker 的评论。

标签: azure-devops devops


【解决方案1】:

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

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

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

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

  3. 点击“Feed 设置”

  4. 转到“权限”标签

  5. 点击标签右侧出现的 3 个点 [...]

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

这会添加 OP 发布的错误所抱怨的相关用户权限。希望微软能尽快解决这个问题。

来自开发者社区页面的 Tim Lynch 的全部功劳。

【讨论】:

  • 不幸的是,这似乎对我们不起作用。我们拨动了这里提到的开关stackoverflow.com/a/58646507/2604915,这似乎对我们有用……直到今天早上,它不再起作用了。我正在等待与 Microsoft 的屏幕共享会议,看看我们能否从中收集到任何信息。
  • 为我工作。一直收到 403 错误。在翻转开关工作。但是,首先,请按照我执行的选项 2 中概述的说明进行操作:paraesthesia.com/archive/2019/02/07/…
【解决方案2】:

所有答案都有效,但视情况而定。

考虑到只有 ContributorOwner 角色可以推送包 read the docs here

那么还要记住Scoped build identities

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

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

...

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

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

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

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

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

  • 没有。 1 如果身份是collection-scoped
  • 没有。 2 如果身份是项目范围
  • 没有。 3 如果适用,请给您的贡献者least privilege principle。 (对我来说,让他们阅读提要是可以的,管道或我是唯一允许推送包的人)

再次记住,您需要使用 OwnerContributor 角色。

【讨论】:

  • 在 Azure DevOps Server 中没有选择将作业授权范围限制为当前项目。有什么想法可以应用你的方式吗?
  • @arslanaybars 请更新我的 anwser,以便您可以通过您的解决方案吸引更多人
【解决方案3】:

转到您的供稿设置:

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

【讨论】:

  • OP 声明他们希望在构建上设置授权范围,但找不到它。与Feed的权限设置无关。
  • 是的,但我认为如果他愿意,问题就会得到解决。
  • @ShaykiAbramczyk 很遗憾,项目集合构建服务已经是贡献者了。
【解决方案4】:

它出现在组织和项目设置下。找到 Pipelines/Settings 并有一个名为 Limit job authorization scope to current project 的切换选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多