.NET Aspire Azure Key Vault integrering
I den här artikeln får du lära dig hur du använder .NET AspireAzure Key Vault integrering. Integreringsbiblioteket för Aspire.Azure.Key.Vault
används för att registrera en SecretClient i DI-containern för anslutning till Azure Key Vault. Det möjliggör även motsvarande hälsokontroller, loggning och telemetri.
Sätta igång
Kom igång med .NET AspireAzure Key Vault-integrationen genom att installera 📦Aspire.Azure.Security.KeyVault NuGet-paketet i projektet som förbrukar client, dvs. projektet för programmet som använder Azure Key Vaultclient.
dotnet add package Aspire.Azure.Security.KeyVault
Mer information finns i dotnet add package eller i Hantera paketberoenden i .NET applikationer.
Exempel på användning
Följande avsnitt beskriver olika exempelanvändningar.
Lägga till hemligheter i konfigurationen
I den Program.cs-filen för ditt client-förbrukande projekt anropar du AddAzureKeyVaultSecrets-tillägget för att lägga till hemligheterna som finns i Azure Key Vault till programmets konfiguration. Metoden tar en parameter för anslutningsnamn.
builder.Configuration.AddAzureKeyVaultSecrets("secrets");
Du kan sedan hämta en hemlighet via vanliga IConfiguration API:er. Om du till exempel vill hämta en hemlighet från en tjänst:
public class ExampleService(IConfiguration configuration)
{
string secretValue = configuration["secretKey"];
// Use secretValue ...
}
Använd SecretClient
Du kan också använda en SecretClient
för att hämta hemligheterna på begäran. I den Program.cs-filen för ditt client-förbrukande projekt anropar du AddAzureKeyVaultClient-tillägget för att registrera en SecretClient
som ska användas via dependency injection-behållaren.
builder.AddAzureKeyVaultClient("secrets");
Du kan hämta SecretClient-instansen sedan med hjälp av beroendeinjektion. Om du till exempel vill hämta client från en tjänst:
public class ExampleService(SecretClient client)
{
// Use client...
}
Appvärdanvändning
Om du vill lägga till Azure Key Vault hostingstöd i din IDistributedApplicationBuilderinstallerar du 📦Aspire.Hosting.Azure.KeyVault NuGet-paket i appvärd projekt.
dotnet add package Aspire.Hosting.Azure.KeyVault
I appvärdprojektet registrerar du Azure Key Vault-integreringen och använder tjänsten med hjälp av följande metoder:
var builder = DistributedApplication.CreateBuilder(args);
var secrets = builder.ExecutionContext.IsPublishMode
? builder.AddAzureKeyVault("secrets")
: builder.AddConnectionString("secrets");
builder.AddProject<Projects.ExampleProject>()
.WithReference(secrets)
Föregående kod lägger villkorligt till resurs Azure Key Vault i projektet baserat på exekveringskontexten. Om appvärden körs i publiceringsläge läggs resursen till, annars läggs anslutningssträngen till en befintlig resurs.
Konfiguration
.NET Aspire
Azure Key Vault-integreringen innehåller flera alternativ för att konfigurera SecretClient
baserat på kraven och konventionerna i projektet.
Använda konfigurationsprovidrar
.NET Aspire
Azure Key Vault-integreringen stöder Microsoft.Extensions.Configuration. Den läser in AzureSecurityKeyVaultSettings från appsettings.json eller andra konfigurationsfiler med hjälp av Aspire:Azure:Security:KeyVault
nyckel.
{
"Aspire": {
"Azure": {
"Security": {
"KeyVault": {
"VaultUri": "YOUR_VAULT_URI",
"DisableHealthChecks": false,
"DisableTracing": true,
"ClientOptions": {
"DisableChallengeResourceVerification": true
}
}
}
}
}
}
Om du har konfigurerat konfigurationerna i avsnittet Aspire:Azure:Security:KeyVault
i filen appsettings.json kan du bara anropa metoden AddAzureKeyVaultSecrets
utan att skicka några parametrar.
Använd inline-delegater
Du kan också använda Action<AzureSecurityKeyVaultSettings>
delegering för att konfigurera vissa eller alla alternativ direkt, till exempel för att ange VaultUri
:
builder.AddAzureKeyVaultSecrets(
"secrets",
static settings => settings.VaultUri = new Uri("YOUR_VAULTURI"));
Tips
Det AddAzureKeyVaultSecrets
API-namnet har orsakat lite förvirring. Metoden används för att konfigurera SecretClient
och inte för att lägga till hemligheter i konfigurationen.
Du kan också konfigurera SecretClientOptions med Action<IAzureClientBuilder<SecretClient, SecretClientOptions>>
-delegat, den andra parametern i metoden AddAzureKeyVaultSecrets
. Du kan till exempel ange KeyClientOptions.DisableChallengeResourceVerification-ID:t för att identifiera client:
builder.AddAzureKeyVaultSecrets(
"secrets",
static clientBuilder =>
clientBuilder.ConfigureOptions(
static options => options.DisableChallengeResourceVerification = true))
Konfigurationsalternativ
Följande konfigurerbara alternativ exponeras via klassen AzureSecurityKeyVaultSettings:
Namn | Beskrivning |
---|---|
VaultUri |
En URI till valvet som client fungerar på. Visas som "DNS-namn" i Azure-portalen. |
Credential |
De autentiseringsuppgifter som används för att komma åt Azure Key Vault. |
DisableHealthChecks |
Ett booleskt värde som anger om hälsokontrollen för Key Vault är inaktiverad eller inte. |
DisableTracing |
Ett booleskt värde som anger om OpenTelemetry spårning är inaktiverad eller inte. |
Hälsokontroller
Som standard aktiverar .NET.NET Aspire integreringar hälsokontroller för alla tjänster. Mer information finns i översikten över .NET.NET Aspire integreringar.
Integreringen .NET AspireAzure Key Vault innehåller följande hälsokontroller:
- Lägger till
AzureKeyVaultSecretsHealthCheck
hälsokontroll, som försöker ansluta till och utföra frågor mot Key Vault. - Integrerar med
/health
HTTP-slutpunkt, som anger att alla registrerade hälsokontroller måste godkännas för att appen ska betraktas som redo att ta emot trafik
Observerbarhet och telemetri
.NET .NET Aspire integreringar konfigurerar automatiskt konfigurationer för loggning, spårning och mått, som ibland kallas grundpelarna för observerbarhet. Mer information om integreringsobservabilitet och telemetri finns i översikten över .NET.NET Aspire integreringar. Beroende på säkerhetskopieringstjänsten kanske vissa integreringar bara stöder vissa av dessa funktioner. Vissa integreringar stöder till exempel loggning och spårning, men inte mått. Telemetrifunktioner kan också inaktiveras med hjälp av de tekniker som visas i avsnittet Configuration.
Skogsavverkning
.NET Aspire Azure Key Vault-integreringen använder följande loggkategorier:
Azure.Core
Azure.Identity
Spårning
.NET Aspire Azure Key Vault-integreringen genererar följande spårningsaktiviteter med hjälp av OpenTelemetry:
- "Azure.Security.KeyVault.Secrets.SecretClient"
Mått
Den .NET AspireAzure Key Vault integreringen stöder för närvarande inte mått som standard på grund av begränsningar med Azure SDK.
Se även
.NET Aspire