integratie van .NET AspireAzure Key Vault
In dit artikel leert u hoe u de .NET AspireAzure Key Vault-integratie gebruikt. De Aspire.Azure.Key.Vault
-integratiebibliotheek wordt gebruikt om een SecretClient te registreren in de DI-container om verbinding te maken met Azure Key Vault. Het maakt ook bijbehorende statuscontroles, logboekregistratie en telemetrie mogelijk.
Aan de slag
Installeer het 📦Aspireom aan de slag te gaan met de .NET AspireAzure Key Vault-integratie. Installeer hetAzure.Security.KeyVault NuGet-pakket in het client-consumerende project, dat wil zeggen, het project voor de toepassing die gebruikmaakt van de Azure Key Vaultclient.
dotnet add package Aspire.Azure.Security.KeyVault
Zie dotnet pakket toevoegen of Pakketafhankelijkheden beheren in .NET toepassingenvoor meer informatie.
Voorbeeld van gebruik
In de volgende secties worden verschillende voorbeeldgebruiken beschreven.
Geheimen toevoegen aan configuratie
Roep in het Program.cs-bestand van uw client-verbruikende project de AddAzureKeyVaultSecrets-extensie aan om de geheimen in de Azure Key Vault toe te voegen aan de configuratie van de applicatie. De methode gebruikt een verbindingsnaamparameter.
builder.Configuration.AddAzureKeyVaultSecrets("secrets");
Vervolgens kunt u een geheim ophalen via normale IConfiguration API's. Bijvoorbeeld om een geheim op te halen uit een service:
public class ExampleService(IConfiguration configuration)
{
string secretValue = configuration["secretKey"];
// Use secretValue ...
}
Gebruik SecretClient
U kunt ook een SecretClient
gebruiken om de geheimen op aanvraag op te halen. Roep in het Program.cs-bestand van uw clientverbruikende project de AddAzureKeyVaultClient-extensie aan om een SecretClient
te registreren voor gebruik via de container voor afhankelijkheidsinjectie.
builder.AddAzureKeyVaultClient("secrets");
Vervolgens kunt u het SecretClient exemplaar ophalen met behulp van afhankelijkheidsinjectie. Bijvoorbeeld, om de client op te halen uit een service:
public class ExampleService(SecretClient client)
{
// Use client...
}
App-hostgebruik
Als u
dotnet add package Aspire.Hosting.Azure.KeyVault
Registreer in uw app-hostproject de Azure Key Vault integratie en gebruik de service met behulp van de volgende methoden:
var builder = DistributedApplication.CreateBuilder(args);
var secrets = builder.ExecutionContext.IsPublishMode
? builder.AddAzureKeyVault("secrets")
: builder.AddConnectionString("secrets");
builder.AddProject<Projects.ExampleProject>()
.WithReference(secrets)
Met de voorgaande code wordt de Azure Key Vault resource voorwaardelijk aan het project toegevoegd op basis van de uitvoeringscontext. Als de app-host wordt uitgevoerd in de publicatiemodus, wordt de resource toegevoegd, anders wordt de verbindingsreeks aan een bestaande resource toegevoegd.
Configuratie
De .NET AspireAzure Key Vault-integratie biedt meerdere opties voor het configureren van de SecretClient
op basis van de vereisten en conventies van uw project.
Configuratieproviders gebruiken
De .NET AspireAzure Key Vault-integratie ondersteunt Microsoft.Extensions.Configuration. Het laadt de AzureSecurityKeyVaultSettings uit appsettings.json of andere configuratiebestanden met behulp van Aspire:Azure:Security:KeyVault
sleutel.
{
"Aspire": {
"Azure": {
"Security": {
"KeyVault": {
"VaultUri": "YOUR_VAULT_URI",
"DisableHealthChecks": false,
"DisableTracing": true,
"ClientOptions": {
"DisableChallengeResourceVerification": true
}
}
}
}
}
}
Als u uw configuraties hebt ingesteld in de sectie Aspire:Azure:Security:KeyVault
van uw appsettings.json-bestand, kunt u de methode AddAzureKeyVaultSecrets
aanroepen zonder parameters door te geven.
Gebruik inline delegates
U kunt ook de Action<AzureSecurityKeyVaultSettings>
delegate doorgeven om enkele of alle opties direct in te stellen, bijvoorbeeld om de VaultUri
in te stellen:
builder.AddAzureKeyVaultSecrets(
"secrets",
static settings => settings.VaultUri = new Uri("YOUR_VAULTURI"));
Tip
De AddAzureKeyVaultSecrets
API-naam heeft enige verwarring veroorzaakt. De methode wordt gebruikt om de SecretClient
te configureren en geen geheimen toe te voegen aan de configuratie.
U kunt de SecretClientOptions ook instellen met behulp van de Action<IAzureClientBuilder<SecretClient, SecretClientOptions>>
delegate, de tweede parameter van de AddAzureKeyVaultSecrets
-methode. Als u bijvoorbeeld de KeyClientOptions.DisableChallengeResourceVerification-id wilt instellen om de clientte identificeren:
builder.AddAzureKeyVaultSecrets(
"secrets",
static clientBuilder =>
clientBuilder.ConfigureOptions(
static options => options.DisableChallengeResourceVerification = true))
Configuratieopties
De volgende configureerbare opties worden weergegeven via de AzureSecurityKeyVaultSettings klasse:
Naam | Beschrijving |
---|---|
VaultUri |
Een URI naar de kluis waarop de client werkt. Wordt weergegeven als 'DNS-naam' in de Azure-portal. |
Credential |
Het authenticatiemiddel dat wordt gebruikt voor verificatie bij het Azure Key Vault-systeem. |
DisableHealthChecks |
Een Booleaanse waarde die aangeeft of de Key Vault-statuscontrole is uitgeschakeld of niet. |
DisableTracing |
Een booleaanse waarde die aangeeft of de OpenTelemetry tracering is uitgeschakeld of niet. |
Gezondheidscontroles
Standaard kunnen .NET.NET Aspire integraties statuscontroles voor alle services inschakelen. Zie .NET.NET Aspire overzicht van integratiesvoor meer informatie.
De .NET AspireAzure Key Vault-integratie bevat de volgende statuscontroles:
- Hiermee voegt u de
AzureKeyVaultSecretsHealthCheck
statuscontrole toe, waarmee verbinding wordt gemaakt met de Key Vault en er query's op wordt uitgevoerd - Kan worden geïntegreerd met het
/health
HTTP-eindpunt, waarbij alle geregistreerde gezondheidscontroles moeten slagen voordat de app als gereed wordt beschouwd om verkeer te accepteren.
Waarneembaarheid en telemetrie
.NET .NET Aspire integraties configureren automatisch logging-, tracing- en metrische configuraties, die ook wel bekend zijn als de pijlers van waarneembaarheid. Zie .NET.NET Aspire overzicht van integratieintegratiesvoor meer informatie over de waarneembaarheid en telemetrie van integraties. Afhankelijk van de back-upservice ondersteunen sommige integraties mogelijk slechts enkele van deze functies. Sommige integraties ondersteunen bijvoorbeeld logboekregistratie en tracering, maar geen metrische gegevens. Telemetriefuncties kunnen ook worden uitgeschakeld met behulp van de technieken die worden weergegeven in de sectie Configuratie.
Loggen
De .NET AspireAzure Key Vault-integratie maakt gebruik van de volgende logboekcategorieën:
Azure.Core
Azure.Identity
Tracering
De .NET AspireAzure Key Vault-integratie verzendt de volgende traceringsactiviteiten met behulp van OpenTelemetry:
- "Azure. Security.KeyVault.Secrets.SecretClient"
Statistieken
De .NET AspireAzure Key Vault-integratie biedt momenteel geen ondersteuning voor metrische gegevens vanwege beperkingen met de Azure SDK.