本文介绍如何添加或引用用户分配的托管标识(UMIs)。 可以在 .NET Aspire 应用程序中添加 UMIs,以安全地访问 Azure 资源。 UMI 是一种可以分配给一个或多个服务资源的独立 Azure 资源。 UMIs 可让你更好地控制标识管理和资源访问。
添加用户分配的托管标识
若要创建新的用户分配的托管标识,请在 AddAzureUserAssignedIdentity
分布式应用程序生成器中使用 API:
var builder = DistributedApplication.CreateBuilder(args);
var sharedMi = builder.AddAzureUserAssignedIdentity("custom-umi");
// After adding all resources, run the app...
builder.Build().Run();
前面的代码创建一个名为“custom-umi”的新托管标识,可用于应用程序中的其他资源。
引用现有的托管标识
如果您已经有一个托管标识,可以使用该方法 PublishAsExisting 来引用它。 当您想使用在.NET.NET Aspire项目之外创建的身份时,这非常有用。
var builder = DistributedApplication.CreateBuilder(args);
var miName = builder.AddParameter("miName");
var miResourceGroup = builder.AddParameter("miResourceGroup");
var sharedMi = builder.AddAzureUserAssignedIdentity("custom-umi")
.PublishAsExisting(miName, miResourceGroup);
// After adding all resources, run the app...
builder.Build().Run();
在前面的示例中,通过参数来提供现有标识的名称和资源组。 这使您可以在不创建新托管标识的情况下引用现有的托管标识。
将角色分配给托管标识
您可以使用 WithRoleAssignments API 为托管标识授予 Azure 角色。 这样,标识便可以访问其他 Azure 资源,例如 Azure Key Vault。
var builder = DistributedApplication.CreateBuilder(args);
var sharedMi = builder.AddAzureUserAssignedIdentity("custom-umi");
builder.AddAzureKeyVault("secrets")
.WithRoleAssignments(sharedMi, BuiltInRole.Reader);
// After adding all resources, run the app...
builder.Build().Run();
在此示例中,为 Key Vault 资源的托管标识提供“读取者”角色。 有关角色分配的详细信息,请参阅 “管理 Azure 角色分配”。