我在 Azure 中为我的一个函数应用设置了 KeyVault 配置。使用这样的 Startup 类非常简单:
using Azure.Identity;
using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Extensions.Configuration;
using System.IO;
using Core.Utility;
[assembly: FunctionsStartup(typeof(MyJob.Startup))]
namespace MyJob
{
class Startup : FunctionsStartup
{
private IConfiguration _configuration;
public override void Configure(IFunctionsHostBuilder builder)
{
// Configure your services here.
}
public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
{
var context = builder.GetContext();
var configurationBuilder = builder.ConfigurationBuilder;
configurationBuilder.AddJsonFile(Path.Combine(context.ApplicationRootPath, "appsettings.json"), true, false)
.AddEnvironmentVariables();
// Add the Key Vault:
var configuration = configurationBuilder.Build();
configurationBuilder.AddAzureKeyVault(KeyVaultSecrets.MakeKvUri(configuration["KeyVaultName"]),
new DefaultAzureCredential());
_configuration = configurationBuilder.Build();
}
}
}
我现在想使用用户分配的托管标识而不是系统分配的标识,这样我就不必为每个新应用程序或我创建的部署槽授予对 KV 的访问权限。
我已阅读此文档:https ://docs.microsoft.com/en-us/azure/app-service/overview-managed-identity?tabs=dotnet ,但这显示了在您自己的代码中创建的 KV 客户端的示例和基础设施在这里为我创建客户端。
这将如何改变以使用用户分配的身份?