【问题标题】:How to restore nuget packages from a private azure devops feed?如何从私有 azure devops 提要中恢复 nuget 包?
【发布时间】:2019-07-21 00:30:14
【问题描述】:

背景

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

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

在 azure devops 中,我导航到 Artifacts -> Connect to feed 并单击链接“下载 NuGet + Credential Provider”。运行 CredentialProvider.VSS.exe -U URL_TO_FEED 时,我得到了一个 jwt 令牌。

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

nuget 包已恢复,所以一切看起来都很好,但第二天它就不再工作了,因为令牌仅在几个小时内有效(我对其进行了解码以验证)。

问题

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

【问题讨论】:

标签: tfs azure-devops nuget


【解决方案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 的访问权限,因此请确保它们不可访问并尽可能限制权限。

【讨论】:

    猜你喜欢
    • 2020-01-11
    • 2019-02-04
    • 2019-10-30
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    相关资源
    最近更新 更多