Quickstart: Azure Key Vault-client bibliotheek voor .NETQuickstart: Azure Key Vault client library for .NET

Ga aan de slag met de Azure Key Vault-client bibliotheek voor .NET.Get started with the Azure Key Vault client library for .NET. Volg de onderstaande stappen om het pakket te installeren en voorbeeld code voor basis taken uit te proberen.Follow the steps below to install the package and try out example code for basic tasks.

Met Azure Sleutelkluis kunt u de cryptografische sleutels en geheimen beveiligen die door cloudtoepassingen en -services worden gebruikt.Azure Key Vault helps safeguard cryptographic keys and secrets used by cloud applications and services. Gebruik de Key Vault-client bibliotheek voor .NET voor het volgende:Use the Key Vault client library for .NET to:

  • Verbeter de beveiliging en controle over sleutels en wacht woorden.Increase security and control over keys and passwords.
  • Versleutelings sleutels maken en importeren in een paar minuten.Create and import encryption keys in minutes.
  • Verminder de latentie met Cloud schaal en wereld wijde redundantie.Reduce latency with cloud scale and global redundancy.
  • Vereenvoudig en Automatiseer taken voor SSL/TLS-certificaten.Simplify and automate tasks for SSL/TLS certificates.
  • Gebruik FIPS 140-2 level 2 Validated Hsm's.Use FIPS 140-2 Level 2 validated HSMs.

| Broncodepakket | voor de documentatie bibliotheek van de API-naslag gids(NuGet)API reference documentation | Library source code | Package (NuGet)

VereistenPrerequisites

In deze Quick dotnetstart wordt ervan uitgegaan dat u werkt met, Azure clien Windows-opdrachten in een Windows-Terminal (zoals Power shell core, Windows Power shellof de Azure Cloud shell).This quickstart assumes you are running dotnet, Azure CLI, and Windows commands in a Windows terminal (such as PowerShell Core, Windows PowerShell, or the Azure Cloud Shell).

InstellenSetting up

Nieuwe .NET-console-app makenCreate new .NET console app

Maak een nieuwe .NET core-toepassing in uw voorkeurs editor of IDE.Create a new .NET Core application in your preferred editor or IDE.

Gebruik in een console venster de dotnet new opdracht voor het maken van een nieuwe console-app met de naam. akv-dotnetIn a console window, use the dotnet new command to create a new console app with the name akv-dotnet.

dotnet new console -n akvdotnet

Wijzig uw directory in de zojuist gemaakte app-map.Change your directory to the newly created app folder. U kunt de toepassing samen stellen met:You can build the application with:

dotnet build

De build-uitvoer mag geen waarschuwingen of fouten bevatten.The build output should contain no warnings or errors.

Build succeeded.
 0 Warning(s)
 0 Error(s)

Het pakket installerenInstall the package

Installeer in het console venster de Azure Key Vault-client bibliotheek voor .NET:From the console window, install the Azure Key Vault client library for .NET:

dotnet add package Microsoft.Azure.KeyVault

Voor deze Quick start moet u ook de volgende pakketten installeren:For this quickstart, you will need to install the following packages as well:

dotnet add package System.Threading.Tasks
dotnet add package Microsoft.IdentityModel.Clients.ActiveDirectory
dotnet add package Microsoft.Azure.Management.ResourceManager.Fluent

Een resource groep en sleutel kluis makenCreate a resource group and key vault

In deze Snelstartgids wordt gebruikgemaakt van een vooraf gemaakte Azure-sleutel kluis.This quickstart uses a pre-created Azure key vault. U kunt een sleutel kluis maken met behulp van de stappen in de Snelstartgids van Azure cli, Azure PowerShell Snelstartgidsof Azure Portal Quickstart.You can create a key vault by following the steps in the Azure CLI quickstart, Azure PowerShell quickstart, or Azure portal quickstart. U kunt ook eenvoudigweg de volgende Azure CLI-opdrachten uitvoeren.Alternatively, you can simply run the Azure CLI commands below.

Belangrijk

Elk Key Vault moet een unieke naam hebben.Each Key Vault must have a unique name. In het volgende voor beeld wordt een Key Vault gemaakt met de naam myKV, maar u moet iets anders een andere naam hebben en deze Snelstartgids gebruiken.The following example creates a Key Vault named myKV, but you must name yours something different and use that name throughout this quickstart.

az group create --name "myResourceGroup" -l "EastUS"

az keyvault create --name <your-unique-keyvault-name> -g "myResourceGroup"

Een service-principal makenCreate a service principal

De eenvoudigste manier om een op de cloud gebaseerde .NET-toepassing te verifiëren, is met een beheerde identiteit. Zie service-to-service-verificatie voor het Azure Key Vault met behulp van .net voor meer informatie.The simplest way to authenticate an cloud-based .NET application is with a managed identity; see Service-to-service authentication to Azure Key Vault using .NET for details. Deze Quick starts maken echter een .NET-console toepassing.For the sake of simplicity however, this quickstarts creates a .NET console application. Voor het verifiëren van een bureaublad toepassing met Azure moet u een Service-Principal gebruiken.Authenticating a desktop application with Azure requires the use of a service principal. Maak een service-principal met behulp van de opdracht Azure CLI AZ AD SP create-for-RBAC :Create a service principle using the Azure CLI az ad sp create-for-rbac command:

az ad sp create-for-rbac -n "http://mySP" --sdk-auth

Met deze bewerking wordt een reeks sleutel-waardeparen geretourneerd.This operation will return a series of key / value pairs.

{
  "clientId": "7da18cae-779c-41fc-992e-0527854c6583",
  "clientSecret": "b421b443-1669-4cd7-b5b1-394d5c945002",
  "subscriptionId": "443e30da-feca-47c4-b68f-1636b75e16b3",
  "tenantId": "35ad10f1-7799-4766-9acf-f2d946161b77",
  "activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
  "resourceManagerEndpointUrl": "https://management.azure.com/",
  "activeDirectoryGraphResourceId": "https://graph.windows.net/",
  "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
  "galleryEndpointUrl": "https://gallery.azure.com/",
  "managementEndpointUrl": "https://management.core.windows.net/"
}

Noteer de clientId-en clientSecret, aangezien we deze gebruiken in de verificatie van uw sleutel kluis hieronder.Take note of the clientId and clientSecret, as we will use them in the Authenticate to your key vault step below.

De Service-Principal toegang verlenen tot uw sleutel kluisGive the service principal access to your key vault

Maak een toegangs beleid voor de sleutel kluis die machtigingen verleent aan uw Service-Principal door de clientId door te geven aan de opdracht AZ-set-Policy .Create an access policy for your key vault that grants permission to your service principal by passing the clientId to the az keyvault set-policy command. Geef de Service-Principal Get, List en stel machtigingen voor zowel sleutels als geheimen.Give the service principal get, list, and set permissions for both keys and secrets.

az keyvault set-policy -n <your-unique-keyvault-name> --spn <clientId-of-your-service-principal> --secret-permissions delete get list set --key-permissions create decrypt delete encrypt get list unwrapKey wrapKey

Object modelObject model

Met de Azure Key Vault-client bibliotheek voor .NET kunt u sleutels en gerelateerde assets beheren, zoals certificaten en geheimen.The Azure Key Vault client library for .NET allows you to manage keys and related assets such as certificates and secrets. In de onderstaande code voorbeelden wordt uitgelegd hoe u een geheim instelt en een geheim ophaalt.The code samples below will show you how to set a secret and retrieve a secret.

De volledige console-app is beschikbaar https://github.com/Azure-Samples/key-vault-dotnet-core-quickstart/tree/master/akvdotnet op.The entire console app is available at https://github.com/Azure-Samples/key-vault-dotnet-core-quickstart/tree/master/akvdotnet.

Code voorbeeldenCode examples

Instructies toevoegenAdd directives

Voeg de volgende instructies toe aan het begin van de code:Add the following directives to the top of your code:

using System;
using System.Threading.Tasks;
using Microsoft.Azure.KeyVault;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.Azure.Management.ResourceManager.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent.Authentication;

Verifiëren bij uw sleutel kluisAuthenticate to your key vault

Deze .NET-Snelstartgids is afhankelijk van omgevings variabelen om referenties op te slaan die niet in code mogen worden geplaatst.This .NET quickstart relies on environment variables to store credentials that should not be put in code.

Voordat u uw app bouwt en uitvoert, gebruikt u setx de opdracht om de akvClientIdvariabelen akvClientSecret, akvTenantId, en akvSubscriptionId omgeving in te stellen op de waarden die u hierboven hebt genoteerd.Before you build and run your app, use the setx command to set the akvClientId, akvClientSecret, akvTenantId, and akvSubscriptionId environment variables to the values you noted above.

setx akvClientId <your-clientID>

setx akvClientSecret <your-clientSecret>

Elke keer dat u setxbelt, ontvangt u een reactie van het volgende: Opgegeven waarde is opgeslagen. "Each time you call setx, you should get a response of "SUCCESS: Specified value was saved."

Wijs deze omgevings variabelen toe aan teken reeksen in uw code en verifieer uw toepassing door deze door te geven aan de klasse KeyVaultClient:Assign these environment variables to strings in your code, and then authenticate your application by passing them to the KeyVaultClient class:


string clientId = Environment.GetEnvironmentVariable("akvClientId");
string clientSecret = Environment.GetEnvironmentVariable("akvClientSecret");

KeyVaultClient kvClient = new KeyVaultClient(async (authority, resource, scope) =>
{
    var adCredential = new ClientCredential(clientId, clientSecret);
    var authenticationContext = new AuthenticationContext(authority, null);
    return (await authenticationContext.AcquireTokenAsync(resource, adCredential)).AccessToken;
});

Een geheim opslaanSave a secret

Nu uw toepassing is geverifieerd, kunt u een geheim in uw sleutel kluis plaatsen met behulp van de SetSecretAsync-methode hiervoor moet de URL van de Key kluis in het formulier https://<your-unique-keyvault-name>.vault.azure.net/secrets/staan.Now that your application is authenticated, you can put a secret into your keyvault using the SetSecretAsync method This requires the URL of your key vault, which is in the form https://<your-unique-keyvault-name>.vault.azure.net/secrets/. Er is ook een naam voor het geheim vereist: we gebruiken ' mySecret '.It also requires a name for the secret -- we're using "mySecret". Mogelijk wilt u deze teken reeksen toewijzen aan een variabele voor hergebruik.You may wish to assign these strings to a variables for reuse.

await kvClient.SetSecretAsync($"{kvURL}", secretName, secretValue);

U kunt controleren of het geheim is ingesteld met de opdracht AZ sleutel kluis Secret show :You can verify that the secret has been set with the az keyvault secret show command:

az keyvault secret show --vault-name <your-unique-keyvault-name> --name mySecret

Een geheim ophalenRetrieve a secret

U kunt nu de eerder ingestelde waarde ophalen met de methode GetSecretAsyncYou can now retrieve the previously set value with the GetSecretAsync method

var keyvaultSecret = await kvClient.GetSecretAsync($"{kvURL}", secretName).ConfigureAwait(false);

Uw geheim wordt nu opgeslagen als keyvaultSecret.Value;.Your secret is now saved as keyvaultSecret.Value;.

Resources opschonenClean up resources

Wanneer u deze niet meer nodig hebt, kunt u de Azure CLI of Azure PowerShell gebruiken om uw sleutel kluis en de bijbehorende resource groep te verwijderen.When no longer needed, you can use the Azure CLI or Azure PowerShell to remove your key vault and the corresponding resource group.

az group delete -g "myResourceGroup" -l "EastUS" 
Remove-AzResourceGroup -Name "myResourceGroup"

Volgende stappenNext steps

In deze Snelstartgids hebt u een sleutel kluis gemaakt, een geheim opgeslagen en dat geheim opgehaald.In this quickstart you created a key vault, stored a secret, and retrieved that secret. Bekijk de volledige console-app in github.See the entire console app in GitHub.

Ga verder met de volgende artikelen voor meer informatie over Key Vault en hoe u deze integreert met uw toepassingen.To learn more about Key Vault and how to integrate it with your applications, continue on to the articles below.