Kurz: Použití Key Vault referencí v ASP.NET Core aplikaci

V tomto kurzu se naučíte používat službu Azure App Configuration společně s Azure Key Vault. App Configuration a Key Vault jsou doplňkové služby, které se ve většině nasazení aplikací používají vedle sebe.

App Configuration vám pomůže používat služby společně vytvořením klíčů, které odkazují na hodnoty uložené v Key Vault. Když App Configuration takové klíče vytvoří, uloží identifikátory URI hodnot Key Vault místo samotných hodnot.

Aplikace používá poskytovatele klienta App Configuration k načtení Key Vault, stejně jako u všech ostatních klíčů uložených v App Configuration. V tomto případě jsou hodnoty uložené v App Configuration identifikátory URI, které odkazují na hodnoty v Key Vault. Nejsou to Key Vault hodnoty ani přihlašovací údaje. Vzhledem k tomu, že poskytovatel klienta rozpozná klíče Key Vault odkazy, používá Key Vault k načtení jejich hodnot.

Vaše aplikace zodpovídá za správné ověření v App Configuration i Key Vault. Tyto dvě služby nekomunikují přímo.

V tomto kurzu si ukážeme, jak Key Vault odkazy do kódu. Vychází z webové aplikace představené v rychlých startech. Než budete pokračovat, dokončete nejprve vytvoření ASP.NET Core aplikace App Configuration.

Kroky v tomto kurzu můžete provést v libovolném editoru kódu. Například Visual Studio Code je editor kódu pro více platforem, který je k dispozici pro operační systémy Windows, macOS a Linux.

V tomto kurzu se naučíte:

  • Vytvořte klíč App Configuration, který odkazuje na hodnotu uloženou v Key Vault.
  • Přístup k hodnotě tohoto klíče z ASP.NET Core aplikace.

Požadavky

Než začnete s tímto kurzem, nainstalujte si .NET Core SDK.

Pokud ještě nemáte předplatné Azure,vytvořte si bezplatný účet před tím, než začnete.

Vytvoření trezoru

  1. Vyberte možnost Vytvořit prostředek v levém horním rohu Azure Portal:

    Snímek obrazovky znázorňuje možnost Vytvořit prostředek v Azure Portal

  2. Do vyhledávacího pole zadejte Key Vault a v rozevíracím Key Vault vyberte Key Vault.

  3. V seznamu výsledků vyberte trezory klíčů na levé straně.

  4. V části Trezory klíčů vyberte Přidat.

  5. Napravo v části Vytvořit trezor klíčů zadejte následující informace:

    • Vyberte Předplatné a zvolte předplatné.
    • V části Skupina prostředků zadejte název existující skupiny prostředků nebo vyberte Vytvořit novou a zadejte název skupiny prostředků.
    • V části Název trezoru klíčů se vyžaduje jedinečný název.
    • V rozevíracím seznamu Oblast zvolte umístění.
  6. U ostatních možností vytvoření trezoru klíčů ponechte výchozí hodnoty.

  7. Klikněte na Zkontrolovat a vytvořit.

  8. Systém ověří a zobrazí zadaná data. Klikněte na Vytvořit.

V tuto chvíli je váš účet Azure jediným účtem s oprávněním pro přístup 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 udělat jenom pár dalších kroků. V tomto případě přidejte zprávu, kterou můžete použít k otestování Key Vault načtení. Zpráva se nazývá Message (Zpráva) a uloží se do ní hodnota "Hello from Key Vault".

  1. Na stránce Key Vault vlastností vyberte Tajné kódy.
  2. Vyberte Vygenerovat/importovat.
  3. V podokně Vytvořit tajný kód zadejte následující hodnoty:
    • Upload možnosti: Zadejte Ruční.
    • Název: Zadejte Message.
    • Hodnota: Zadejte Hello z Key Vault.
  4. U ostatních vlastností Vytvořit tajný kód ponechte výchozí hodnoty.
  5. Vyberte Vytvořit.

Přidání odkazu Key Vault do App Configuration

  1. Přihlaste se k webu Azure Portal. Vyberte Všechny prostředky a pak vyberte instanci App Configuration, kterou jste vytvořili v rychlém startu.

  2. Vyberte Configuration Explorer.

  3. Vyberte + Vytvořit odkaz na trezor klíčů a zadejte následující > hodnoty:

    • Klíč: Vyberte TestApp:Nastavení:KeyVaultMessage.
    • Popisek: Tuto hodnotu nechte 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 Message, který jste vytvořili v předchozí části.

Snímek obrazovky vytvoření nového Key Vault referenčního formuláře

Aktualizace kódu tak, aby se Key Vault referencí

  1. Přidejte odkaz na požadované NuGet balíčky spuštěním následujícího příkazu:

    dotnet add package Azure.Identity
    
  2. Otevřete soubor Program.cs a přidejte odkazy na následující požadované balíčky:

    using Azure.Identity;
    
  3. Aktualizujte CreateWebHostBuilder metodu tak, aby App Configuration, zavoláte config.AddAzureAppConfiguration metodu . ConfigureKeyVaultZahrřte možnost a předejte své přihlašovací údaje do Key Vault.

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            webBuilder.ConfigureAppConfiguration((hostingContext, config) =>
            {
                var settings = config.Build();
    
                config.AddAzureAppConfiguration(options =>
                {
                    options.Connect(settings["ConnectionStrings:AppConfig"])
                            .ConfigureKeyVault(kv =>
                            {
                                kv.SetCredential(new DefaultAzureCredential());
                            });
                });
            })
            .UseStartup<Startup>());
    
  4. Když jste inicializovali připojení App Configuration, nastavíte připojení pro Key Vault voláním ConfigureKeyVault metody . Po inicializaci můžete přistupovat k hodnotám Key Vault stejným způsobem, jakým přistupuje k hodnotám běžných App Configuration klíčů.

    Pokud chcete vidět tento proces v akci, otevřete soubor Index.cshtml ve složce > Domů zobrazení. Jeho obsah nahraďte následujícím kódem.

    @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ě třídy testapp Key Vault testApp:Nastavení:KeyVaultMessage přistupujte stejným způsobem jako k hodnotě konfigurace TestApp:Nastavení:Message.

Udělení přístupu k Key Vault

Azure App Configuration nebude mít přístup k vašemu trezoru klíčů. Vaše aplikace bude číst z Key Vault, takže aplikaci musíte udělit přístup pro čtení k tajným kódům ve vašem trezoru klíčů. Tímto způsobem tajný kód vždy zůstane s vaší aplikací. Přístup je možné udělit pomocí zásad přístupu Key Vault nebo řízení přístupu na základě role v Azure.

Ve DefaultAzureCredential výše uvedeném kódu použijete . Jedná se o agregované přihlašovací údaje tokenu, které automaticky zkouší několik typů přihlašovacích údajů, například EnvironmentCredential , ManagedIdentityCredential , a SharedTokenCacheCredential VisualStudioCredential . Další informace najdete v tématu Třída DefaultAzureCredential. Můžete explicitně nahradit DefaultAzureCredential libovolným typem přihlašovacích údajů. Použití ale umožňuje mít stejný kód, který běží v místním prostředí DefaultAzureCredential i v prostředí Azure. Například udělíte přístup k trezoru klíčů vlastním přihlašovacím údajům. DefaultAzureCredentialse automaticky vrátí k SharedTokenCacheCredential nebo VisualStudioCredential , když použijete Visual Studio pro místní vývoj.

Alternativně můžete nastavit proměnné prostředí AZURE_TENANT_ID, AZURE_CLIENT_ID AZURE_CLIENT_SECRET AZURE_CLIENT_SECRET použít tajný klíč klienta, který máte prostřednictvím , k ověření ve vašem DefaultAzureCredential EnvironmentCredential trezoru klíčů. Po nasazení aplikace do služby Azure s povolenou spravovanou identitou, jako je Azure App Service, Azure Kubernetes Service nebo instance kontejneru Azure, udělíte spravované identitě služby Azure oprávnění pro přístup k trezoru klíčů. DefaultAzureCredential automaticky ManagedIdentityCredential používá, když je vaše aplikace spuštěná v Azure. Stejnou spravovanou identitu můžete použít k ověřování pomocí App Configuration i Key Vault. Další informace najdete v tématu Použití spravovaných identit pro přístup k App Configuration.

Místní sestavení a spuštění aplikace

  1. Pokud chcete sestavit aplikaci pomocí .NET Core CLI, spusťte v příkazovém prostředí následující příkaz:

    dotnet build
    
  2. Po dokončení sestavení spusťte webovou aplikaci místně pomocí následujícího příkazu:

    dotnet run
    
  3. Otevřete okno prohlížeče a přejděte na adresu , což je výchozí adresa URL pro http://localhost:5000 místně hostovanou webovou aplikaci.

    Rychlý start ke spuštění místní aplikace

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 předešli 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 nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro tento článek v rámci skupiny prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte všechny prostředky jednotlivě z příslušného podokna, místo aby se odstranila skupina prostředků.

  1. Přihlaste se k Azure Portala vyberte skupiny prostředků.
  2. Do pole filtrovat podle názvu zadejte název vaší skupiny prostředků.
  3. V seznamu výsledků vyberte název skupiny prostředků, aby se zobrazil přehled.
  4. Vyberte Odstranit skupinu prostředků.
  5. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Zadejte název vaší skupiny prostředků, který chcete potvrdit, a vyberte Odstranit.

Po chvíli se odstraní skupina prostředků a všechny její prostředky.

Další kroky

V tomto kurzu jste vytvořili klíč v App Configuration který odkazuje na tajný kód uložený v Key Vault. Informace o automatickém opětovném načtení tajných kódů a certifikátů z Key Vault najdete v dalším kurzu:

Informace o použití spravované identity ke zjednodušení přístupu k App Configuration a Key Vault najdete v následujícím kurzu: