簡體   English   中英

如何從私有的 azure devops 提要中恢復 nuget 包?

[英]How to restore nuget packages from a private azure devops feed?

背景

我在 azure devops 的私人 nuget 提要中有 nuget 包,我嘗試從本地 TFS 使用它們。

這有效,但只有幾個小時

在 azure devops 中,我導航到 Artifacts -> Connect to feed 並單擊鏈接“下載 NuGet + 憑據提供程序”。 運行CredentialProvider.VSS.exe -U URL_TO_FEED我得到了一個 jwt 令牌。

在本地 tfs 中,我導航到構建定義中的“NuGet 恢復”步驟。 在“訂閱源和身份驗證”中,我選擇了“我的 NuGet.config 中的訂閱源”,在“此帳戶/集合之外的訂閱源憑據”中,我單擊了“管理”。 在“添加新的 Team Foundation Server/Team Services 連接”對話框中,我選擇了“基於令牌的身份驗證”並填寫了值。 我將我從 CredentialProvider.VSS.exe 獲得的令牌放在“個人訪問令牌”字段中。

nuget 包被恢復,所以一切看起來都很好,但第二天它不再工作,因為令牌只在幾個小時內有效(我對其進行了解碼以驗證)。

我該怎么做? 使用“個人訪問令牌”似乎很奇怪,因為它不應該與我個人有關(例如,如果我離開組織)。 CredentialProvider.VSS.exe 生成的令牌的用戶名是 VssSessionToken,這可能表明它不是與我相關的個人令牌,但我不知道。

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,因此請確保它們不可訪問並盡可能限制權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM