gpt4 book ai didi

oauth - 从发布管道登录到 Azure Devops CLI 的最佳方式是什么?

转载 作者:行者123 更新时间:2023-12-04 15:32:27 25 4
gpt4 key购买 nike

我在我的一个管道上使用 Azure Devops CLI。为了使用 CLI,我需要先登录(验证)。与使用 REST API 不同,我无法使用可用的 OAuth token 。

所以这是我对我的选择的理解:

  1. 我可以使用映射到此环境变量的 PAT 执行“az 登录”:

AZURE_DEVOPS_EXT_PAT

我现在就是这样做的。

  1. 显然您可以使用服务委托(delegate)人。我最喜欢这个,因为理论上我应该能够让这个原则适用于我团队中的每个人。对吗?

  2. 使用带有用户/密码的“az login”。这是最不可取的方式,因为它涉及传递凭据。太乱了。

  3. 虽然我的管道有 OAuth token expost (System.AccessToken),但 CLI 无法使用它。例如,如果我尝试将 OAuth token 的值分配给 AZURE_DEVOPS_EXT_PAT,它会失败 (AZURE_DEVOPS_EXT_PAT=$System.AccessToken)。

问题:

  1. 是否可以使用 OAuth token 登录 CLI?

  2. Service Principal 是最好的方法吗?

附加信息:

我没有只有租户 ID 的订阅,我们没有创建任何 Azure 资源,我们是一家 AWS 商店,恰好只为 CICD 使用 ADO。

最佳答案

使用 az devops login 而不是 az login

从您的管道使用:

- script: echo $(AccessToken) | az devops login
env:
AccessToken: $(System.AccessToken)

一些有趣的笔记:

  • secret (如 System.AccessToken)可用于脚本,除非您将它们作为环境变量显式传递
  • System.AccessToken 变量是构建代理的默认访问 token
  • 有一个特定于项目的构建代理和一个项目集合构建代理。您使用的那个实际上是由项目管道设置中的“限制对当前项目范围的访问”标志控制的。
  • 如果您要操作对象,您可能需要提升构建代理的权限。例如,如果您希望构建代理更新存储库,您可以授予对存储库的创建标签权限。
  • 您还可以使用您指定的权限创建自己的 PAT token 。

关于oauth - 从发布管道登录到 Azure Devops CLI 的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60934771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com