通过 Azure DevOps Pipeline 向 Azure DevOps REST API 进行令牌身份验证(而不是 PAT 令牌)

Token authentication (instead of PAT token) to Azure DevOps REST API via Azure DevOps Pipeline

我需要在 Azure DevOps Pipeline 中使用 Azure DevOps Rest API。我知道可以通过 PAT 令牌连接,但应该有一种方法可以使用服务主体连接到 Azure?

当我在 Azure DevOps Pipeline 中 运行 下面的代码时,我必须更改什么才能获得不记名令牌?

  Connect-AzAccount -WarningAction 'SilentlyContinue' | Out-Null
  $Token = (Get-AzAccessToken -ResourceUrl "499b84ac-1321-427f-aa17-267ca6975798").Token # Resource url is for Azure DevOps REST API source: 
  $AzureDevOpsAuthenticationHeader = @{Authorization = 'Bearer ' + $Token }

根据 MS DOC 目前,这是不可能的。 Azure DevOps API 不支持 non-interactive 通过服务主体访问服务。

在 Azure DevOps 中无权访问 控制服务主体。

非交互方式如下

  • PAT(最推荐方式)
  • Azure AD ROPC flow(不推荐,因为在请求时我们公开了用户名和密码

参考了解更多信息