Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu použijete službu Azure App Configuration 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í.
Vaše aplikace může pomocí zprostředkovatele klienta App Configuration načíst odkazy na Key Vault stejně jako všechny ostatní klíče uložené v App Configuration. Když přidáte odkaz služby Key Vault na konfiguraci aplikace, vytvoří konfigurace aplikace klíč, který odkazuje na hodnotu uloženou ve službě Key Vault. Hodnota, kterou služba App Configuration ukládá, není hodnotou služby Key Vault ani přihlašovacími údaji. Místo toho se jedná o identifikátor URI, který odkazuje na hodnotu ve službě Key Vault. Vzhledem k tomu, že zprostředkovatel klienta rozpozná klíč jako odkaz služby Key Vault, použije k načtení jeho hodnoty 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é v požadavcích. Než budete pokračovat, dokončete tento úvod.
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ý návod k vytvoření aplikace ASP.NET Core s App Configuration.
Vytvořte trezor klíčů.
Přejděte na Azure portal a pak vyberte Vytvořit prostředek.
Do vyhledávacího pole zadejte Key Vault. V seznamu výsledků vyberte Key Vault.
Na stránce Služby Key Vault vyberte Vytvořit.
Na stránce Vytvořit trezor klíčů zadejte následující informace:
- Pro předplatné: Vyberte předplatné.
- Pro skupinu prostředků: Zadejte název existující skupiny prostředků nebo vyberte Vytvořit novou a zadejte název skupiny prostředků.
- Jako název trezoru klíčů zadejte jedinečný název.
- Pro oblast: Vyberte umístění.
Pro ostatní možnosti použijte výchozí hodnoty.
Vyberte možnost Zkontrolovat a vytvořit.
Jakmile systém ověří a zobrazí vaše vstupy, vyberte 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 otestovat načtení služby Key Vault ve vaší aplikaci, nejprve přidejte do trezoru tajný kód pomocí následujícího postupu. Tajný kód, který přidáte, se nazývá Zpráva a její hodnota je "Hello from Key Vault".
V nabídce prostředků služby Key Vault vyberte Objekty>Tajné klíče.
Vyberte Generovat/importovat.
V dialogovém okně Vytvořit tajný kód zadejte následující hodnoty:
- Možnosti pro nahrání: Zadejte Manuál.
- Název: Zadejte zprávu.
- Hodnota Tajného kódu: Zadejte Hello ze služby Key Vault.
Pro ostatní možnosti použijte 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 poté vyberte obchod App Configuration, který jste vytvořili v rámci rychlého startu.
Vyberte Průzkumníka konfigurace.
Vyberte Vytvořit>odkaz na Key Vault a zadejte následující hodnoty:
- Pro klíč: Zadejte TestApp:Settings:KeyVaultMessage.
- Popisek: Ponechte hodnotu prázdnou.
- V případě předplatného, skupiny prostředků a služby Key Vault: Zadejte hodnoty, které použijete při vytváření trezoru klíčů dříve v tomto kurzu.
- Tajný kód: Vyberte tajný kód s názvem Zpráva, kterou vytvoříte v předchozí části.
Aktualizace kódu tak, aby používal referenční informace ke službě Key Vault
Přejděte do složky, která obsahuje projekt webové aplikace ASP.NET Core, který jste vytvořili v rychlém startu.
Na příkazovém řádku spusťte následující příkaz. Tento příkaz přidá odkaz na
Azure.Identitybalíček NuGet do souboru projektu nebo ho aktualizuje.dotnet add package Azure.IdentityOtevřete soubor Program.cs. V sekci direktiv přidejte následující řádek pro importování typů z oboru názvů
Azure.Identity.using Azure.Identity;V Program.cs nahraďte volání
AddAzureAppConfigurationmetody voláním v následujícím kódu. Aktualizovaný hovor obsahujeConfigureKeyVaultmožnost. Tato možnost používá metoduSetCredentialk předání přihlašovacích údajů potřebných k ověření ve vašem trezoru klíčů.var builder = WebApplication.CreateBuilder(args); // Retrieve the App Configuration endpoint. string endpoint = builder.Configuration.GetValue<string>("Endpoints:AppConfiguration") // Load the configuration from App Configuration. builder.Configuration.AddAzureAppConfiguration(options => { options.Connect(new Uri(endpoint), new DefaultAzureCredential()); options.ConfigureKeyVault(keyVaultOptions => { keyVaultOptions.SetCredential(new DefaultAzureCredential()); }); });Tip
Pokud máte více trezorů klíčů, systém pro všechny používá stejné přihlašovací údaje. Pokud trezory klíčů vyžadují jiné přihlašovací údaje, můžete je nastavit pomocí
Registermetod neboSetSecretResolvermetodAzureAppConfigurationKeyVaultOptionstřídy.Pokud chcete získat přístup k hodnotám odkazů služby Key Vault v kódu, přejděte do složky Pages v projektu. Otevřete Soubor Index.cshtml a nahraďte jeho obsah následujícím kódem. Kód v předchozím bloku inicializuje připojení konfigurace aplikace a nastaví připojení ke službě Key Vault. V důsledku toho můžete v souboru Index.cshtml přistupovat k hodnotám služby Key Vault stejným způsobem, jakým přistupujete k hodnotám běžných klíčů konfigurace aplikací.
@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>Tento kód přistupuje k hodnotě odkazu
TestApp:Settings:KeyVaultMessageslužby Key Vault stejným způsobem, jakým přistupuje ke konfigurační hodnotěTestApp:Settings:Message.
Udělení přístupu aplikace ke službě Key Vault
App Configuration nemá přístup k vašemu trezoru klíčů. Místo toho aplikace čte 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íčů. Tímto způsobem zůstanou tajné kódy vždy ve vaší aplikaci. K udělení přístupu můžete použít zásady přístupu ke službě Key Vault nebo řízení přístupu na základě role v Azure .
Kód v tomto kurzu používá DefaultAzureCredential třídu pro ověřování. Tato agregovaná pověření tokenu se automaticky pokusí o několik typů přihlašovacích údajů, jako jsou EnvironmentCredential, ManagedIdentityCredential, SharedTokenCacheCredentiala VisualStudioCredential. Další informace naleznete v tématu DefaultAzureCredential Třída.
Můžete nahradit DefaultAzureCredential libovolným explicitním typem přihlašovacích údajů. Když ale použijete DefaultAzureCredential, může se váš kód spouštět v místních prostředích a prostředích Azure. Například když vaše aplikace běží v Azure, DefaultAzureCredential použije ManagedIdentityCredential. Ale když používáte Visual Studio pro místní vývoj, DefaultAzureCredential automaticky se vrátí zpět do SharedTokenCacheCredential nebo VisualStudioCredential.
Alternativně můžete nastavit AZURE_TENANT_IDproměnné , AZURE_CLIENT_IDa AZURE_CLIENT_SECRET prostředí. Když to uděláte, DefaultAzureCredential použije tyto proměnné a poté se EnvironmentCredential autentizuje s vaším úložištěm klíčů.
Po nasazení aplikace do služby Azure s povolenou spravovanou identitou, jako je Azure App Service, Azure Kubernetes Service nebo Azure Container Instance, udělíte spravovanou identitu služby Azure oprávnění pro přístup k 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 na příkazovém řádku následující příkaz:
dotnet buildPo dokončení sestavení spusťte webovou aplikaci místně pomocí následujícího příkazu:
dotnet runVe výstupu
dotnet runpříkazu najděte adresu URL, na které webová aplikace naslouchá, napříkladhttp://localhost:5292. Otevřete prohlížeč a přejděte na danou adresu URL.
Text na webové stránce obsahuje následující součásti:
- Hodnota přidružená ke klíči
TestApp:Settings:Messagev úložišti konfigurace aplikace - Hodnota tajného kódu zprávy uloženého v trezoru klíčů
- Hodnota přidružená ke klíči
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í.