intégration de .NET AspireAzure Key Vault
Dans cet article, vous allez apprendre à utiliser l’intégration .NET AspireAzure Key Vault. La bibliothèque d’intégration Aspire.Azure.Key.Vault
est utilisée pour inscrire un SecretClient dans le conteneur DI pour la connexion à Azure Key Vault. Il active également les vérifications d’intégrité correspondantes, la journalisation et la télémétrie.
Démarrer
Pour commencer à utiliser l’intégration .NET AspireAzure Key Vault, installez le 📦Aspire.Azure. Security.KeyVault package NuGet dans le projet clientconsommant, c’est-à-dire le projet pour l’application qui utilise le Azure Key Vaultclient.
dotnet add package Aspire.Azure.Security.KeyVault
Pour plus d’informations, consultez dotnet add package ou Gérer les dépendances des packages dans les applications .NET.
Exemple d’utilisation
Les sections suivantes décrivent différents exemples d’utilisation.
Ajouter des secrets à la configuration
Dans le fichier Program.cs de votre projet qui consomme client, appelez l’extension AddAzureKeyVaultSecrets pour ajouter les secrets du Azure Key Vault à la configuration de l’application. La méthode prend un paramètre de nom de connexion.
builder.Configuration.AddAzureKeyVaultSecrets("secrets");
Vous pouvez ensuite récupérer un secret via des API normales IConfiguration. Par exemple, pour récupérer un secret à partir d’un service :
public class ExampleService(IConfiguration configuration)
{
string secretValue = configuration["secretKey"];
// Use secretValue ...
}
Utiliser SecretClient
Vous pouvez également utiliser une SecretClient
pour récupérer les secrets à la demande. Dans le fichier Program.cs de votre projet consommant client, appelez l’extension AddAzureKeyVaultClient pour enregistrer un SecretClient
pour utilisation via le conteneur d’injection de dépendances.
builder.AddAzureKeyVaultClient("secrets");
Vous pouvez ensuite récupérer l’instance SecretClient à l’aide de l’injection de dépendances. Par exemple, pour récupérer le client à partir d’un service :
public class ExampleService(SecretClient client)
{
// Use client...
}
Utilisation de l’hôte d’application
Pour ajouter
dotnet add package Aspire.Hosting.Azure.KeyVault
Dans votre projet hôte d’application, inscrivez l’intégration Azure Key Vault et consommez le service à l’aide des méthodes suivantes :
var builder = DistributedApplication.CreateBuilder(args);
var secrets = builder.ExecutionContext.IsPublishMode
? builder.AddAzureKeyVault("secrets")
: builder.AddConnectionString("secrets");
builder.AddProject<Projects.ExampleProject>()
.WithReference(secrets)
Le code précédent ajoute conditionnellement la ressource Azure Key Vault au projet en fonction du contexte d’exécution. Si l’hôte de l’application s’exécute en mode publication, la ressource est ajoutée sinon la chaîne de connexion à une ressource existante est ajoutée.
Configuration
L’intégration .NET AspireAzure Key Vault fournit plusieurs options pour configurer l'SecretClient
en fonction des exigences et des conventions de votre projet.
Utiliser des fournisseurs de configuration
L’intégration .NET AspireAzure Key Vault prend en charge Microsoft.Extensions.Configuration. Il charge le AzureSecurityKeyVaultSettings à partir de appsettings.json ou d’autres fichiers de configuration à l’aide de la clé Aspire:Azure:Security:KeyVault
.
{
"Aspire": {
"Azure": {
"Security": {
"KeyVault": {
"VaultUri": "YOUR_VAULT_URI",
"DisableHealthChecks": false,
"DisableTracing": true,
"ClientOptions": {
"DisableChallengeResourceVerification": true
}
}
}
}
}
}
Si vous avez configuré vos configurations dans la section Aspire:Azure:Security:KeyVault
de votre fichier appsettings.json, vous pouvez simplement appeler la méthode AddAzureKeyVaultSecrets
sans passer de paramètres.
Utiliser des délégués inline
Vous pouvez également transmettre le délégué Action<AzureSecurityKeyVaultSettings>
pour configurer certaines ou toutes les options en ligne, par exemple pour définir le VaultUri
:
builder.AddAzureKeyVaultSecrets(
"secrets",
static settings => settings.VaultUri = new Uri("YOUR_VAULTURI"));
Pourboire
Le nom de l’API AddAzureKeyVaultSecrets
a causé un peu de confusion. La méthode est utilisée pour configurer le SecretClient
et ne pas ajouter de secrets à la configuration.
Vous pouvez également configurer le SecretClientOptions en utilisant le délégué Action<IAzureClientBuilder<SecretClient, SecretClientOptions>>
, le deuxième paramètre de la méthode AddAzureKeyVaultSecrets
. Par exemple, pour définir l’ID de KeyClientOptions.DisableChallengeResourceVerification pour identifier le client:
builder.AddAzureKeyVaultSecrets(
"secrets",
static clientBuilder =>
clientBuilder.ConfigureOptions(
static options => options.DisableChallengeResourceVerification = true))
Options de configuration
Les options configurables suivantes sont exposées via la classe AzureSecurityKeyVaultSettings :
Nom | Description |
---|---|
VaultUri |
Une URI du coffre sur lequel fonctionne le client. Apparaît sous la forme « Nom DNS » dans le portail Azure. |
Credential |
Identifiant utilisé pour se connecter au Azure Key Vault. |
DisableHealthChecks |
Valeur booléenne qui indique si la vérification d’intégrité du coffre de clés est désactivée ou non. |
DisableTracing |
Valeur booléenne qui indique si le suivi OpenTelemetry est désactivé ou non. |
Vérifications d’intégrité
Par défaut, les intégrations .NET.NET Aspire permettent les contrôles d’intégrité pour tous les services. Pour plus d’informations, consultez .NET.NET Aspire vue d’ensemble des intégrations.
L’intégration .NET AspireAzure Key Vault inclut les vérifications de santé suivantes :
- Ajoute le contrôle d’intégrité
AzureKeyVaultSecretsHealthCheck
, qui tente de se connecter au coffre de clés et d’interroger celui-ci - S'intègre au point de terminaison HTTP
/health
, qui spécifie que toutes les vérifications de santé enregistrées doivent réussir pour que l'application soit considérée comme prête à accepter le trafic.
Observabilité et télémétrie
les intégrations .NET.NET Aspire paramètrent automatiquement la journalisation, le suivi et les métriques, parfois appelés les piliers de l’observabilité. Pour plus d’informations sur l’observabilité de l’intégration et la télémétrie, consultez .NET.NET Aspire vue d’ensemble des intégrations. Selon le service de stockage, certaines intégrations peuvent uniquement prendre en charge certaines de ces fonctionnalités. Par exemple, certaines intégrations prennent en charge la journalisation et le suivi, mais pas les métriques. Les fonctionnalités de télémétrie peuvent également être désactivées à l’aide des techniques présentées dans la section Configuration.
Exploitation forestière
L’intégration .NET AspireAzure Key Vault utilise les catégories de journaux suivantes :
Azure.Core
Azure.Identity
Traçage
L’intégration .NET AspireAzure Key Vault émet les activités de suivi suivantes à l’aide de OpenTelemetry:
- "Azure. Security.KeyVault.Secrets.SecretClient »
Mesures
L’intégration .NET AspireAzure Key Vault ne prend actuellement pas en charge les métriques par défaut en raison de limitations avec le SDK Azure.
Voir aussi
- Azure Key Vault docs
- intégrations .NET.NET Aspire
- .NET Aspire GitHub repo