使用 Azure 门户授予对 Keyvault 的访问权限

Use Azure portal to grant access to a Keyvault

我正在寻找一种方法来启用对某个密钥库的访问:

if (builder.Environment.IsProduction())
{
    builder.Configuration.AddAzureKeyVault(
        new Uri(configuration["KeyVaultUri"]),
        new DefaultAzureCredential());
}

这可以使用 Azure 门户(没有 Powershell,也没有 Azure CLI)完成吗?

我们在哪里说和检查“此应用程序可以使用 DefaultAzureCredential 访问此 Keyvault”?

澄清一下:我想这是非常基本的东西。我不想做任何棘手的事情。问题是我找到了使用 Azure-CLI、Powershell 等执行此操作的文档。此外,您可以在部署设置期间将 Keyvault 绑定到应用程序 (Visual Studio),这会在您的解决方案中添加大量垃圾文件……我找不到通过 Azure 执行相同操作的资源传送门

编辑:我试过的是:

  1. 在 Azure App Service 配置中,我选择了:Identity/System Assigned/Status:开启。我可以看到应用服务现在有一个带有对象 ID

    的身份
  2. 在 Azure KeyVault 配置中,我添加了一个策略,其主体是在上一步中创建的身份,并授予读取和列出机密的权限

当我部署应用程序时,它崩溃了,没有错误日志。它只显示一个错误页面,其中包含 500.30 错误。文档说这可能是由于 Keyvault

配置错误造成的

当我评论以下内容时,应用程序正常启动:

/*if (builder.Environment.IsProduction())
{
    builder.Configuration.AddAzureKeyVault(
        new Uri(configuration["KeyVaultUri"]),
        new DefaultAzureCredential());
}*/

Edit: What I have tried is:

In the Azure App Service configuration I have selected: Identity/System Assigned/Status: ON. I can see the App Service has now an Identity with an Object Id

In the Azure KeyVault configuration I have added a Policy whose Principal is the identity created in the previous step, with grants to read and list secrets

已执行从应用服务配置 Key Vault 访问的所有先决条件。当您不评论代码片段时,您已经面临问题。请不要使用该代码,而是从门户网站进行设置。

/*if (builder.Environment.IsProduction())
{
    builder.Configuration.AddAzureKeyVault(
        new Uri(configuration["KeyVaultUri"]),
        new DefaultAzureCredential());
}*/

要从门户配置它,您可以转到您的 App service >> Configuration >> Application Setting >> + New Application Setting >> Provide Name as KEY_VAULT_URI and Value as your keyvault URI

你可以参考这个Microsoft Tutorial and Code Sample