Snelstartgids: Azure Key Vault-client bibliotheek voor .NET (SDK v4)Quickstart: Azure Key Vault client library for .NET (SDK v4)

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 Key Vault 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.

API-referentie documentatie | - bibliotheek bron code | pakket (NuGet)API reference documentation | Library source code | Package (NuGet)

VereistenPrerequisites

In deze Quick Start wordt ervan uitgegaan dat u dotnet-, Azure cli-en Windows-opdrachten uitvoert 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

Gebruik in een console venster de opdracht dotnet new om een nieuwe .NET-console-app te maken met de naam akv-dotnet.In a console window, use the dotnet new command to create a new .NET console app with the name akv-dotnet.

dotnet new console -n key-vault-console-app

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 Azure.Security.KeyVault.Secrets --version 4.0.0

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 Azure.Identity --version 1.0.0

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

Elke sleutel kluis moet een unieke naam hebben.Each key vault must have a unique name. Vervang < uw-unieke kluis naam > door de naam van uw sleutel kluis in de volgende voor beelden.Replace with the name of your key vault in the following examples.

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 een beheerde app Service-id gebruiken voor toegang tot Azure Key Vault voor meer informatie.The simplest way to authenticate a cloud-based .NET application is with a managed identity; see Use an App Service managed identity to access Azure Key Vault for details. Deze Quick Start maakt echter een .NET-console toepassing.For the sake of simplicity however, this quickstart creates a .NET console application. Als u een bureaublad toepassing met Azure wilt verifiëren, moet u een Service-Principal en toegangs beheer beleid gebruiken.Authenticating a desktop application with Azure requires the use of a service principal and an access control policy.

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/"
}

Let op de clientId, clientSecret en tenantId, aangezien we deze in de volgende stappen gaan gebruiken.Take note of the clientId, clientSecret, and tenantId, as we will use them in the following steps.

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

Omgevings variabelen instellenSet environmental variables

De methode DefaultAzureCredential in onze toepassing is afhankelijk van drie omgevings variabelen: AZURE_CLIENT_ID, AZURE_CLIENT_SECRETen AZURE_TENANT_ID.The DefaultAzureCredential method in our application relies on three environmental variables: AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID. Gebruik deze variabelen instellen op de clientId-, clientSecret-en tenantId-waarden die u hebt genoteerd in de stap een service-principal maken hierboven.use set these variables to the clientId, clientSecret, and tenantId values you noted in the Create a service principal step, above.

U moet de naam van de sleutel kluis ook opslaan als een omgevings variabele met de naam KEY_VAULT_NAME;You will also need to save your key vault name as an environment variable called KEY_VAULT_NAME;

setx AZURE_CLIENT_ID <your-clientID>

setx AZURE_CLIENT_SECRET <your-clientSecret>

setx AZURE_TENANT_ID <your-tenantId>

setx KEY_VAULT_NAME <your-key-vault-name>

Telkens wanneer u setxaanroept, ontvangt u een antwoord op ' geslaagd: de opgegeven waarde is opgeslagen. 'Each time you call setx, you should get a response of "SUCCESS: Specified value was saved."

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 ziet u hoe u een-client maakt, een geheim instelt, een geheim ophaalt en een geheim verwijdert.The code samples below will show you how to create a client, set a secret, retrieve a secret, and delete a secret.

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

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 Azure.Identity;
using Azure.Security.KeyVault.Secrets;

Een client verifiëren en makenAuthenticate and create a client

Het verifiëren van uw sleutel kluis en het maken van een sleutel kluis-client is afhankelijk van de omgevings variabelen in de bovenstaande stap omgevings variabelen instellen .Authenticating to your key vault and creating a key vault client depends on the environmental variables in the Set environmental variables step above. De naam van de sleutel kluis wordt uitgebreid naar de sleutel kluis-URI, in de indeling ' https://<Your-Key-kluis-name>. vault.azure.net '.The name of your key vault is expanded to the key vault URI, in the format "https://<your-key-vault-name>.vault.azure.net".

string keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME");
var kvUri = "https://" + keyVaultName + ".vault.azure.net";

var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());

Een geheim opslaanSave a secret

Nu uw toepassing is geverifieerd, kunt u een geheim in uw sleutel kluis plaatsen met behulp van de client. SetSecret-methode hiervoor is een naam vereist voor het geheim. in dit voor beeld gebruiken we ' mySecret '.Now that your application is authenticated, you can put a secret into your keyvault using the client.SetSecret method This requires a name for the secret -- we're using "mySecret" in this sample.

client.SetSecret(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 met de client ophalen. Methode GetSecret.You can now retrieve the previously set value with the client.GetSecret method.

KeyVaultSecret secret = client.GetSecret(secretName);

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

Een geheim verwijderenDelete a secret

Ten slotte gaan we het geheim verwijderen uit de sleutel kluis met de- client. Methode DeleteSecret.Finally, let's delete the secret from your key vault with the client.DeleteSecret method.

client.StartDeleteSecret(secretName);

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

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

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"

VoorbeeldcodeSample code

using System;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;

namespace key_vault_console_app
{
    class Program
    {
        static void Main(string[] args)
        {
            string secretName = "mySecret";

            string keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME");
            var kvUri = "https://" + keyVaultName + ".vault.azure.net";

            var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());

            Console.Write("Input the value of your secret > ");
            string secretValue = Console.ReadLine();

            Console.Write("Creating a secret in " + keyVaultName + " called '" + secretName + "' with the value '" + secretValue + "` ...");

            client.SetSecret(secretName, secretValue);

            Console.WriteLine(" done.");

            Console.WriteLine("Forgetting your secret.");
            secretValue = "";
            Console.WriteLine("Your secret is '" + secretValue + "'.");

            Console.WriteLine("Retrieving your secret from " + keyVaultName + ".");

            KeyVaultSecret secret = client.GetSecret(secretName);

            Console.WriteLine("Your secret is '" + secret.Value + "'.");

            Console.Write("Deleting your secret from " + keyVaultName + " ...");

            client.StartDeleteSecret(secretName);

            System.Threading.Thread.Sleep(5000);
            Console.WriteLine(" done.");

        }
    }
}

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.