gpt4 book ai didi

azure - 从本地开发中的应用程序配置访问 Azure Key Vault 引用值

转载 作者:行者123 更新时间:2023-12-03 00:41:21 30 4
gpt4 key购买 nike

我遇到过 Azure 应用程序配置服务,它能够通过创建带有 Key Vault 引用选项的新记录来链接来自 Azure KeyVault 的 secret 。

我已使用 Microsoft 扩展进行应用程序配置,如 Microsoft Doc 中所述。

已完成的步骤

  • 通过 CMD 创建服务原则 - ```az ad sp create-for-rbac -n "http://mySP "--sdk-auth
  • 也通过 CMD 向创建的服务提供商授予权限 - az keyvault set-policy -n <your-unique-keyvault-name> --spn <clientId-of-your-service-principal> --secret-permissions delete get list set --key-permissions create decrypt delete encrypt get list unwrapKey wrapKey
  • 在环境变量中设置客户端 ID 和 key

  • 方法实现

        public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    webBuilder.ConfigureAppConfiguration((hostingContext, config) =>
    {
    var settings = config.Build();

    config.AddAzureAppConfiguration(options =>
    {
    options.Connect(settings["ConnectionStrings:AppConfig"])
    .ConfigureKeyVault(kv =>
    {
    kv.SetCredential(new DefaultAzureCredential());
    });
    });
    })
    .UseStartup<Startup>());
    }

当我尝试从具有至少一个 KV 引用的应用程序配置中获取数据时,就会出现此问题。我收到以下错误(仅在这种情况下,一个 KV 引用链接到应用程序配置)

Service request failed. Status: 401 (Unauthorized)

内容:

{"error":"invalid_client","error_description":"AADSTS7000215: Invalid client secret is provided.\r\nTrace ID: \r\nCorrelation ID: \r\nTimestamp: 2020-05-27 22:59:52Z","error_codes":[7000215],"timestamp":"2020-05-27 22:59:52Z","trace_id":"","correlation_id":"","error_uri":"https://login.microsoftonline.com/error?code=7000215"}

Headers:
Cache-Control: no-store, no-cache
Pragma: no-cache
Strict-Transport-Security: REDACTED
X-Content-Type-Options: REDACTED
x-ms-request-id: REDACTED
x-ms-ests-server: REDACTED
P3P: REDACTED
Set-Cookie: REDACTED
Date: Wed, 27 May 2020 22:59:51 GMT
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 471

任何帮助将不胜感激:)谢谢!

最佳答案

使用 DefaultAzureCredential 时,它将首先尝试托管身份(推荐用于 Azure 上的服务),并最终尝试为进程设置以下环境变量的服务主体(均在您的应用程序服务以及本地开发 - 可以不同,只要服务主体 ID 具有适当的权限):

  • AZURE_TENANT_ID:租户 ID
  • AZURE_CLIENT_ID:服务主体 ID
  • AZURE_CLIENT_SECRET:仅在创建服务主体后才会显示的服务主体 secret (密码)

您还可以使用 Azure.Identity 的新预览版,它支持在开发计算机上更常见且更易于使用的其他身份验证方案,例如 Azure CLI (az login)、Visual Studio 和Visual Studio 代码。

关于azure - 从本地开发中的应用程序配置访问 Azure Key Vault 引用值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62054555/

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