【问题标题】:Accessing Azure DevOps package feed with Azure AD Work Account使用 Azure AD 工作帐户访问 Azure DevOps 包源
【发布时间】:2019-06-08 13:19:37
【问题描述】:

我在 Azure DevOps 中有一个私有源,我是该源的所有者,为了访问 Azure DevOps,我使用我的工作帐户。

从包管理控制台访问提要时,会显示一个弹出窗口以输入我的凭据,但输入工作帐户凭据会返回 401 提要。如果我再次尝试在浏览器中访问提要,它会提示我输入我的凭据,但我最终会进入一个循环询问我的凭据。

按照此处的说明,我已经设法让 nuget cli 工作:

https://docs.microsoft.com/en-us/azure/devops/artifacts/nuget/bootstrap-nuget?view=vsts

然而,Visual Studio 包管理器控制台似乎不想使用 CredentialProvider.VSS.exe,所以给了我弹出窗口。

1) 我在哪里可以找到它为什么给我一个 401?我是提要的所有者,我的组织中的人员可以访问提要吗?

2) 上面的链接文章指出“开发人员凭据未放置在 repo 的 nuget.config 中。当 init 运行时,它将凭据放置在用户的 NuGet 配置中的 %APPDATA% 下”。但是查看此文件并没有在该文件中放置任何凭据

有时在使用包管理器控制台时,我会得到以下信息:

未找到 VSO 帐户的有效凭据

非常感谢任何指针。

【问题讨论】:

  • 注意我正在使用:Visual Studio 2017 Nuget 4.9.2

标签: nuget azure-devops credentials


【解决方案1】:

使用 Azure AD 工作帐户访问 Azure DevOps 包源

当我第一次在 Visual Studio 中配置 Azure DevOps 包源时,我收到了与您相同的 401 错误消息。原因是正如您所说,Visual Studio 包管理器控制台不使用CredentialProvider.VSS.exe。因此,要解决此问题,我们需要使用 nuget.config 文件手动向 Visual Studio 提供凭据:

nuget.config中添加以下内容:

  <packageSources>
    <add key="AzureDevOpsFeed" value="<ThePackageSourceFeedUrl>/MyCustomFeed/nuget/v3/index.json" />
  </packageSources>


  <packageSourceCredentials>
    <AzureDevOpsFeed>
      <add key="Username" value="<YourUserName>" />
      <add key="ClearTextPassword" value="<YourPassword>" />
    </AzureDevOpsFeed>
  </packageSourceCredentials>

之后,我们可以在 Visual Studio 中使用 Azure DevOps 包源。如果您想在构建定义上将此包提要与 nuget restore 任务一起使用,您可以选择选项Feed in my nuget.config

希望这会有所帮助。

【讨论】:

  • 感谢 Leo 的回复。我最终通过使用个人访问令牌并将其存储在我的全局 nuget.config 中来解决这个问题。在 prjects nuget.config 中存储用户名和密码是不行的,因为它存储在源代码管理中。我仍然没有完全理解为什么 Visual Studio 会向我显示一个对话框来输入我的用户名和密码,但是尽管我可以访问/拥有提要,但每次都无法进行身份验证。不是我所期待的无缝体验。
猜你喜欢
  • 1970-01-01
  • 2020-08-27
  • 1970-01-01
  • 2021-02-04
  • 1970-01-01
  • 1970-01-01
  • 2021-09-18
  • 1970-01-01
  • 2022-08-19
相关资源
最近更新 更多