Uzyskiwanie dostępu do usługi App Configuration przy użyciu tożsamości zarządzanych

Tożsamości zarządzane przez firmę Microsoft entra upraszczają zarządzanie wpisami tajnymi dla aplikacji w chmurze. Za pomocą tożsamości zarządzanej kod może używać jednostki usługi utworzonej dla usługi platformy Azure, w której działa. Używasz tożsamości zarządzanej zamiast oddzielnego poświadczenia przechowywanego w usłudze Azure Key Vault lub lokalnej parametry połączenia.

aplikacja systemu Azure Configuration i jego biblioteki klienckie .NET, .NET Framework i Java Spring mają wbudowaną obsługę tożsamości zarządzanej. Mimo że nie jest wymagane do korzystania z niej, tożsamość zarządzana eliminuje potrzebę tokenu dostępu zawierającego wpisy tajne. Kod może uzyskiwać dostęp do magazynu App Configuration przy użyciu tylko punktu końcowego usługi. Ten adres URL można osadzić bezpośrednio w kodzie bez uwidaczniania wpisu tajnego.

W tym artykule pokazano, jak można korzystać z tożsamości zarządzanej w celu uzyskania dostępu do usługi App Configuration. Opiera się on na aplikacji internetowej wprowadzonej w przewodnikach Szybki start. Przed kontynuowaniem najpierw utwórz aplikację ASP.NET Core za pomocą usługi App Configuration .

W tym artykule pokazano, jak można korzystać z tożsamości zarządzanej w celu uzyskania dostępu do usługi App Configuration. Opiera się on na aplikacji internetowej wprowadzonej w przewodnikach Szybki start. Przed kontynuowaniem najpierw utwórz aplikację Java Spring z aplikacja systemu Azure Configuration.

Ważne

Tożsamości zarządzanej nie można używać do uwierzytelniania lokalnie uruchomionych aplikacji. Aplikacja musi zostać wdrożona w usłudze platformy Azure, która obsługuje tożsamość zarządzaną. W tym artykule jako przykład użyto usługi aplikacja systemu Azure Service. Jednak ta sama koncepcja dotyczy każdej innej usługi platformy Azure obsługującej tożsamość zarządzaną. Na przykład usługa Azure Kubernetes Service, maszyna wirtualna platformy Azure i usługa Azure Container Instances. Jeśli obciążenie jest hostowane w jednej z tych usług, możesz również skorzystać z obsługi tożsamości zarządzanej usługi.

Aby wykonać kroki opisane w tym samouczku, możesz użyć dowolnego edytora kodu. Program Visual Studio Code to doskonała opcja dostępna na platformach Windows, macOS i Linux.

W tym artykule omówiono sposób wykonywania następujących zadań:

  • Udzielanie tożsamości zarządzanej dostępu do usługi App Configuration.
  • Skonfiguruj aplikację tak, aby korzystała z tożsamości zarządzanej podczas nawiązywania połączenia z usługą App Configuration.

Wymagania wstępne

Do ukończenia tego samouczka niezbędne są następujące elementy:

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Dodawanie tożsamości zarządzanej

Aby skonfigurować tożsamość zarządzaną w portalu, należy najpierw utworzyć aplikację, a następnie włączyć tę funkcję.

  1. Uzyskaj dostęp do zasobu usługi App Services w witrynie Azure Portal. Jeśli nie masz istniejącego zasobu usługi App Services do użycia, utwórz go.

  2. Przewiń w dół do grupy Ustawienia w okienku po lewej stronie i wybierz pozycję Tożsamość.

  3. Na karcie Przypisane przez system przełącz pozycję Stan na Wł., a następnie wybierz pozycję Zapisz.

  4. Po wyświetleniu monitu odpowiedz Tak , aby włączyć tożsamość zarządzaną przypisaną przez system.

    Screenshot of how to add a managed identity in App Service.

Udzielanie dostępu do usługi App Configuration

W poniższych krokach opisano sposób przypisywania roli Czytelnik danych konfiguracji aplikacji do usługi App Service. Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.

  1. W witrynie Azure Portal wybierz sklep App Configuration.

  2. Wybierz pozycję Kontrola dostępu (IAM) .

  3. Wybierz pozycję Dodaj>Dodaj przypisanie roli.

    Screenshot that shows the Access control (IAM) page with Add role assignment menu open.

    Jeśli nie masz uprawnień do przypisywania ról, opcja Dodaj przypisanie roli zostanie wyłączona. Aby uzyskać więcej informacji, zobacz Role wbudowane platformy Azure.

  4. Na karcie Rola wybierz rolę Czytelnik danych konfiguracji aplikacji, a następnie wybierz pozycję Dalej.

    Screenshot that shows the Add role assignment page with Role tab selected.

  5. Na karcie Członkowie wybierz pozycję Tożsamość zarządzana, a następnie wybierz pozycję Wybierz członków.

    Screenshot that shows the Add role assignment page with Members tab selected.

  6. Wybierz subskrypcję platformy Azure, w polu Tożsamość zarządzana wybierz pozycję App Service, a następnie wybierz nazwę usługi App Service.

    Screenshot that shows the select managed identities page.

  7. Na karcie Przeglądanie i przypisywanie wybierz pozycję Przejrzyj i przypisz, aby przypisać rolę.

Korzystanie z tożsamości zarządzanej

  1. Dodaj odwołanie do Azure.Identity pakietu:

    dotnet add package Azure.Identity
    
  2. Znajdź punkt końcowy w magazynie usługi App Configuration. Ten adres URL znajduje się na karcie Klucze dostępu dla magazynu w witrynie Azure Portal.

  3. Otwórz plik appsettings.json i dodaj następujący skrypt. Zastąp <service_endpoint>, w tym nawiasami, adresem URL sklepu App Configuration.

    "AppConfig": {
        "Endpoint": "<service_endpoint>"
    }
    
  4. Otwórz plik Program.cs i dodaj odwołanie do Azure.Identity przestrzeni nazw i Microsoft.Azure.Services.AppAuthentication :

    using Azure.Identity;
    
  5. Aby uzyskać dostęp do wartości przechowywanych w usłudze App Configuration, zaktualizuj konfigurację Builder tak, aby korzystała AddAzureAppConfiguration() z metody .

    var builder = WebApplication.CreateBuilder(args);
    
    builder.Configuration.AddAzureAppConfiguration(options =>
        options.Connect(
            new Uri(builder.Configuration["AppConfig:Endpoint"]),
            new ManagedIdentityCredential()));
    

    Uwaga

    Jeśli chcesz użyć tożsamości zarządzanej przypisanej przez użytkownika, pamiętaj o określeniu clientId wartości podczas tworzenia obiektu ManagedIdentityCredential.

    new ManagedIdentityCredential("<your_clientId>")
    

    Jak wyjaśniono w artykule Tożsamości zarządzane dla zasobów platformy Azure — często zadawane pytania, istnieje domyślny sposób rozpoznawania używanej tożsamości zarządzanej. W takim przypadku biblioteka tożsamości platformy Azure wymusza określenie żądanej tożsamości, aby uniknąć ewentualnych problemów ze środowiskiem uruchomieniowym w przyszłości. Jeśli na przykład jest dodawana nowa tożsamość zarządzana przypisana przez użytkownika lub czy tożsamość zarządzana przypisana przez system jest włączona. Dlatego należy określić clientId tożsamość zarządzaną przypisaną przez użytkownika nawet wtedy, gdy zdefiniowano tylko jedną tożsamość zarządzaną przypisaną przez użytkownika i nie ma przypisanej przez system tożsamości zarządzanej.

  1. Znajdź punkt końcowy w magazynie usługi App Configuration. Ten adres URL znajduje się na karcie Przegląd sklepu w witrynie Azure Portal.

  2. Otwórz bootstrap.propertiesplik , usuń właściwość parametrów połączenia i zastąp ją punktem końcowym dla tożsamości przypisanej przez system:

spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>

dla tożsamości przypisanej przez użytkownika:

spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>
spring.cloud.azure.credential.managed-identity-enabled= true
spring.cloud.azure.credential.client-id= <client_id>

Uwaga

Aby uzyskać więcej informacji, zobacz Spring Cloud Azure authentication (Uwierzytelnianie platformy Azure w usłudze Spring Cloud).

Wdrażanie aplikacji

Podczas korzystania z tożsamości zarządzanych należy wdrożyć aplikację w usłudze platformy Azure. Tożsamości zarządzane nie mogą być używane do uwierzytelniania aplikacji działających lokalnie. Aby wdrożyć aplikację platformy .NET Core utworzoną w przewodniku Szybki start Tworzenie aplikacji platformy ASP.NET Core za pomocą usługi App Configuration i zmodyfikować ją w celu korzystania z tożsamości zarządzanych, postępuj zgodnie ze wskazówkami w temacie Publikowanie aplikacji internetowej.

Korzystanie z tożsamości zarządzanych wymaga wdrożenia aplikacji w usłudze platformy Azure. Tożsamości zarządzane nie mogą być używane do uwierzytelniania aplikacji działających lokalnie. Aby wdrożyć aplikację Spring utworzoną w przewodniku Szybki start Tworzenie aplikacji Java Spring za pomocą aplikacja systemu Azure Configuration i modyfikacji w celu korzystania z tożsamości zarządzanych, postępuj zgodnie ze wskazówkami w temacie Publikowanie aplikacji internetowej.

Oprócz usługi App Service wiele innych usług platformy Azure obsługuje tożsamości zarządzane. Aby uzyskać więcej informacji, zobacz Usługi obsługujące tożsamości zarządzane dla zasobów platformy Azure.

Czyszczenie zasobów

Jeśli nie chcesz nadal korzystać z zasobów utworzonych w tym artykule, usuń utworzoną tutaj grupę zasobów, aby uniknąć naliczania opłat.

Ważne

Usunięcie grupy zasobów jest nieodwracalne. Grupa zasobów i wszystkie zasoby w niej są trwale usuwane. Upewnij się, że nie usuniesz przypadkowo nieprawidłowej grupy zasobów ani zasobów. Jeśli zasoby dla tego artykułu zostały utworzone w grupie zasobów zawierającej inne zasoby, które chcesz zachować, usuń każdy zasób oddzielnie z odpowiedniego okienka zamiast usuwać grupę zasobów.

  1. Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
  2. W polu Filtruj według nazwy wprowadź nazwę grupy zasobów.
  3. Na liście wyników wybierz nazwę grupy zasobów, aby wyświetlić przegląd.
  4. Wybierz pozycję Usuń grupę zasobów.
  5. Zobaczysz prośbę o potwierdzenie usunięcia grupy zasobów. Wprowadź nazwę grupy zasobów, aby potwierdzić, a następnie wybierz pozycję Usuń.

Po kilku chwilach grupa zasobów i wszystkie jej zasoby zostaną usunięte.

Następne kroki

W tym samouczku dodano tożsamość zarządzaną platformy Azure, aby usprawnić dostęp do usługi App Configuration i usprawnić zarządzanie poświadczeniami dla aplikacji. Aby dowiedzieć się więcej na temat korzystania z usługi App Configuration, przejdź do przykładów interfejsu wiersza polecenia platformy Azure.