【问题标题】:AAD and NuGet vs. MSA and NuGetAAD 和 NuGet 与 MSA 和 NuGet
【发布时间】:2019-03-22 21:53:27
【问题描述】:

我们在一个不是所有者的共享存储库中工作。我们的 AAD 帐户已被邀请 - username@domain.com。我们访问 Git 存储库没有问题。

问题:我们无法访问 NuGet 存储库。我们可以在 ADO 中访问它并查看所有工件。但是,当我们尝试在 VS 中拉取 repo 时,我们会得到 401 Unauthorized。

解决方法是使用个人 Microsoft 帐户 (MSA)。可以理解,这不是一个好主意 - 这是客户的工作。

问题:当受邀的 AAD 帐户不是所有者组织的一部分时,ADO 的 NuGet 功能是否仅受 MSA 支持而不是 AAD 帐户?这是硬限制吗?

谢谢!

【问题讨论】:

  • 您是使用您的 AAD 帐户登录 VS,还是仅使用您的 MSA? Azure DevOps 确实支持 AAD,所以它要么是权限问题,要么是身份验证问题。您是否遵循 Azure DevOps 关于使用私有 NuGet 源的文档?虽然我认为它应该在 Visual Studio 中自动运行,但您也可以下载并尝试使用 nuget 身份验证提供程序。
  • 使用 AAD 登录。如果我连接到 MSA,它就可以工作。如果我连接到我的 AAD,它不会 (401)。检查了我们组织中的多个开发人员,同样的问题。将 MSA 添加到团队中,然后繁荣,它可以工作。把它拿掉,它又坏了。如果与 NuGet 存储库相关的 AAD 与受邀的帐户相同,则似乎可以正常工作。但是,我觉得问题出在外部 AAD 上。进行身份验证时,Visual Studio 不支持 PAT。可能是 ADO 身份验证中的错误?
  • 您确定您的 aad 帐户对 Feed 具有读取/下载权限吗?您可以尝试在 VSTS 的网站上手动创建 PAT(对不起,对我来说 ADO 是数据库 API)并尝试使用带有 PAT 的 nuget.exe 进行恢复,或者将令牌放入 nuget.config 以使用 dotnet cli 或 VS 进行恢复。您还可以从 azure feed“连接到 feed”页面下载带有身份验证插件的 nuget.exe,然后尝试使用它进行恢复。
  • @zivkan 虽然我会尝试一下,但这并不理想...我没有看到将 PAT 放入 nuget.config 的方法,但我会寻找一些相关的文档。似乎仍然有一个错误。
  • Here are how to store an api key in nuget.config。我并不是说这是一个永久的解决方案,但它是关于准确地隔离问题的位置以找出它是否真的是一个错误。如果它是一个错误,那么您可以通过精确和详细的重现步骤报告它,如果它不是一个错误,您可以找出配置问题是/曾经是什么。到目前为止,有证据表明您的 AAD 无权访问私人订阅源。这些步骤可以证明我错了。

标签: visual-studio nuget azure-active-directory azure-artifacts microsoft-account


【解决方案1】:

使用 Azure Artifacts 进行身份验证可能有点麻烦……但它可以工作(即使使用来宾 AAD 帐户)。我每天都这样使用它。如果您可以通过 UI 从提要下载文件,您也可以通过 VisualStudio 或其他工具下载。

VisualStudio 在与提要交谈时应该完全没有问题,至少如果它是一个最新版本的话。对于 VSCode 和其他人,您应该尝试 Azure Artifacts Credential Provider 并按照以下方式运行:dotnet restore --interactive

【讨论】:

  • 我可以从 ADO 提供的 URI 下载 JSON 提要。但是,当我在 Visual Studio 中时,它会提示输入凭据,然后失败并显示 401。如果我使用常规的 ol' MSA 帐户,它可以完美运行。您每天都在使用访客帐户吗?
  • 我的 AAD 帐户是我在 VisualStudio 中的主要帐户。我的 MSA 帐户仅作为辅助帐户添加。是的,我是另一家公司租户的客人。
  • 谢谢,亚历克斯。我会检讨。如果我找到答案,我会在这里发布。也谢谢大家!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
  • 2016-05-14
  • 1970-01-01
  • 1970-01-01
  • 2023-02-14
  • 2014-03-30
相关资源
最近更新 更多