Zelfstudie: Key Vault-referenties gebruiken in een ASP.NET Core-app

In deze zelfstudie leert u hoe u de Azure App Configuration-service kunt gebruiken in combinatie met Azure Key Vault. App Configuration en Key Vault zijn complementaire services die naast elkaar worden gebruikt in de meeste toepassingsimplementaties.

Met App Configuration kunt u de services gezamenlijk gebruiken door sleutels te maken die verwijzen naar waarden die zijn opgeslagen in Key Vault. Wanneer App Configuration dergelijke sleutels maakt, worden de URI's van Key Vault-waarden opgeslagen in plaats van de waarden zelf.

In uw toepassing wordt gebruikgemaakt van de clientprovider van App Configuration om Key Vault-verwijzingen op te halen, net zoals bij andere sleutels die zijn opgeslagen in App Configuration. In dit geval zijn de waarden die zijn opgeslagen in App Configuration URI's die verwijzen naar de waarden in de Key Vault. Het zijn geen Key Vault-waarden of -referenties. Omdat de clientprovider de sleutels als Key Vault-verwijzingen herkent, wordt Key Vault gebruikt om de waarden op te halen.

Uw toepassing is verantwoordelijk voor het correct verifiëren van zowel App Configuration als Key Vault. De twee services communiceren niet rechtstreeks.

In deze zelfstudie wordt uitgelegd hoe u Key Vault-verwijzingen in uw code kunt implementeren. Dit is gebaseerd op de web-app die is geïntroduceerd in de quickstarts. Volg eerst Een ASP.NET Core-app maken met App Configuration voordat u verder gaat.

U kunt elke code-editor gebruiken om de stappen in deze zelfstudie uit te voeren. Visual Studio Code is bijvoorbeeld een platformoverschrijdende code-editor die beschikbaar is voor Windows-, macOS- en Linux-besturingssystemen.

In deze zelfstudie leert u het volgende:

  • Een App Configuration-sleutel maken die verwijst naar een waarde die is opgeslagen in Key Vault.
  • Toegang tot de waarde van deze sleutel vanuit een ASP.NET Core-toepassing.

Vereisten

Voordat u met deze zelfstudie begint, moet u de .NET Core SDK installeren.

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Een kluis maken

  1. Selecteer de optie Een resource maken in de linkerbovenhoek van Azure Portal:

    Schermopname van de optie Een resource maken, in de Microsoft Azure-portal.

  2. Typ in het zoekvak Key Vault en selecteer Key Vault in de vervolgkeuzekeuze.

  3. Selecteer in de lijst met resultaten Key Vaults aan de linkerkant.

  4. Selecteer Toevoegen in Key Vaults.

  5. Geef rechts in Key Vault maken de volgende gegevens op:

    • Selecteer Abonnement om een abonnement te kiezen.
    • Voer in Resourcegroep de naam van een bestaande resourcegroep in of selecteer Nieuwe maken en voer de naam van een resourcegroep in.
    • In Key Vault-naam is een unieke naam vereist.
    • Kies een locatie in de vervolgkeuzelijst Regio.
  6. Zorg ervoor dat de andere opties in Key Vault maken de standaardwaarden hebben.

  7. Klik op Controleren + maken.

  8. De gegevens die u hebt ingevoerd, worden gevalideerd en weergegeven. Klik op Create.

Vanaf nu is uw Azure-account als enige gemachtigd om bewerkingen op deze nieuwe Key Vault uit te voeren.

Een geheim toevoegen aan Key Vault

Als u een geheim wilt toevoegen aan de Key Vault, hoeft u maar een paar extra stappen uit te voeren. In dit geval voegt u een bericht toe dat u kunt gebruiken om het ophalen van Key Vault te testen. Het bericht wordt Bericht genoemd en u slaat er de waarde Hello from Key Vault in op.

  1. Selecteer vanuit de eigenschappenpagina's van de Key Vault Geheimen.
  2. Selecteer Genereren/importeren.
  3. Voer in het deelvenster Een geheim maken een van de volgende waarden in:
    • Uploadopties: Voer Handmatig in.
    • Naam: Bericht invoeren.
    • Waarde: Voer Hello from Key Vault in.
  4. Zorg ervoor dat de andere eigenschappen van Een geheim maken de standaardwaarden hebben.
  5. Selecteer Maken.

Een sleutelkluisverwijzing toevoegen aan App Configuration

  1. Meld u aan bij de Azure-portal. Selecteer Alle resources en selecteer vervolgens de instantie van het App Configuration-archief dat u in de quickstart hebt gemaakt.

  2. Selecteer Configuratieverkenner.

  3. Selecteer + Maken > Sleutelkluisverwijzing en geef de volgende waarden op:

    • Sleutel: Selecteer TestApp:Settings:KeyVaultMessage.
    • Label: Laat deze waarde leeg.
    • Abonnement, Resourcegroep en Sleutelkluis: Voer de waarden in die overeenkomen met de waarden in de sleutelkluis die u in de vorige sectie hebt gemaakt.
    • Geheim: Selecteer het geheim genaamd Bericht dat u in de vorige sectie hebt gemaakt.

Scherm opname van het referentieformulier voor het maken Key Vault nieuw formulier

Uw code bijwerken om een Key Vault-referentie te gebruiken

  1. Voeg een verwijzing toe naar de vereiste NuGet-pakketten door de volgende opdracht uit te voeren:

    dotnet add package Azure.Identity
    
  2. Open Program.cs en voeg verwijzingen toe naar de volgende vereiste pakketten:

    using Azure.Identity;
    
  3. Werk de methode CreateWebHostBuilder bij voor het gebruik van App Configuration door de methode config.AddAzureAppConfiguration aan te roepen. Voeg de optie ConfigureKeyVault toe en geef de juiste referenties door aan uw sleutelkluis.

        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>());
    
  4. Bij het initialiseren van de verbinding met App Configuration hebt u de verbinding met Key Vault ingesteld door de methode ConfigureKeyVault aan te roepen. Na de initialisatie kunt u de waarden van Key Vault-verwijzingen op dezelfde manier weergeven als de waarden van gewone App Configuration-sleutels.

    Als u dit proces in actie wilt zien, opent u index.cshtml in de map Views > Home. Vervang de inhoud door de volgende code:

    @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>
    

    U hebt toegang tot de waarde van de Key Vault-verwijzing TestApp:Settings:KeyVaultMessage op dezelfde manier als voor de configuratiewaarde van TestApp:Settings:Message.

Uw app toegang verlenen tot Key Vault

Azure App Configuration hebt geen toegang tot uw sleutelkluis. Uw app wordt rechtstreeks vanuit Key Vault gelezen, dus u moet uw app leestoegang verlenen tot de geheimen in uw sleutelkluis. Op deze manier blijft het geheim altijd bij uw app. De toegang kan worden verleend met behulp van een Key Vault-toegangsbeleid of op rollen gebaseerd toegangsbeheer van Azure.

U gebruikt DefaultAzureCredential in de bovenstaande code. Het is een geaggregeerde tokenreferentie die automatisch een aantal referentietypen probeert, zoals EnvironmentCredential , ManagedIdentityCredential , en SharedTokenCacheCredential VisualStudioCredential . Zie DefaultAzureCredential Classvoor meer informatie. U kunt expliciet DefaultAzureCredential vervangen door elk referentietype. Met behulp van DefaultAzureCredential kunt u echter dezelfde code hebben die wordt uitgevoerd in zowel lokale omgevingen als Azure-omgevingen. U verleent bijvoorbeeld uw eigen referentietoegang tot uw sleutelkluis. DefaultAzureCredentialvalt automatisch terug naar SharedTokenCacheCredential of wanneer u Visual Studio gebruikt voor lokale VisualStudioCredential ontwikkeling.

U kunt ook de omgevingsvariabelen AZURE_TENANT_ID, AZURE_CLIENT_ID en AZURE_CLIENT_SECRET instellen en het clientgeheim gebruiken dat u via de hebt om te verifiëren bij uw sleutelkluis. DefaultAzureCredential EnvironmentCredential Nadat uw app is geïmplementeerd in een Azure-service met een beheerde identiteit ingeschakeld, zoals Azure App Service, Azure Kubernetes Service of Azure Container Instance, verleent u de beheerde identiteit van de Azure-service toegang tot uw sleutelkluis. DefaultAzureCredential gebruikt automatisch ManagedIdentityCredential wanneer uw app wordt uitgevoerd in Azure. U kunt dezelfde beheerde identiteit gebruiken om te verifiëren met zowel App Configuration als Key Vault. Zie How to use managed identities to access App Configuration (Beheerde identiteiten gebruiken voor toegang tot App Configuration).

De app lokaal compileren en uitvoeren

  1. Compileer de app met behulp van de .NET Core CLI door de volgende opdracht uit te voeren in de opdrachtshell:

    dotnet build
    
  2. Nadat het compileren is voltooid, gebruikt u de volgende opdracht om de web-app lokaal uit te voeren:

    dotnet run
    
  3. Open een browservenster en ga naar http://localhost:5000. Dit is de standaard-URL voor de web-app die lokaal wordt gehost.

    Quickstart voor lokaal starten van app

Resources opschonen

Als u niet door wilt gaan met de resources die in dit artikel zijn gemaakt, verwijdert u de resourcegroep die u hier hebt gemaakt om kosten te voorkomen.

Belangrijk

Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. De resourcegroep en alle resources daarin worden permanent verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde resourcegroep of resources verwijdert. Als u de resources voor dit artikel in een resourcegroep hebt gemaakt die andere resources bevat die u wilt behouden, moet u elke resource afzonderlijk verwijderen uit het deelvenster in plaats van dat u de resourcegroep verwijdert.

  1. Meld u aan bij de Azure-portal en selecteer Resourcegroepen.
  2. Voer de naam van de resourcegroep in het vak Filteren op naam in.
  3. Selecteer in de resultatenlijst de resourcegroepnaam om een overzicht te bekijken.
  4. Selecteer Resourcegroep verwijderen.
  5. U wordt gevraagd om het verwijderen van de resourcegroep te bevestigen. Voer de naam van de resourcegroep in ter bevestiging en selecteer Verwijderen.

Na enkele ogenblikken worden de resourcegroep en alle bijbehorende resources verwijderd.

Volgende stappen

In deze zelfstudie hebt u een sleutel gemaakt in App Configuration die verwijst naar een geheim dat is opgeslagen in Key Vault. Als u wilt weten hoe u automatisch geheimen en certificaten van Key Vault laadt, gaat u verder met de volgende zelfstudie:

Raadpleeg de volgende zelfstudie voor meer informatie over het gebruik van beheerde identiteit om de toegang tot App Configuration en Key Vault stroomlijnen: