Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Ga aan de slag met de Azure Key Vault-clientbibliotheek met certificaten voor .NET. Azure Key Vault is een cloudservice die een beveiligd archief voor certificaten biedt. U kunt veilig sleutels, wachtwoorden, certificaten en andere geheime informatie opslaan. Azure-sleutelkluizen kunnen worden gemaakt en beheerd via Azure Portal. In deze quickstart leert u hoe u certificaten maakt, ophaalt en verwijdert uit een Azure-sleutelkluis met behulp van de .NET-clientbibliotheek.
Resources voor de Key Vault-clientbibliotheek:
API-referentiedocumentatie | Broncode bibliotheek | Pakket (NuGet)
Zie voor meer informatie over Key Vault en certificaten:
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- .NET 6 SDK of hoger
- Azure-CLI
- Een Key Vault - U kunt er een maken met Azure Portal, Azure CLI of Azure PowerShell.
Deze quickstart gebruikt dotnet en Azure CLI.
Installatie
Deze quickstart maakt gebruik van de Azure Identity-bibliotheek met Azure CLI om de gebruiker te verifiëren bij Azure-services. Ontwikkelaars kunnen ook Visual Studio of Visual Studio Code gebruiken om hun oproepen te authenticeren, voor meer informatie, zie De client authenticeren met de Azure Identity-clientbibliotheek (Engelstalig).
Aanmelden bij Azure
Voer de opdracht
loginuit.az loginAls de CLI uw standaardbrowser kan openen, gebeurt dat ook en wordt er een Azure-aanmeldingspagina geladen.
Als dat niet het geval is, opent u een browserpagina op https://aka.ms/devicelogin en voert u de autorisatiecode in die wordt weergegeven in de terminal.
Meldt u zich in de browser aan met uw accountreferenties.
Toegang verlenen tot uw sleutelkluis
Om toegang te krijgen tot uw sleutelkluis via op rollen gebaseerd toegangsbeheer (RBAC), wijst u een rol toe aan uw "User Principal Name" (UPN) met de Azure CLI-opdracht az role assignment create.
az role assignment create --role "Key Vault Certificates Officer" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
Vervang <upn>, <subscription-id>, <resource-group-name> en <your-unique-keyvault-name> door uw werkelijke waarden. Uw UPN heeft meestal de indeling van een e-mailadres (bijvoorbeeld username@domain.com).
Nieuwe .NET-console-app maken
Voer in een opdrachtprompt het volgende commando uit om een project te maken met de naam
key-vault-console-app:dotnet new console --name key-vault-console-appNavigeer naar de zojuist aangemaakte key-vault-console-app directory en voer de volgende opdracht uit om het project te bouwen:
dotnet buildDe build-uitvoer mag geen waarschuwingen of fouten bevatten.
Build succeeded. 0 Warning(s) 0 Error(s)
De pakketten installeren
Installeer vanuit de opdrachtshell de Azure Key Vault-clientbibliotheek voor certificaten voor .NET:
dotnet add package Azure.Security.KeyVault.Certificates
Voor deze quickstart moet u ook de Azure Identity-clientbibliotheek installeren:
dotnet add package Azure.Identity
Omgevingsvariabelen instellen
De toepassing verkrijgt de naam van de sleutelkluis van een omgevingsvariabele genaamd KEY_VAULT_NAME.
Windows
set KEY_VAULT_NAME=<your-key-vault-name>
Windows PowerShell
$Env:KEY_VAULT_NAME="<your-key-vault-name>"
macOS of Linux
export KEY_VAULT_NAME=<your-key-vault-name>
Objectmodel
Met de Azure Key Vault-clientbibliotheek met certificaten voor .NET kunt u certificaten beheren. In de sectie Codevoorbeelden ziet u hoe u een client maakt en een certificaat instelt, ophaalt en verwijdert.
Codevoorbeelden
Voeg instructies toe
Voeg de volgende instructies toe aan het begin van Program.cs:
using System;
using Azure.Identity;
using Azure.Security.KeyVault.Certificates;
Een client verifiëren en maken
Toepassingsaanvragen voor de meeste Azure-services moeten worden geautoriseerd. Het gebruik van de DefaultAzureCredential-klasse die wordt geleverd door de Azure Identity-clientbibliotheek is de aanbevolen aanpak voor het implementeren van verbindingen zonder wachtwoord met Azure-services in uw code.
DefaultAzureCredential ondersteunt meerdere authenticatiemethoden en bepaalt welke methode tijdens uitvoering moet worden gebruikt. Met deze aanpak kan uw app verschillende verificatiemethoden gebruiken in verschillende omgevingen (lokaal versus productie) zonder omgevingsspecifieke code te implementeren.
In deze quickstart DefaultAzureCredential verifieert u zich bij de sleutelkluis met behulp van de referenties van de lokale ontwikkelgebruiker die is aangemeld bij de Azure CLI. Wanneer de toepassing in Azure wordt geïmplementeerd, kan dezelfde DefaultAzureCredential code automatisch een beheerde identiteit detecteren en gebruiken die is toegewezen aan een App Service, virtuele machine of andere services. Zie Overzicht van beheerde identiteiten voor meer informatie.
In dit voorbeeld wordt de naam van uw sleutelkluis uitgebreid naar de sleutelkluis-URI, in de indeling https://<your-key-vault-name>.vault.azure.net. Zie Gids voor ontwikkelaars voor meer informatie over het authenticeren van een sleutelkluis.
string keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME");
var kvUri = "https://" + keyVaultName + ".vault.azure.net";
var client = new CertificateClient(new Uri(kvUri), new DefaultAzureCredential());
Een certificaat opslaan
In dit voorbeeld kunt u om het eenvoudig te houden, het zelfondertekende certificaat met het standaard uitgiftebeleid gebruiken. Voor deze taak gebruikt u de StartCreateCertificateAsync methode. De parameters van de methode accepteren een certificaatnaam en het certificaatbeleid.
var operation = await client.StartCreateCertificateAsync("myCertificate", CertificatePolicy.Default);
var certificate = await operation.WaitForCompletionAsync();
Notitie
Als de certificaatnaam bestaat, wordt met de code hierboven, een nieuwe versie van dat certificaat gemaakt.
Een certificaat ophalen
U kunt nu het voorheen gemaakte certificaat ophalen met de GetCertificateAsync methode.
var certificate = await client.GetCertificateAsync("myCertificate");
Een certificaat verwijderen
Ten slotte kunt u het certificaat uit uw sleutelkluis verwijderen en leegmaken met de methoden StartDeleteCertificateAsync en PurgeDeletedCertificateAsync.
var operation = await client.StartDeleteCertificateAsync("myCertificate");
// You only need to wait for completion if you want to purge or recover the certificate.
await operation.WaitForCompletionAsync();
var certificate = operation.Value;
await client.PurgeDeletedCertificateAsync("myCertificate");
Voorbeeldcode
Wijzig de .NET-console-app om te communiceren met Key Vault door de volgende stappen uit te voeren:
Vervang de code in Program.cs door de volgende code:
using System; using System.Threading.Tasks; using Azure.Identity; using Azure.Security.KeyVault.Certificates; namespace key_vault_console_app { class Program { static async Task Main(string[] args) { const string certificateName = "myCertificate"; var keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME"); var kvUri = $"https://{keyVaultName}.vault.azure.net"; var client = new CertificateClient(new Uri(kvUri), new DefaultAzureCredential()); Console.Write($"Creating a certificate in {keyVaultName} called '{certificateName}' ..."); CertificateOperation operation = await client.StartCreateCertificateAsync(certificateName, CertificatePolicy.Default); await operation.WaitForCompletionAsync(); Console.WriteLine(" done."); Console.WriteLine($"Retrieving your certificate from {keyVaultName}."); var certificate = await client.GetCertificateAsync(certificateName); Console.WriteLine($"Your certificate version is '{certificate.Value.Properties.Version}'."); Console.Write($"Deleting your certificate from {keyVaultName} ..."); DeleteCertificateOperation deleteOperation = await client.StartDeleteCertificateAsync(certificateName); // You only need to wait for completion if you want to purge or recover the certificate. await deleteOperation.WaitForCompletionAsync(); Console.WriteLine(" done."); Console.Write($"Purging your certificate from {keyVaultName} ..."); await client.PurgeDeletedCertificateAsync(certificateName); Console.WriteLine(" done."); } } }
Testen en verifiëren
Voer de volgende opdracht uit om het project te bouwen
dotnet build
Er verschijnt een variant van de volgende uitvoer:
Creating a certificate in mykeyvault called 'myCertificate' ... done.
Retrieving your certificate from mykeyvault.
Your certificate version is '8532359bced24e4bb2525f2d2050738a'.
Deleting your certificate from mykeyvault ... done
Purging your certificate from mykeyvault ... done
Volgende stappen
In deze quickstart hebt u een sleutelkluis gemaakt, een certificaat opgeslagen en dat certificaat opgehaald.
Zie de volgende artikelen voor meer informatie over Key Vault en hoe u Key Vault integreert met uw apps:
- Lees een Overzicht van Azure Key Vault
- Lees een Overzicht van certificaten
- Zie een zelfstudie over toegang tot Key Vault vanuit een App Service-toepassing
- Zie een zelfstudie voor toegang tot Key Vault vanaf een virtuele machine
- Zie de Gids voor Azure Key Vault-ontwikkelaars
- Bekijk de Key Vault beveiligingsoverzicht