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é
-
docs - integrace .NET.NET Aspire
- .NET Aspire GitHub úložiště