Azure Key Vault gebruiken om geheimen tijdens productietijd te beveiligen
Tip
Deze inhoud is een fragment uit het eBook, .NET Microservices Architecture for Containerized .NET Applications, beschikbaar op .NET Docs of als een gratis downloadbare PDF die offline kan worden gelezen.
Geheimen die zijn opgeslagen als omgevingsvariabelen of die zijn opgeslagen door het hulpprogramma Secret Manager, worden nog steeds lokaal en niet versleuteld op de computer opgeslagen. Een veiligere optie voor het opslaan van geheimen is Azure Key Vault, dat een veilige, centrale locatie biedt voor het opslaan van sleutels en geheimen.
Met het pakket Azure.Extensions.AspNetCore.Configuration.Secrets kan een ASP.NET Core-toepassing configuratiegegevens lezen uit Azure Key Vault. Als u geheimen uit een Azure Key Vault wilt gaan gebruiken, voert u de volgende stappen uit:
Registreer uw toepassing als een Azure AD-toepassing. (Toegang tot sleutelkluizen wordt beheerd door Azure AD.) Dit kan worden gedaan via de Azure-beheerportal.\
Als u wilt dat uw toepassing wordt geverifieerd met behulp van een certificaat in plaats van een wachtwoord of clientgeheim, kunt u ook de PowerShell-cmdlet New-AzADApplication gebruiken. Het certificaat dat u bij Azure Key Vault registreert, heeft alleen uw openbare sleutel nodig. Uw toepassing gebruikt de persoonlijke sleutel.
Geef de geregistreerde toepassing toegang tot de sleutelkluis door een nieuwe service-principal te maken. U kunt dit doen met behulp van de volgende PowerShell-opdrachten:
$sp = New-AzADServicePrincipal -ApplicationId "<Application ID guid>" Set-AzKeyVaultAccessPolicy -VaultName "<VaultName>" -ServicePrincipalName $sp.ServicePrincipalNames[0] -PermissionsToSecrets all -ResourceGroupName "<KeyVault Resource Group>"
Neem de sleutelkluis op als een configuratiebron in uw toepassing door de extensiemethode AzureKeyVaultConfigurationExtensions.AddAzureKeyVault aan te roepen wanneer u een IConfigurationRoot exemplaar maakt.
Houd er rekening mee dat voor het aanroepen AddAzureKeyVault
de toepassings-id is vereist die is geregistreerd en toegang heeft gekregen tot de sleutelkluis in de vorige stappen. U kunt ook eerst de Azure CLI-opdracht uitvoeren: az login
en vervolgens met behulp van een overbelasting hiervan AddAzureKeyVault
wordt een DefaultAzureCredential gebruikt in plaats van de client.
Belangrijk
U wordt aangeraden Azure Key Vault als laatste configuratieprovider te registreren, zodat configuratiewaarden van eerdere providers kunnen worden overschreven.
Aanvullende bronnen
Azure Key Vault gebruiken om toepassingsgeheimen te beveiligen
https://learn.microsoft.com/azure/architecture/multitenant-identityVeilige opslag van app-geheimen tijdens de ontwikkeling
https://learn.microsoft.com/aspnet/core/security/app-secretsGegevensbeveiliging configureren
https://learn.microsoft.com/aspnet/core/security/data-protection/configuration/overviewSleutelbeheer en levensduur van gegevensbescherming in ASP.NET Core
https://learn.microsoft.com/aspnet/core/security/data-protection/configuration/default-settings