【发布时间】: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