如何从私有的Azure devops feed中恢复nuget包?

时间:2019-02-27 10:06:48

标签: tfs azure-devops nuget

背景

我在azure devops的私有nuget提要中有nuget包,我尝试从本地TFS中使用它们。

这有效,但仅持续了几个小时

在天蓝色的开发人员中,我导航到“工件->连接到提要”,然后单击链接“下载NuGet +凭据提供程序”。运行CredentialProvider.VSS.exe -U URL_TO_FEED时,我得到了一个jwt令牌。

在tfs内部部署中,我导航到构建定义中的“ NuGet恢复”步骤。在“提要和身份验证”中,我选择了“ NuGet.config中的提要”,在“此帐户/集合之外的提要的凭据”中,单击了“管理”。在“添加新的Team Foundation Server /团队服务连接”对话框中,选择“基于令牌的身份验证”并填写值。我将从CredentialProvider.VSS.exe获得的令牌放在“个人访问令牌”字段中。

还原了nuget软件包,因此一切似乎都很好,但是第二天它不再起作用了,因为令牌仅有效了几个小时(我将其解码以进行验证)。

问题

我应该如何进行这项工作?使用“个人访问令牌”似乎很奇怪,因为它不应该与我个人相关(例如,如果我离开组织)。 CredentialProvider.VSS.exe生成的令牌的用户名是VssSessionToken,这可能表明它不是与我相关的个人令牌,但我不知道。

1 个答案:

答案 0 :(得分:1)

PAT(个人访问令牌)几乎是Azure Artifacts提要的一种方式,因为它们是通用的,可提供对Azure DevOps不同部分的访问。

如果您担心它们是私人的事实,则可以使用服务帐户生成令牌。

如果您希望PAT的寿命更长,则可以自己创建一个更容易(有关说明,请参见https://docs.microsoft.com/en-us/azure/devops/artifacts/nuget/nuget-exe?view=azure-devops&tabs=new-nav#add-a-feed-to-nuget-2

简而言之,您将创建一个具有“包装(读取)”权限的PAT,以限制滥用的可能性。

要考虑的两件事:

  • PAT总是有一个过期日期,因此您需要跟踪该日期。
  • PAT授予创建它们的用户访问Azure DevOps Api的权限,因此请确保它们不可访问并尽可能限制权限。