当前位置: 首页 > 知识库问答 >
问题:

从本地开发中的应用程序配置访问Azure密钥库参考值

梁丘佑运
2023-03-14
    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>());
        }

内容:

{"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

任何帮助都将非常感谢:)谢谢!

共有1个答案

翟高明
2023-03-14

当使用DefaultaZureCredential时,它将首先尝试托管标识(建议Azure上的服务使用),最后使用一个需要为进程设置以下环境变量的服务主体(在应用程序服务上以及本地开发上都是如此),只要服务主体ID具有适当的权限,就可以不同:

  • azure_tenant_id:租户ID
  • Azure_client_id:服务主体ID
  • Azure_client_secret:只有在创建服务主体后才显示的服务主体秘密(密码)

您还可以使用Azure.Identity的新预览,该预览支持其他更常见、更易于在开发机器上使用的身份验证方案,例如Azure CLI(AZ登录)、Visual Studio和Visual Studio代码。

 类似资料:
  • 在我当前的ASP.NET Core项目中,我使用Azure Active Directory身份验证和X509Certificate来访问密钥库。证书需要安装在计算机上,以允许应用程序访问它,并最终从密钥库读取值。现在我正在将这个应用程序迁移到Azure Service Fabric。我已将证书上载到密钥库,通过添加以下内容修改了ARM模板: 但当我将应用程序部署到Azure Service Fa

  • 是否有一种方法可以使用Delphi访问Azure密钥库?我可以使用柏林的data.cloud.azureapi单元访问数据库和blob存储,但想从密钥库中获取数据库连接字符串,但似乎找不到任何用于此操作的代码。

  • 这在调试期间也有效,但是当我发布到Azure时,它也会失败,因为我的密钥返回null。 任何帮助在哪里我应该看看如何解决这将是伟大的。为什么在生产中会得到null,而在提供相同凭据时却不进行调试?

  • 我有一个在Service Fabric(SF)集群中运行的应用程序,我不想从它访问密钥库。 我知道在SF清单中使用RunAs选项是可能的,但这需要我在清单/源代码中存储加密的密码,如果可能的话,我想尽量避免这样做。

  • 我正在尝试从运行在我的Azure批处理节点池中的VM访问我的Azure密钥库中的机密。 然而,我总是遇到例外: 异常消息:已尝试%1个证书。无法获取访问令牌。 具有指纹的证书#1的异常my-thumbprint:密钥集不存在 到目前为止,我一直遵循以下说明:https://docs.microsoft.com/en-us/Azure/key-vault/service-to-service-aut