共用方式為


從管道任務到 Azure DevOps API 的無 PAT 身份驗證

管線中的工作會使用作業存取權杖 (可透過內建變數 System.AccessToken) 或 PAT 來存取 Azure DevOps 資源。 例如,「簽出」任務會使用此令牌來驗證儲存庫。 同樣地,PowerShell 腳本可以使用此令牌來存取 Azure DevOps REST API。 不過,此令牌的許可權是以專案建置服務身分識別為基礎,這表示專案中的所有作業存取令牌都有相同的許可權。 這會授與專案內所有管線的過多存取權限。

使用 PAT 訪問 Azure DevOps 資源很常見,尤其是當任務需要跨組織邊界訪問這些資源時。 例如,Nuget 身份驗證任務使用 PAT 令牌對另一個組織中的源進行身份驗證。 PAT 是一種安全反模式,因為它們往往是使用廣泛的許可權創建的,並且會長時間持有,從而增加泄露的風險。

為了提高這些方案中的安全性,引入了一種名為“Azure DevOps 服務連接”的新服務連接類型。 它使用 Azure 服務主體,這個主體可被新增為具備特定許可權的 Azure DevOps 使用者。 這可讓您使用此服務連線向管道任務的資源進行驗證,並限制對特定管道的存取。 我們會先介紹新的連接類型,以及一些使用它來工作的任務。 我們將隨著時間逐步擴大可以使用連線類型的任務清單。