Azure DevOps az cli 以用户身份从管道登录

标签 azure azure-devops terraform azure-cli

我正在尝试创建一个管道,在其中我将针对来自 Azure DevOps 管道的 Azure 订阅运行 terraform 配置。一切正常,但是当我尝试使用 az cli 以用户身份登录时,它失败了:

ERROR: Authentication failed due to error of 'Unsupported wstrust endpoint version. Current support version is wstrust2005 or wstrust13.' This typically happens when attempting a Microsoft account, which requires interactive login. Please invoke 'az login' to cross check. More details are available at https://github.com/AzureAD/microsoft-authentication-library-for-python/wiki/Username-Password-Authentication
ERROR: Please run 'az login' to setup account.

尽管从我本地的 cli 可以执行 az log in -u user -p pass

命令是从脚本执行的,因为登录后我将转到需要这些凭据的 terraform 命令:

      - script: |
          az login -u $(u) -p $(p)
          terraform init
          terraform plan

我知道使用用户而不是服务主体并不是最佳实践,但现在我必须坚持使用这种方法。那么有没有一种方法可以自动从 Azure DevOps 管道进行 az 登录?

最佳答案

az login -u $(secretUser) -p $(secretPassword)

将用户 ID 和密码放入 Azure Key Vault,命名为 secretUsersecretPassword,然后使用 AzureKeyVault@1 任务进行填充它

  - task: AzureKeyVault@1
    inputs:
      ConnectedServiceName: Your Service Connection Name
      KeyVaultName: Your Key Vault Name
      SecretsFilter: 'secretUser,secretPassword'
      RunAsPreJob: true 
  - script: |
      az login -u $(secretUser) -p $(secretPassword)
      terraform init
      terraform plan

关于Azure DevOps az cli 以用户身份从管道登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66173322/

相关文章:

azure - WebJob 从 Azure DevOps Pipeline 部署,但未显示在 WebApp 下

azure-devops - 使用 Azure Devops 自托管构建代理避免 git clean

azure - 如何使用 Azure DevOps Server 2019(本地)中的 Azure 服务连接从发布阶段运行的脚本运行 terraform?

amazon-web-services - aws 安全组的 Terraform 中的变量值

php - IIS 到 nginx 迁移 : `unexpected " {"` erron on\d{^anum^, ^anum^} 条目到映射文件

Azure GraphAPI getMemberGroups 错误请求错误

azure - 如何将自定义 SSL 证书绑定(bind)到 Service Fabric 群集管理终结点?

Azure 管理 API - 429 请求过多

Azure DevOps 组织 - 我们如何在 Azure DevOps 上购买更多构建时间

amazon-web-services - 创建 LB 监听器时出现 CertificateNotfound 错误