Självstudie: Använda Key Vault referenser i en ASP.NET Core app
I den här självstudien lär du dig att använda Azure App Configuration-tjänsten tillsammans med Azure Key Vault. App Configuration och Key Vault kompletterande tjänster som används sida vid sida i de flesta programdistributioner.
App Configuration hjälper dig att använda tjänsterna tillsammans genom att skapa nycklar som refererar till värden som lagras i Key Vault. När App Configuration skapar sådana nycklar lagras URI:erna med Key Vault snarare än själva värdena.
Programmet använder klientprovidern App Configuration för att hämta Key Vault referenser, precis som för andra nycklar som lagras i App Configuration. I det här fallet är värdena som lagras App Configuration URI:er som refererar till värdena i Key Vault. De är inte Key Vault eller autentiseringsuppgifter. Eftersom klientprovidern identifierar nycklarna som Key Vault referenser, använder den Key Vault för att hämta deras värden.
Ditt program ansvarar för att autentisera korrekt till både App Configuration och Key Vault. De två tjänsterna kommunicerar inte direkt.
Den här självstudien visar hur du implementerar Key Vault referenser i koden. Den bygger på den webbapp som introducerades i snabbstarterna. Innan du fortsätter slutför du Skapa en ASP.NET Core-app med App Configuration först.
Du kan använda valfri kodredigerare för att göra stegen i den här självstudien. Till exempel Visual Studio Code är en plattformsoberoende kodredigerare som är tillgänglig för operativsystemen Windows, macOS och Linux.
I den här guiden får du lära dig att:
- Skapa en App Configuration nyckel som refererar till ett värde som lagras Key Vault.
- Få åtkomst till värdet för den här nyckeln ASP.NET Core en webbapp.
Förutsättningar
Innan du börjar med den här självstudien installerar du .NET Core SDK.
Om du inte har en Azure-prenumerationkan du skapa ett kostnads fritt konto innan du börjar.
Skapa ett valv
Välj alternativet Skapa en resurs i det övre vänstra hörnet i Azure Portal:

I sökrutan skriver du Key Vault väljer Key Vault i listrutan.
Välj Nyckelvalv till vänster i resultatlistan.
I Nyckelvalv väljer du Lägg till.
Till höger i Skapa nyckelvalv anger du följande information:
- Välj Prenumeration för att välja en prenumeration.
- I Resursgrupp anger du ett befintligt resursgruppsnamn eller väljer Skapa ny och anger ett resursgruppsnamn.
- I Nyckelvalvsnamn krävs ett unikt namn.
- Välj en plats i listrutan Region.
Lämna standardvärdena för de andra alternativen för Att skapa nyckelvalv.
Klicka på Granska + Skapa.
Systemet validerar och visar de data som du har angett. Klicka på Skapa.
Nu är ditt Azure-konto det enda kontot som har behörighet att komma åt det nya valvet.
Lägga till en hemlighet i Key Vault
Om du vill lägga till en hemlighet i valvet behöver du bara vidta några ytterligare åtgärder. I det här fallet lägger du till ett meddelande som du kan använda för att Key Vault hämtningen. Meddelandet kallas Meddelande och du lagrar värdet "Hello from Key Vault" i det.
- På Key Vault egenskaper väljer du Hemligheter.
- Välj Generera/importera.
- I fönstret Skapa en hemlighet anger du följande värden:
- Upload alternativ: Ange Manuell.
- Namn: Ange Meddelande.
- Värde: Ange Hello från Key Vault.
- Lämna standardvärdena för de andra egenskaperna Skapa en hemlighet.
- Välj Skapa.
Lägga till Key Vault referens till App Configuration
Logga in på Azure-portalen. Välj Alla resurser och välj sedan den App Configuration Store-instans som du skapade i snabbstarten.
Välj Configuration Explorer.
Välj + Skapa > nyckelvalvsreferens och ange sedan följande värden:
- Nyckel: Välj TestApp:Inställningar:KeyVaultMessage.
- Etikett: Lämna det här värdet tomt.
- Prenumeration, Resursgrupp och Nyckelvalv: Ange de värden som motsvarar de i nyckelvalvet som du skapade i föregående avsnitt.
- Hemlighet: Välj hemligheten med namnet Meddelande som du skapade i föregående avsnitt.

Uppdatera koden så att den använder Key Vault referens
Lägg till en referens till de Nödvändiga NuGet-paketen genom att köra följande kommando:
dotnet add package Azure.IdentityÖppna Program.cs och lägg till referenser till följande nödvändiga paket:
using Azure.Identity;Uppdatera metoden
CreateWebHostBuildertill att använda App Configuration genom att anropa metodenconfig.AddAzureAppConfiguration. Inkludera alternativetConfigureKeyVaultoch skicka rätt autentiseringsuppgifter till din Key Vault.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>());När du initierade anslutningen till App Configuration konfigurerade du anslutningen till Key Vault genom att anropa
ConfigureKeyVaultmetoden . Efter initieringen kan du komma åt värdena för Key Vault referenser på samma sätt som du kommer åt värdena för vanliga App Configuration nycklar.Om du vill se hur processen ser ut i praktiken öppnar du Index.cshtml i mappen > Vyer. Ersätt innehållet med följande kod:
@using Microsoft.Extensions.Configuration @inject IConfiguration Configuration <style> body { background-color: @Configuration["TestApp:Settings:BackgroundColor"] } h1 { color: @Configuration["TestApp:Settings:FontColor"]; font-size: @Configuration["TestApp:Settings:FontSize"]px; } </style> <h1>@Configuration["TestApp:Settings:Message"] and @Configuration["TestApp:Settings:KeyVaultMessage"]</h1>Du kommer åt värdet för Key Vault-referensen TestApp:Inställningar:KeyVaultMessage på samma sätt som för konfigurationsvärdet TestApp:Inställningar:Message.
Ge din app åtkomst till Key Vault
Azure App Configuration kommer inte åt ditt nyckelvalv. Din app kommer att läsa från Key Vault direkt, så du måste ge appen läsbehörighet till hemligheterna i ditt nyckelvalv. På så sätt finns hemligheten alltid kvar i din app. Åtkomsten kan beviljas med hjälp av en Key Vault åtkomstprincip eller rollbaserad åtkomstkontroll i Azure.
Du använder DefaultAzureCredential i koden ovan. Det är en aggregerad token-autentiseringstoken som automatiskt försöker med ett antal typer av autentiseringsuppgifter, till EnvironmentCredential exempel , , och ManagedIdentityCredential SharedTokenCacheCredential VisualStudioCredential . Mer information finns i DefaultAzureCredential Class. Du kan uttryckligen DefaultAzureCredential ersätta med valfri typ av autentiseringsuppgifter. Men om du DefaultAzureCredential använder kan du ha samma kod som körs i både lokala miljöer och Azure-miljöer. Du kan till exempel ge dina egna autentiseringsuppgifter åtkomst till ditt nyckelvalv. DefaultAzureCredentialfaller automatiskt tillbaka till SharedTokenCacheCredential eller när du använder Visual Studio lokal VisualStudioCredential utveckling.
Du kan också ange miljövariablerna AZURE_TENANT_ID, AZURE_CLIENT_ID och AZURE_CLIENT_SECRET och använda den klienthemlighet som du har via för att autentisera med ditt DefaultAzureCredential EnvironmentCredential nyckelvalv. När din app har distribuerats till en Azure-tjänst med hanterad identitet aktiverad, till exempel Azure App Service, Azure Kubernetes Service eller Azure Container Instance, beviljar du den hanterade identiteten för Azure-tjänsten behörighet att komma åt ditt nyckelvalv. DefaultAzureCredential använder ManagedIdentityCredential automatiskt när din app körs i Azure. Du kan använda samma hanterade identitet för att autentisera med både App Configuration och Key Vault. Mer information finns i Använda hanterade identiteter för att komma åt App Configuration.
Skapa och köra appen lokalt
Om du vill skapa appen med .NET Core CLI kör du följande kommando i kommandogränssnittet:
dotnet buildNär bygget är klart använder du följande kommando för att köra webbappen lokalt:
dotnet runÖppna ett webbläsarfönster och gå till
http://localhost:5000, som är standard-URL:en för webbappen som finns lokalt.
Rensa resurser
Om du inte vill fortsätta använda resurserna som skapats i den här artikeln tar du bort resurs gruppen som du skapade här för att undvika avgifter.
Viktigt
Att ta bort en resursgrupp kan inte ångras. Resurs gruppen och alla resurser i den tas bort permanent. Var noga så att du inte tar bort fel resursgrupp eller resurser av misstag. Om du har skapat resurserna för den här artikeln i en resurs grupp som innehåller andra resurser som du vill behålla, tar du bort varje resurs separat från dess respektive fönster i stället för att ta bort resurs gruppen.
- Logga in på Azure Portaloch välj resurs grupper.
- I rutan Filtrera efter namn anger du namnet på din resurs grupp.
- I listan resultat väljer du resurs gruppens namn för att se en översikt.
- Välj Ta bort resursgrupp.
- Du blir ombedd att bekräfta borttagningen av resursgruppen. Ange namnet på resurs gruppen som ska bekräftas och välj ta bort.
Efter en liten stund tas resurs gruppen och alla dess resurser bort.
Nästa steg
I den här självstudien skapade du en nyckel i App Configuration refererar till en hemlighet som lagras i Key Vault. Om du vill lära dig att automatiskt läsa in hemligheter och certifikat från Key Vault du fortsätta till nästa självstudie:
Information om hur du använder hanterad identitet för att effektivisera åtkomsten App Configuration och Key Vault finns i följande självstudie: