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ých startech. Než budete pokračovat, nejprve dokončete vytvoření aplikace ASP.NET Core s konfigurací aplikace.

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

Před zahájením tohoto kurzu nainstalujte sadu .NET SDK 6.0 nebo novější.

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

Vytvoření trezoru

  1. V levém horním rohu webu Azure Portal vyberte možnost Vytvořit prostředek:

    Snímek obrazovky znázorňující možnost Vytvořit prostředek na webu Azure Portal

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

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

  4. V trezorech klíčů vyberte Přidat.

  5. 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í.
  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 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".

  1. Na stránkách vlastností služby Key Vault vyberte Tajné kódy.
  2. Vyberte Generovat/importovat.
  3. 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.
  4. U ostatních vlastností vytvořit tajný kód ponechte výchozí hodnoty.
  5. Vyberte Vytvořit.

Přidání odkazu služby Key Vault do konfigurace aplikace

  1. 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.

  2. Vyberte Průzkumníka konfigurace.

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

    • Klíč: Vyberte TestApp:Nastavení: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.

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

Aktualizace kódu tak, aby používal referenční informace ke službě Key Vault

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

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

    using Azure.Identity;
    
  3. Použijte konfiguraci aplikace voláním AddAzureAppConfiguration metody. Zahrňte možnost ConfigureKeyVault 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 nebo SetSecretResolver metod ze AzureAppConfigurationKeyVaultOptions třídy.

  4. 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 dostanete stejným způsobem jako pro konfigurační hodnotu TestApp:Nastavení Nastavení: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 EnvironmentCredentialje , ManagedIdentityCredential, SharedTokenCacheCredentiala 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

  1. 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
    
  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 http://localhost:5000výchozí adresu URL webové aplikace hostované místně.

    Rychlé zprovoznění 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 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ů.

  1. Přihlaste se k webu Azure Portal a 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ů, abyste zobrazili přehled.
  4. Vyberte Odstranit skupinu prostředků.
  5. 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: