首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于DevOps集成功能的Azure KeyVault CI管道

用于DevOps集成功能的Azure KeyVault CI管道
EN

Stack Overflow用户
提问于 2021-04-21 08:28:04
回答 1查看 627关注 0票数 1

我创建了一些尝试访问Azure密钥库的集成测试,但由于身份验证失败而失败。这是由Azure DevOps中的“运行测试”任务触发的。

我尝试过将Azure登录(用于代理)作为前面的步骤,但似乎每个步骤都在自己的环境中运行。

下面是我尝试的yaml备选方案的一个片段,但没有成功:

代码语言:javascript
复制
steps:
    - task: UseDotNet@2
      displayName: Setup .NET Core
      inputs:
        packageType: 'sdk'
        version: '3.1.x'
    - script: dotnet build --configuration Release
      displayName: Build with dotnet
      workingDirectory: BatchDependencyFnApp

    - script: dotnet test --configuration Release --logger trx
      displayName: Test with dotnet
      workingDirectory: BatchDataRetriever.Tests
      env:
        AZURE_TENANT_ID: $(AZURE_TENANT_ID)
        AZURE_CLIENT_SECRET: $(AZURE_CLIENT_SECRET)
        AZURE_CLIENT_ID: $(AZURE_CLIENT_ID)

以下代码是auth失败的地方:

代码语言:javascript
复制
    var cred = new ChainedTokenCredential(new ManagedIdentityCredential(), new AzureCliCredential(), new EnvironmentCredential());
    var secretClient = new SecretClient(new Uri(keyVaultUri), cred);
    var opt = new AzureKeyVaultConfigurationOptions { ReloadInterval = TimeSpan.FromHours(24) };
    
    builder.ConfigurationBuilder
        .AddAzureKeyVault(secretClient, opt)
        .Build();

底层的错误消息是:原始异常: AADSTS7000215:无效的客户端机密被提供。

这在本地很好,因为Visual具有登录功能。我对所有这些都是新手,所以如果有人能给我建议一下如何在CI工作中工作呢?

EN

回答 1

Stack Overflow用户

发布于 2021-11-04 13:34:52

您可能将AZURE_CLIENT_SECRET定义为Azure管道变量中的一个秘密。这些值不能在常规构建步骤之外提取。在这个答案中解释得很清楚:https://stackoverflow.com/a/50113557/2915851

解决方案是在随后的步骤中使用这个秘密变量之前,先在cmd/powershell脚本中导出它:

代码语言:javascript
复制
Write-Host "##vso[task.setvariable variable=AZURE_CLIENT_SECRET;]$(AZURE_CLIENT_SECRET_VALUE)"

注意:这里的关键是要为管道变量列表中的变量有一个不同的名称。如果变量名与您希望显示给后续任务的环境变量相同,则Azure将其保密(再次).

其他变量(AZURE_TENANT_IDAZURE_CLIENT_ID)可以保持为常规管道变量,并且不需要为UseDotNet@2任务导出来访问它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67192022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档