Quickstart: een geheim uit Azure Key Vault instellen en ophalen met behulp van een .NET-web-appQuickstart: Set and retrieve a secret from Azure Key Vault by using a .NET web app

In deze quickstart voert u de stappen uit die nodig zijn om een Azure-webtoepassing gegevens te laten lezen uit Azure Key Vault met behulp van beheerde identiteiten voor Azure-resources.In this quickstart, you follow the steps for getting an Azure web application to read information from Azure Key Vault by using managed identities for Azure resources. Met Key Vault kunt u de informatie beveiligen.Using Key Vault helps keep the information secure. In deze zelfstudie leert u procedures om het volgende te doen:You learn how to:

  • Een sleutelkluis maken.Create a key vault.
  • Een geheim opslaan in de sleutelkluis.Store a secret in the key vault.
  • Een geheim ophalen uit de sleutelkluis.Retrieve a secret from the key vault.
  • Een Azure-webtoepassing maken.Create an Azure web application.
  • Schakel een beheerde service-identiteit in voor de web-app.Enable a managed service identity for the web app.
  • De vereiste machtigingen verlenen aan de webtoepassing om gegevens te lezen uit de sleutelkluis.Grant the required permissions for the web application to read data from the key vault.

Neem eerst de basisconcepten voor Key Vault door.Before we go any further, please read the basic concepts for Key Vault.

Notitie

Key Vault is een centrale opslagplaats voor het opslaan van geheimen via een programma.Key Vault is a central repository to store secrets programmatically. Maar hiervoor moeten toepassingen en gebruikers eerst worden geverifieerd bij Key Vault, wat betekent dat ze een geheim moeten presenteren.But to do so, applications and users need to first authenticate to Key Vault--that is, present a secret. Als u de aanbevolen procedures voor beveiliging wilt volgen, moet dit eerste geheim periodiek worden gerouleerd.In keeping with security best practices, this first secret needs to be rotated periodically.

Met beheerde service-identiteiten voor Azure-resources krijgen toepassingen die in Azure worden uitgevoerd, een identiteit die automatisch door Azure wordt beheerd.With managed service identities for Azure resources, applications that run in Azure get an identity that Azure manages automatically. Dit helpt bij het oplossen van het probleem van het introduceren van geheimen zodat gebruikers en toepassingen aanbevolen procedures kunnen volgen en zich geen zorgen hoeven maken over het rouleren van het eerste geheim.This helps solve the secret introduction problem so that users and applications can follow best practices and not have to worry about rotating the first secret.

Azure Cloud Shell openenOpen Azure Cloud Shell

Azure Cloud Shell is een gratis interactieve shell waarmee u de stappen in dit artikel kunt uitvoeren.Azure Cloud Shell is a free, interactive shell that you can use to run the steps in this article. Er zijn vooraf algemene Azure-hulpprogramma's geïnstalleerd en geconfigureerd in Cloud Shell die u kunt gebruiken bij uw account.Common Azure tools are preinstalled and configured in Cloud Shell for you to use with your account. Selecteer kopie voor het kopiëren van de code, plak deze in de Cloud Shell en druk vervolgens op Enter om door te voeren.Select Copy to copy the code, paste it in Cloud Shell, and then press Enter to run it. U kunt Cloud Shell op verschillende manieren openen:There are a few ways to open Cloud Shell:

Selecteer Nu proberen in de rechterbovenhoek van een codeblok.Select Try It in the upper-right corner of a code block. Voorbeeld van proberen voor Azure Cloudshell
Open Cloud Shell in uw browser.Open Cloud Shell in your browser. Knop voor Azure Cloud Shell startenLaunch Azure Cloud Shell button
Klik op de knop Cloud Shell in het menu in de hoek rechtsboven in de Azure Portal.Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Knop Cloud Shell in de Azure Portal

VereistenPrerequisites

Meld u aan bij Azure.Log in to Azure

Als u zich bij Azure wilt aanmelden met de Azure CLI, voert u het volgende in:To log in to Azure by using the Azure CLI, enter:

az login

Een resourcegroep makenCreate a resource group

Maak een resourcegroep met de opdracht az group create.Create a resource group by using the az group create command. Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.An Azure resource group is a logical container into which Azure resources are deployed and managed.

Selecteer de naam van een resourcegroep en vul de tijdelijke aanduiding in.Select a resource group name and fill in the placeholder. In het volgende voorbeeld wordt een resourcegroep gemaakt in de regio US - oost:The following example creates a resource group in the East US location:

# To list locations: az account list-locations --output table
az group create --name "<YourResourceGroupName>" --location "East US"

De resourcegroep die u net hebt gemaakt, wordt overal in dit artikel gebruikt.The resource group that you just created is used throughout this article.

Een sleutelkluis makenCreate a key vault

Vervolgens maakt u een sleutelkluis in de resourcegroep die u in de vorige stap hebt gemaakt.Next you create a key vault in the resource group that you created in the previous step. Geef de volgende informatie op:Provide the following information:

  • Naam van de sleutelkluis: De naam moet een tekenreeks zijn met 3-24 tekens en mag alleen 0-9, a-z, A-Z en een streepje (-) bevatten.Key vault name: The name must be a string of 3-24 characters and must contain only 0-9, a-z, A-Z, and a hyphen (-).
  • Naam van de resourcegroep.Resource group name.
  • Locatie: US - oost.Location: East US.
az keyvault create --name "<YourKeyVaultName>" --resource-group "<YourResourceGroupName>" --location "East US"

Vanaf dit punt is uw Azure-account nu als enige gemachtigd om bewerkingen op deze nieuwe kluis uit te voeren.At this point, your Azure account is the only one that's authorized to perform any operations on this new vault.

Een geheim toevoegen aan de sleutelkluisAdd a secret to the key vault

We gaan een geheim toevoegen om te laten zien hoe dit werkt.We're adding a secret to help illustrate how this works. U wilt bijvoorbeeld een SQL-verbindingsreeks opslaan of andere gegevens die u veilig wilt bewaren, maar wel beschikbaar wilt stellen aan uw toepassing.You might be storing a SQL connection string or any other information that you need to keep securely but make available to your application.

Typ de volgende opdrachten om een geheim te maken in de sleutelkluis met de naam AppGeheim.Type the following commands to create a secret in the key vault called AppSecret. Met dit geheim wordt de waarde MijnGeheim opgeslagen.This secret will store the value MySecret.

az keyvault secret set --vault-name "<YourKeyVaultName>" --name "AppSecret" --value "MySecret"

Als u de waarde in het geheim als tekst zonder opmaak wilt weergeven:To view the value contained in the secret as plain text:

az keyvault secret show --name "AppSecret" --vault-name "<YourKeyVaultName>"

Met deze opdracht vraagt u de geheime gegevens op, inclusief de URI.This command shows the secret information, including the URI. Wanneer u deze stappen hebt uitgevoerd, beschikt u over een URI voor een geheim in een sleutelkluis.After you complete these steps, you should have a URI to a secret in a key vault. Noteer deze informatie.Make note of this information. U hebt deze in een latere stap nodig.You'll need it in a later step.

De opslagplaats klonenClone the repo

Kloon de opslagplaats om een lokale kopie te maken waarin u de bron kunt bewerken.Clone the repo to make a local copy where you can edit the source. Voer de volgende opdracht uit:Run the following command:

git clone https://github.com/Azure-Samples/key-vault-dotnet-core-quickstart.git

De oplossing openen en bewerkenOpen and edit the solution

Bewerk het bestand program.cs om het voorbeeld met de naam van uw specifieke sleutelkluis uit te voeren:Edit the program.cs file to run the sample with your specific key vault name:

  1. Ga naar de map key-vault-dotnet-core-quickstart.Browse to the folder key-vault-dotnet-core-quickstart.
  2. Open het bestand key-vault-dotnet-core-quickstart.sln in Visual Studio 2017.Open the key-vault-dotnet-core-quickstart.sln file in Visual Studio 2017.
  3. Open het bestand Program.cs en vervang de tijdelijke aanduiding YourKeyVaultName door de naam van de sleutelkluis die u eerder hebt gemaakt.Open the Program.cs file and update the placeholder YourKeyVaultName with the name of the key vault that you created earlier.

Deze oplossing maakt gebruik van NuGet-bibliotheken van AppAuthentication en KeyVault.This solution uses AppAuthentication and KeyVault NuGet libraries.

De app uitvoerenRun the app

Selecteer Fouten opsporen > Starten zonder foutopsporing in het hoofdmenu van Visual Studio 2017.From the main menu of Visual Studio 2017, select Debug > Start without debugging. Wanneer de browser wordt weergegeven, gaat u naar de pagina Over.When the browser appears, go to the About page. De waarde voor AppGeheim wordt weergegeven.The value for AppSecret is displayed.

De webtoepassing publiceren in AzurePublish the web application to Azure

Publiceer deze app naar Azure om deze live als web-app in actie te zien en om te controleren of u de geheime waarde kunt ophalen:Publish this app to Azure to see it live as a web app, and to see that you can fetch the secret value:

  1. In Visual Studio selecteert u het project key-vault-dotnet-core-quickstart.In Visual Studio, select the key-vault-dotnet-core-quickstart project.
  2. Selecteer Publiceren > Start.Select Publish > Start.
  3. Maak een nieuwe App Service en selecteer Publiceren.Create a new App Service, and then select Publish.
  4. Wijzig de naam van de app in keyvaultdotnetcorequickstart.Change the app name to keyvaultdotnetcorequickstart.
  5. Selecteer Maken.Select Create.

Een beheerde identiteit voor de web-app inschakelenEnable a managed identity for the web app

Azure Key Vault biedt een manier voor het veilig opslaan van referenties en andere sleutels en geheimen, maar uw code moet worden geverifieerd voor Key Vault om ze op te halen.Azure Key Vault provides a way to securely store credentials and other keys and secrets, but your code needs to authenticate to Key Vault to retrieve them. In Overzicht van beheerde identiteiten voor Azure-resources wordt het oplossen van dit probleem eenvoudiger gemaakt door Azure-services een automatisch beheerde identiteit in Azure Active Directory (Azure AD) te geven.Managed identities for Azure resources overview makes solving this problem simpler, by giving Azure services an automatically managed identity in Azure Active Directory (Azure AD). U kunt deze identiteit gebruiken voor verificatie bij alle services die ondersteuning bieden voor Azure AD-verificatie, inclusief Key Vault, zonder dat u referenties in uw code hoeft te hebben.You can use this identity to authenticate to any service that supports Azure AD authentication, including Key Vault, without having any credentials in your code.

Voer in Azure CLI de opdracht assign-identity uit om de identiteit voor deze toepassing te maken:In the Azure CLI, run the assign-identity command to create the identity for this application:

az webapp identity assign --name "keyvaultdotnetcorequickstart" --resource-group "<YourResourceGroupName>"

Notitie

U kunt dit ook doen door naar de portal te gaan en de instelling Identeit/Systeem toegewezen Aan te zetten in de eigenschappen van de webtoepassing.The command in this procedure is the equivalent of going to the portal and switching the Identity / System assigned setting to On in the web application properties.

Machtigingen toewijzen aan uw toepassing voor het lezen van geheimen uit Key VaultAssign permissions to your application to read secrets from Key Vault

Maak een notitie van de uitvoer wanneer u de toepassing naar Azure publiceert.Make a note of the output when you publish the application to Azure. Gebruik hierbij de notatie:It should be of the format:

    {
      "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "type": "SystemAssigned"
    }
    

Voer deze opdracht uit met de naam van uw sleutelkluis en de waarde van PrincipalId:Then, run this command by using the name of your key vault and the value of PrincipalId:


az keyvault set-policy --name '<YourKeyVaultName>' --object-id <PrincipalId> --secret-permissions get list

Tijdens het uitvoeren van de toepassing ziet u nu de geheime waarde die is opgehaald.Now when you run the application, you should see your secret value retrieved. In de voorgaande opdracht, bent u de identiteit van de app service-machtigingen wilt geven ophalen en lijst bewerkingen op uw key vault.In the preceding command, you're giving the identity of the app service permissions to do get and list operations on your key vault.

Resources opschonenClean up resources

Verwijder de resourcegroep, de virtuele machine en alle gerelateerde resources wanneer u ze niet meer nodig hebt.Delete the resource group, virtual machine, and all related resources when you no longer need them. Om dit te doen, selecteert u de resourcegroep voor de VM en selecteert u Verwijderen.To do so, select the resource group for the VM and select Delete.

Verwijder de sleutelkluis met behulp van de opdracht az keyvault delete:Delete the key vault by using the az keyvault delete command:

az keyvault delete --name
                   [--resource-group]
                   [--subscription]

Volgende stappenNext steps