Kurz: Použití odkazů služby Key Vault v aplikaci ASP.NET Core
V tomto kurzu se naučíte používat službu konfigurace Aplikace Azure společně se službou Azure Key Vault. Konfigurace aplikací a služba Key Vault jsou doplňkové služby používané vedle sebe ve většině nasazení aplikací.
App Configuration pomáhá používat služby společně vytvořením klíčů, které odkazují na hodnoty uložené ve službě Key Vault. Když App Configuration vytvoří takové klíče, uloží identifikátory URI hodnot služby Key Vault, nikoli samotné hodnoty.
Vaše aplikace používá zprostředkovatele klienta App Configuration k načtení odkazů služby Key Vault stejně jako u všech dalších klíčů uložených v App Configuration. V tomto případě jsou hodnoty uložené ve službě App Configuration identifikátory URI, které odkazují na hodnoty ve službě Key Vault. Nejedná se o hodnoty ani přihlašovací údaje služby Key Vault. Vzhledem k tomu, že zprostředkovatel klienta rozpozná klíče jako reference ke službě Key Vault, používá k načtení hodnot službu Key Vault.
Vaše aplikace zodpovídá za správné ověřování ve službě App Configuration i Key Vault. Dvě služby nekomunikují přímo.
V tomto kurzu se dozvíte, jak implementovat odkazy služby Key Vault do kódu. Vychází z webové aplikace představené v rychlém startu pro ASP.NET core uvedeným v následujících požadavcích. Než budete pokračovat, dokončete tento rychlý start.
Kroky v tomto kurzu můžete provést pomocí libovolného editoru kódu. Visual Studio Code je například editor kódu pro různé platformy, který je k dispozici pro operační systémy Windows, macOS a Linux.
V tomto kurzu se naučíte:
- Vytvořte klíč služby App Configuration, který odkazuje na hodnotu uloženou ve službě Key Vault.
- Přístup k hodnotě tohoto klíče z webové aplikace ASP.NET Core
Požadavky
Dokončete rychlý start: Vytvoření aplikace ASP.NET Core pomocí konfigurace aplikace.
Vytvoření trezoru
V levém horním rohu webu Azure Portal vyberte možnost Vytvořit prostředek:
Do vyhledávacího pole zadejte Key Vault a z rozevíracího seznamu vyberte Key Vault .
V seznamu výsledků vyberte trezory klíčů na levé straně.
V trezorech klíčů vyberte Přidat.
Napravo v okně Vytvořit trezor klíčů zadejte následující informace:
- Vyberte Předplatné a zvolte předplatné.
- Ve skupině prostředků zadejte název existující skupiny prostředků nebo vyberte Vytvořit novou a zadejte název skupiny prostředků.
- V názvu trezoru klíčů se vyžaduje jedinečný název.
- V rozevíracím seznamu Oblast zvolte umístění.
U ostatních možností vytvoření trezoru klíčů ponechte výchozí hodnoty.
Klikněte na Zkontrolovat a vytvořit.
Systém ověří a zobrazí zadaná data. Klikněte na Vytvořit.
V tuto chvíli je váš účet Azure jediným autorizovaným přístupem k tomuto novému trezoru.
Přidání tajného klíče do služby Key Vault
Pokud chcete do trezoru přidat tajný kód, musíte provést jenom několik dalších kroků. V tomto případě přidejte zprávu, kterou můžete použít k otestování načtení služby Key Vault. Zpráva se nazývá Zpráva a do ní uložíte hodnotu "Hello from Key Vault".
- Na stránkách vlastností služby Key Vault vyberte Tajné kódy.
- Vyberte Generovat/importovat.
- V podokně Vytvořit tajný kód zadejte následující hodnoty:
- Možnosti nahrávání: Zadejte ručně.
- Název: Zadejte zprávu.
- Hodnota: Zadejte Hello ze služby Key Vault.
- U ostatních vlastností vytvořit tajný kód ponechte výchozí hodnoty.
- Vyberte Vytvořit.
Přidání odkazu služby Key Vault do konfigurace aplikace
Přihlaste se k portálu Azure. Vyberte Všechny prostředky a pak vyberte instanci App Configuration Storu, kterou jste vytvořili v rychlém startu.
Vyberte Průzkumníka konfigurace.
Vyberte a vytvořte>odkaz na trezor klíčů a zadejte následující hodnoty:
- Klíč: Vyberte TestApp:Settings:KeyVaultMessage.
- Popisek: Ponechte tuto hodnotu prázdnou.
- Předplatné, skupina prostředků a trezor klíčů: Zadejte hodnoty odpovídající hodnotám v trezoru klíčů, který jste vytvořili v předchozí části.
- Tajný kód: Vyberte tajný kód s názvem Zpráva , kterou jste vytvořili v předchozí části.
Aktualizace kódu tak, aby používal referenční informace ke službě Key Vault
Přidejte odkaz na požadované balíčky NuGet spuštěním následujícího příkazu:
dotnet add package Azure.Identity
Otevřete Program.cs a přidejte odkazy na následující požadované balíčky:
using Azure.Identity;
Použijte konfiguraci aplikace voláním
AddAzureAppConfiguration
metody. Zahrňte možnostConfigureKeyVault
a předejte do služby Key Vault správné přihlašovací údaje pomocíSetCredential
této metody.var builder = WebApplication.CreateBuilder(args); // Retrieve the connection string string connectionString = builder.Configuration.GetConnectionString("AppConfig"); // Load configuration from Azure App Configuration builder.Configuration.AddAzureAppConfiguration(options => { options.Connect(connectionString); options.ConfigureKeyVault(keyVaultOptions => { keyVaultOptions.SetCredential(new DefaultAzureCredential()); }); });
Tip
Pokud máte více trezorů klíčů Key Vault, použijí se pro všechny stejné přihlašovací údaje. Pokud vaše trezory klíčů vyžadují jiné přihlašovací údaje, můžete je nastavit pomocí
Register
neboSetSecretResolver
metod zeAzureAppConfigurationKeyVaultOptions
třídy.Když jste inicializovali připojení ke službě App Configuration, nastavili jste připojení ke službě Key Vault voláním
ConfigureKeyVault
metody. Po inicializaci můžete přistupovat k hodnotám odkazů služby Key Vault stejným způsobem jako k hodnotám běžných klíčů App Configuration.Chcete-li zobrazit tento proces v akci, otevřete Index.cshtml ve složce Domovská stránka zobrazení>. Jeho obsah nahraďte následujícím kódem.
@page @using Microsoft.Extensions.Configuration @inject IConfiguration Configuration <style> body { background-color: @Configuration["TestApp:Settings:BackgroundColor"] } h1 { color: @Configuration["TestApp:Settings:FontColor"]; font-size: @Configuration["TestApp:Settings:FontSize"]px; } </style> <h1>@Configuration["TestApp:Settings:Message"] and @Configuration["TestApp:Settings:KeyVaultMessage"]</h1>
K hodnotě služby Key Vault se odkazuje testApp :Settings:KeyVaultMessage stejným způsobem jako pro konfigurační hodnotu TestApp:Settings:Message.
Udělení přístupu aplikace ke službě Key Vault
Aplikace Azure Konfigurace nebude přistupovat k vašemu trezoru klíčů. Vaše aplikace bude číst ze služby Key Vault přímo, takže musíte aplikaci udělit přístup k tajným kódům ve vašem trezoru klíčů. Tajný kód tak zůstane vždy ve vaší aplikaci. Přístup je možné udělit pomocí zásad přístupu ke službě Key Vault nebo řízení přístupu na základě role v Azure.
Použijete DefaultAzureCredential
ho ve výše uvedeném kódu. Jedná se o agregované přihlašovací údaje tokenu, které automaticky zkouší několik typů přihlašovacích údajů, jako EnvironmentCredential
je , ManagedIdentityCredential
, SharedTokenCacheCredential
a VisualStudioCredential
. Další informace naleznete v tématu DefaultAzureCredential Třída. Explicitně můžete nahradit DefaultAzureCredential
libovolným typem přihlašovacích údajů. Použití DefaultAzureCredential
však umožňuje mít stejný kód, který běží v místním prostředí i v prostředíCh Azure. Například udělíte svému trezoru klíčů vlastní přístup k přihlašovacím údajům. DefaultAzureCredential
automaticky se vrátí do SharedTokenCacheCredential
sady Visual Studio nebo VisualStudioCredential
při použití sady Visual Studio pro místní vývoj.
Případně můžete nastavit proměnné prostředí AZURE_TENANT_ID, AZURE_CLIENT_ID a AZURE_CLIENT_SECRET a DefaultAzureCredential
použít tajný klíč klienta, který máte k ověření ve svém trezoru EnvironmentCredential
klíčů. Po nasazení aplikace do služby Azure s povolenou spravovanou identitou, jako je Aplikace Azure Service, Azure Kubernetes Service nebo Azure Container Instance, udělíte spravovanou identitu služby Azure oprávnění pro přístup k vašemu trezoru klíčů. DefaultAzureCredential
automaticky se používá ManagedIdentityCredential
, když je vaše aplikace spuštěná v Azure. Stejnou spravovanou identitu můžete použít k ověření pomocí konfigurace aplikace i služby Key Vault. Další informace najdete v tématu Použití spravovaných identit pro přístup ke službě App Configuration.
Sestavení a místní spuštění aplikace
Pokud chcete aplikaci sestavit pomocí rozhraní příkazového řádku .NET CLI, spusťte v příkazovém prostředí následující příkaz:
dotnet build
Po dokončení sestavení spusťte webovou aplikaci místně pomocí následujícího příkazu:
dotnet run
Otevřete okno prohlížeče a přejděte na
http://localhost:5000
výchozí adresu URL webové aplikace hostované místně.
Vyčištění prostředků
Pokud nechcete dál používat prostředky vytvořené v tomto článku, odstraňte skupinu prostředků, kterou jste tady vytvořili, abyste se vyhnuli poplatkům.
Důležité
Odstranění skupiny prostředků je nevratné. Skupina prostředků a všechny prostředky v ní se trvale odstraní. Ujistěte se, že omylem neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro tento článek ve skupině prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte jednotlivé prostředky z příslušného podokna místo odstranění skupiny prostředků.
- Přihlaste se k webu Azure Portal a vyberte skupiny prostředků.
- Do pole Filtrovat podle názvu zadejte název vaší skupiny prostředků.
- V seznamu výsledků vyberte název skupiny prostředků, abyste zobrazili přehled.
- Vyberte Odstranit skupinu prostředků.
- Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Potvrďte název skupiny prostředků a vyberte Odstranit.
Po chvíli se skupina prostředků a všechny její prostředky odstraní.
Další kroky
V tomto kurzu jste vytvořili klíč ve službě App Configuration, který odkazuje na tajný klíč uložený ve službě Key Vault. Pokud chcete zjistit, jak automaticky načíst tajné kódy a certifikáty ze služby Key Vault, pokračujte dalším kurzem:
Informace o tom, jak pomocí spravované identity zjednodušit přístup ke službě App Configuration a Key Vault, najdete v následujícím kurzu: