Dodawanie usługi Key Vault do aplikacji internetowej przy użyciu programu Visual Studio Połączenie ed Services

Z tego samouczka dowiesz się, jak łatwo dodać wszystko, czego potrzebujesz, aby rozpocząć korzystanie z usługi Azure Key Vault w celu zarządzania wpisami tajnymi dla projektów internetowych w programie Visual Studio, niezależnie od tego, czy używasz ASP.NET Core, czy dowolnego typu projektu ASP.NET. Korzystając z funkcji usług Połączenie w programie Visual Studio, program Visual Studio może automatycznie dodać wszystkie pakiety NuGet i ustawienia konfiguracji, które należy połączyć z usługą Key Vault na platformie Azure.

Aby uzyskać szczegółowe informacje na temat zmian, które Połączenie ed Services wprowadza w projekcie w celu włączenia usługi Key Vault, zobacz Key Vault Połączenie ed Service — co się stało z moim projektem ASP.NET lub usługą Key Vault Połączenie ed Service — co się stało z moim projektem ASP.NET Core.

Wymagania wstępne

Dodawanie obsługi usługi Key Vault do projektu

Przed rozpoczęciem upewnij się, że logujesz się do programu Visual Studio. Zaloguj się przy użyciu tego samego konta, którego używasz dla subskrypcji platformy Azure. Następnie otwórz projekt internetowy ASP.NET 4.7.1 lub nowszy albo ASP.NET Core i wykonaj następujące kroki. Przedstawione kroki dotyczą programu Visual Studio 2022 w wersji 17.4. Przepływ może być nieco inny w przypadku innych wersji programu Visual Studio.

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt, do którego chcesz dodać obsługę usługi Key Vault, a następnie wybierz polecenie Dodaj> Połączenie ed Service. W obszarze Zależności usługi wybierz ikonę + . Zostanie wyświetlona strona Usługa połączona zawierająca usługi, które możesz dodać do projektu.

  2. W menu dostępnych usług wybierz pozycję Azure Key Vault i kliknij przycisk Dalej.

    Wybierz pozycję

  3. Wybierz subskrypcję, której chcesz użyć, a następnie jeśli masz już magazyn kluczy, którego chcesz użyć, wybierz ją i kliknij przycisk Dalej.

    Zrzut ekranu Przedstawiający wybieranie subskrypcji

  4. Jeśli nie masz istniejącej usługi Key Vault, kliknij pozycję Utwórz nowy magazyn kluczy. Zostanie wyświetlony monit o podanie grupy zasobów, lokalizacji i jednostki SKU.

    Zrzut ekranu przedstawiający ekran

  5. Na ekranie Konfigurowanie usługi Key Vault można zmienić nazwę zmiennej środowiskowej, która odwołuje się do identyfikatora URI usługi Key Vault. Parametry połączenia nie jest tutaj przechowywany; jest on przechowywany w magazynie kluczy.

    Zrzut ekranu przedstawiający Połączenie do usługi Azure Key Vault.

  6. Kliknij przycisk Dalej , aby przejrzeć podsumowanie zmian, a następnie zakończ.

Teraz nawiązane jest połączenie z usługą Key Vault i możesz uzyskać dostęp do wpisów tajnych w kodzie. Jeśli właśnie utworzono nowy magazyn kluczy, przetestuj go, tworząc wpis tajny, do którego można odwoływać się w kodzie. Wpis tajny można utworzyć przy użyciu witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure.

Zobacz przykłady kodu dotyczące pracy z wpisami tajnymi w bibliotece klienta wpisów tajnych usługi Azure Key Vault dla platformy .NET — przykłady kodu.

Konfigurowanie dostępu do magazynu kluczy

Jeśli magazyn kluczy jest uruchomiony na innym koncie Microsoft niż ten, który jest zalogowany w programie Visual Studio (na przykład magazyn kluczy jest uruchomiony na koncie służbowym, ale program Visual Studio korzysta z twojego konta prywatnego), zostanie wyświetlony błąd w pliku Program.cs, że program Visual Studio nie może uzyskać dostępu do magazynu kluczy. Aby rozwiązać ten problem, przejdź do witryny Azure Portal, otwórz magazyn kluczy i wybierz pozycję Kontrola dostępu (zarządzanie dostępem i tożsamościami), aby ustawić uprawnienia. Zobacz Zapewnianie dostępu do kluczy, certyfikatów i wpisów tajnych usługi Key Vault za pomocą kontroli dostępu opartej na rolach (RBAC) platformy Azure.

Uwaga

Starsze magazyny kluczy mogą używać starszego modelu zasad dostępu. Zaleca się migrowanie starszych magazynów kluczy do korzystania z kontroli dostępu opartej na rolach platformy Azure. Zobacz Kontrola dostępu oparta na rolach (RBAC) na platformie Azure a zasady dostępu.

Jak projekt ASP.NET Core jest modyfikowany

W tej sekcji przedstawiono dokładne zmiany wprowadzone w projekcie ASP.NET podczas dodawania połączonej usługi magazynu kluczy przy użyciu programu Visual Studio.

Dodano odwołania do ASP.NET Core

Wpływa na odwołania do pliku projektu .NET i odwołania do pakietu NuGet.

Typ Referencje
NuGet Microsoft.AspNetCore.AzureKeyVault.HostingStartup

Dodano pliki dla platformy ASP.NET Core

  • ConnectedService.jsondodano, w którym są rejestrowane niektóre informacje o Połączenie dostawcy usług, wersji i linku do dokumentacji.

Zmiany w pliku projektu dla ASP.NET Core

  • Dodano Połączenie grupy elementów usług i ConnectedServices.json pliku.

launchsettings.json zmiany dla ASP.NET Core

  • Dodano następujące wpisy zmiennej środowiskowej zarówno do profilu programu IIS Express, jak i profilu zgodnego z nazwą projektu internetowego:

      "environmentVariables": {
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONENABLED": "true",
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONVAULT": "<your keyvault URL>"
      }
    

Zmiany na platformie Azure dla ASP.NET Core

  • Utworzono grupę zasobów (lub użyto istniejącej).
  • Utworzono magazyn kluczy w określonej grupie zasobów.

Jak projekt ASP.NET Framework jest modyfikowany

W tej sekcji przedstawiono dokładne zmiany wprowadzone w projekcie ASP.NET podczas dodawania połączonej usługi magazynu kluczy przy użyciu programu Visual Studio.

Dodano odwołania do platformy ASP.NET Framework

Wpływa na odwołania do pliku projektu .NET i packages.config (odwołania NuGet).

Typ Referencje
.NETTO; Nuget Azure.Identity
.NETTO; Nuget Azure.Security.KeyVault.Keys
.NETTO; Nuget Azure.Security.key magazynu. Tajemnice

Ważne

Domyślnie jest zainstalowana wersja Azure.Identity 1.1.1, która nie obsługuje poświadczeń programu Visual Studio. Odwołanie do pakietu można zaktualizować ręcznie do wersji 1.2 lub nowszej przy użyciu poświadczeń programu Visual Studio.

Dodano pliki dla platformy ASP.NET

  • ConnectedService.jsondodano, który rejestruje niektóre informacje o Połączenie dostawcy usług, wersji i linku do dokumentacji.

Zmiany w pliku projektu dla platformy ASP.NET

  • Dodano Połączenie plik ItemGroup usług i Połączenie edServices.json.
  • Odwołania do zestawów platformy .NET opisanych w sekcji Dodano odwołania.

Następne kroki

Jeśli wykonano czynności opisane w tym samouczku, twoje uprawnienia usługi Key Vault są skonfigurowane do uruchamiania z własną subskrypcją platformy Azure, ale może to nie być pożądane w scenariuszu produkcyjnym. Tożsamość zarządzaną można utworzyć, aby zarządzać dostępem usługi Key Vault dla aplikacji. Zobacz How to Authenticate to Key Vault (Jak uwierzytelniać się w usłudze Key Vault) i Assign a Key Vault access policy (Przypisywanie zasad dostępu do usługi Key Vault).

Dowiedz się więcej o tworzeniu usługi Key Vault, czytając przewodnik dewelopera usługi Key Vault.

Jeśli twoim celem jest przechowywanie konfiguracji aplikacji ASP.NET Core w magazynie kluczy platformy Azure, zobacz Dostawca konfiguracji usługi Azure Key Vault w usłudze ASP.NET Core.