Sdílet prostřednictvím


integrace .NET AspireAzure Key Vault

V tomto článku se dozvíte, jak používat integraci .NET AspireAzure Key Vault. Knihovna integrace Aspire.Azure.Key.Vault slouží k registraci SecretClient v kontejneru DI pro připojení k Azure Key Vault. Umožňuje také odpovídající kontroly stavu, protokolování a telemetrii.

Začněte

Pokud chcete zahájit integraci .NET AspireAzure Key Vault, nainstalujte NuGet balíček 📦Aspire.Azure. Security.KeyVault do projektu client, tj. do projektu aplikace, která používá Azure Key Vaultclient.

dotnet add package Aspire.Azure.Security.KeyVault

Další informace najdete v tématu dotnet add package nebo Správa závislostí balíčků v .NET aplikacích.

Příklad využití

Následující části popisují různé příklady použití.

Přidání tajných kódů do konfigurace

V souboru Program.cs projektu, který využívá client, zavolejte rozšíření AddAzureKeyVaultSecrets, abyste přidali tajemství z Azure Key Vault do konfigurace aplikace. Metoda přebírá parametr názvu připojení.

builder.Configuration.AddAzureKeyVaultSecrets("secrets");

Tajný kód pak můžete načíst prostřednictvím normálních rozhraní API IConfiguration. Pokud například chcete načíst tajný kód ze služby:

public class ExampleService(IConfiguration configuration)
{
    string secretValue = configuration["secretKey"];
    // Use secretValue ...
}

Použijte SecretClient

Případně můžete použít SecretClient k načtení tajných kódů na vyžádání. V souboru Program.cs vašeho projektu, který využívá client, zavolejte rozšíření AddAzureKeyVaultClient a zaregistrujte SecretClient pro použití prostřednictvím kontejneru pro vkládání závislostí.

builder.AddAzureKeyVaultClient("secrets");

Potom můžete načíst instanci SecretClient pomocí injekce závislostí. Pokud chcete například načíst client ze služby:

public class ExampleService(SecretClient client)
{
    // Use client...
}

Využití hostitele aplikace

Pokud chcete do IDistributedApplicationBuilderpřidat podporu hostování Azure Key Vault, nainstalujte balíček NuGet 📦Aspire.Hosting.Azure.KeyVault v projektu hostitele aplikace .

dotnet add package Aspire.Hosting.Azure.KeyVault

V hostitelském projektu aplikace zaregistrujte integraci Azure Key Vault a pomocí následujících metod službu využijte:

var builder = DistributedApplication.CreateBuilder(args);

var secrets = builder.ExecutionContext.IsPublishMode
    ? builder.AddAzureKeyVault("secrets")
    : builder.AddConnectionString("secrets");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(secrets)

Předchozí kód podmíněně přidá Azure Key Vault zdroj do projektu na základě kontextu provádění. Pokud se hostitel aplikace spouští v režimu publikování, přidá se prostředek, jinak se přidá připojovací řetězec k existujícímu prostředku.

Konfigurace

Integrace .NET AspireAzure Key Vault poskytuje několik možností konfigurace SecretClient na základě požadavků a konvencí projektu.

Použití zprostředkovatelů konfigurace

Integrace .NET AspireAzure Key Vault podporuje Microsoft.Extensions.Configuration. Načte AzureSecurityKeyVaultSettings z appsettings.json nebo jiných konfiguračních souborů pomocí klíče Aspire:Azure:Security:KeyVault.

{
  "Aspire": {
    "Azure": {
      "Security": {
        "KeyVault": {
          "VaultUri": "YOUR_VAULT_URI",
          "DisableHealthChecks": false,
          "DisableTracing": true,
          "ClientOptions": {
            "DisableChallengeResourceVerification": true
          }
        }
      }
    }
  }
}

Pokud jste nastavili konfigurace v části Aspire:Azure:Security:KeyVault souboru appsettings.json, stačí zavolat metodu AddAzureKeyVaultSecrets bez předání parametrů.

Použití vložených delegátů

Můžete také předat delegáta Action<AzureSecurityKeyVaultSettings> k nastavení některých nebo všech možností in-line, například pro nastavení VaultUri:

builder.AddAzureKeyVaultSecrets(
    "secrets",
    static settings => settings.VaultUri = new Uri("YOUR_VAULTURI"));

Spropitné

Název rozhraní API AddAzureKeyVaultSecrets způsobil trochu nejasnosti. Metoda se používá ke konfiguraci SecretClient a nikoli k přidávání tajných kódů do konfigurace.

Můžete také nastavit SecretClientOptions pomocí Action<IAzureClientBuilder<SecretClient, SecretClientOptions>> delegáta, druhého parametru metody AddAzureKeyVaultSecrets. Pokud chcete například nastavit ID KeyClientOptions.DisableChallengeResourceVerification pro identifikaci client:

builder.AddAzureKeyVaultSecrets(
    "secrets",
    static clientBuilder =>
        clientBuilder.ConfigureOptions(
            static options => options.DisableChallengeResourceVerification = true))

Možnosti konfigurace

Prostřednictvím třídy AzureSecurityKeyVaultSettings jsou zpřístupněny následující konfigurovatelné možnosti:

Jméno Popis
VaultUri Identifikátor URI trezoru, na kterém client funguje. Na portálu Azure se zobrazí jako název DNS.
Credential Přihlašovací údaje použité pro autentizaci k Azure Key Vault.
DisableHealthChecks Logická hodnota označující, jestli je kontrola stavu služby Key Vault zakázaná nebo ne.
DisableTracing Logická hodnota označující, jestli je trasování OpenTelemetry zakázané nebo ne.

Kontroly stavu

Ve výchozím nastavení integrace .NET.NET Aspire umožňují kontroly stavu pro všechny služby. Pro podrobnější informace se podívejte na .NET.NET Aspire přehled integrací.

Integrace .NET AspireAzure Key Vault zahrnuje následující kontroly stavu:

  • Přidá kontrolu stavu AzureKeyVaultSecretsHealthCheck, která se pokusí připojit ke službě Key Vault a dotazovat se na ni.
  • Integruje se s koncovým bodem HTTP /health, který určuje, že všechny registrované kontroly stavu musí být úspěšné, aby byla aplikace považována za připravenou pro příjem přenosu.

Pozorovatelnost a telemetrie

.NET .NET Aspire integrace automaticky nastaví konfigurace protokolování, trasování a metrik, které se někdy označují jako pilíře pozorovatelnosti. Další informace o pozorovatelnosti a telemetrii integrace najdete v přehledu integrace .NET.NET Aspire. V závislosti na zálohovací službě můžou některé integrace podporovat pouze některé z těchto funkcí. Například některé integrace podporují protokolování a trasování, ale ne metriky. Funkce telemetrie je také možné zakázat pomocí technik uvedených v části Konfigurace.

Protokolování

Integrace .NET AspireAzure Key Vault používá následující kategorie protokolů:

  • Azure.Core
  • Azure.Identity

Trasování

Integrace .NET AspireAzure Key Vault bude pomocí OpenTelemetryemitovat následující aktivity trasování:

  • Azure.Security.KeyVault.Secrets.SecretClient

Metriky

Integrace .NET AspireAzure Key Vault v současné době nepodporuje metriky ve výchozím nastavení z důvodu omezení sady Azure SDK.

Viz také