Zelfstudie: Key Vault-verwijzingen 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, installeert u de .NET SDK 6.0 of hoger.

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken 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 Key Vault in het zoekvak en selecteer Key Vault in de vervolgkeuzelijst.

  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 de resourcegroep een bestaande resourcegroepnaam in of selecteer Nieuwe maken en voer een resourcegroepnaam 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. Het systeem valideert en geeft de gegevens weer die u hebt ingevoerd. 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 de volgende waarden in:
    • Uploadopties: Voer handmatig in.
    • Naam: Voer het bericht in.
    • Waarde: Voer Hello uit 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 het Azure-portaal. 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:Instellingen: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 met de naam Bericht dat u in de vorige sectie hebt gemaakt.

Schermafbeelding van het nieuwe Key Vault-referentieformulier maken

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. Gebruik App Configuration door de AddAzureAppConfiguration methode aan te roepen. Neem de ConfigureKeyVault optie op en geef de juiste referenties door aan uw Key Vault met behulp van de SetCredential methode.

    var builder = WebApplication.CreateBuilder(args);
    
    // Retrieve the connection string
    string connectionString = builder.Configuration.GetConnectionString("AppConfig");
    
    // Load configuration from Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        options.Connect(connectionString);
    
        options.ConfigureKeyVault(keyVaultOptions =>
        {
            keyVaultOptions.SetCredential(new DefaultAzureCredential());
        });
    });
    

    Tip

    Als u meerdere sleutelkluizen hebt, wordt dezelfde referentie gebruikt voor alle sleutelkluizen. Als uw Key Vaults verschillende referenties vereisen, kunt u deze instellen met behulp van Register of SetSecretResolver methoden uit de AzureAppConfigurationKeyVaultOptions klasse.

  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:

    @page
    @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 heeft geen toegang tot uw sleutelkluis. Uw app wordt rechtstreeks vanuit Key Vault gelezen, dus u moet uw app toegang 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 de bovenstaande code. Het is een samengevoegde tokenreferentie waarmee automatisch een aantal referentietypen, zoals EnvironmentCredential, ManagedIdentityCredential, SharedTokenCacheCredentialen VisualStudioCredential. Zie DefaultAzureCredential Class voor meer informatie. U kunt elk referentietype expliciet vervangen DefaultAzureCredential . Met het gebruik DefaultAzureCredential kunt u echter dezelfde code hebben die wordt uitgevoerd in zowel lokale als Azure-omgevingen. U verleent bijvoorbeeld uw eigen referenties toegang tot uw sleutelkluis. DefaultAzureCredential wordt automatisch teruggezet naar SharedTokenCacheCredential of VisualStudioCredential wanneer u Visual Studio gebruikt voor lokale ontwikkeling.

U kunt ook de AZURE_TENANT_ID, AZURE_CLIENT_ID en AZURE_CLIENT_SECRET omgevingsvariabelen instellen en DefaultAzureCredential het clientgeheim gebruiken dat u hebt via de EnvironmentCredential verificatie met uw sleutelkluis. Nadat uw app is geïmplementeerd in een Azure-service waarvoor beheerde identiteit is ingeschakeld, zoals Azure-app Service, Azure Kubernetes Service of Azure Container Instance, verleent u de beheerde identiteit van de Azure-servicemachtigingen voor toegang tot uw sleutelkluis. DefaultAzureCredential wordt automatisch gebruikt 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 Beheerde identiteiten gebruiken voor toegang tot App Configuration voor meer informatie.

De app lokaal bouwen en uitvoeren

  1. Als u de app wilt bouwen met behulp van de .NET CLI, voert u de volgende opdracht uit 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 de resources die in dit artikel zijn gemaakt niet wilt blijven gebruiken, 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 geheimen en certificaten automatisch opnieuw laadt vanuit Key Vault, 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 te stroomlijnen: