Udostępnij za pośrednictwem


Szybki start: konfigurowanie rozszerzenia Durable Functions przy użyciu tożsamości zarządzanej

Tożsamość zarządzana z usługi zarządzania dostępem Microsoft Entra ID umożliwia aplikacji dostęp do innych chronionych zasobów firmy Microsoft, takich jak konto usługi Azure Storage, bez ręcznego obsługi wpisów tajnych. Tożsamość jest zarządzana przez platformę Azure, dlatego nie trzeba aprowizować ani obracać żadnych wpisów tajnych. Zalecanym sposobem uwierzytelniania dostępu do zasobów platformy Azure jest użycie takiej tożsamości.

W tym przewodniku Szybki start wykonasz kroki konfigurowania aplikacji Durable Functions przy użyciu domyślnego dostawcy usługi Azure Storage do używania połączeń opartych na tożsamościach na potrzeby dostępu do konta magazynu.

Uwaga

Tożsamość zarządzana jest obsługiwana w rozszerzeniach Durable Functions w wersji 2.7.0 lub nowszej.

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

Wymagania wstępne

Aby ukończyć ten przewodnik Szybki Start, musisz spełnić następujące warunki:

  • Istniejący projekt rozszerzenia Durable Functions utworzony w witrynie Azure Portal lub lokalny projekt durable functions wdrożony na platformie Azure.
  • Znajomość uruchamiania aplikacji Durable Functions na platformie Azure.

Jeśli nie masz istniejącego projektu durable functions wdrożonego na platformie Azure, zalecamy rozpoczęcie od jednego z następujących przewodników Szybki start:

Programowanie lokalne

Korzystanie z emulatora usługi Azure Storage

Podczas tworzenia aplikacji lokalnie zaleca się użycie biblioteki Azurite, czyli lokalnego emulatora usługi Azure Storage. Skonfiguruj aplikację do emulatora, określając "AzureWebJobsStorage": "UseDevelopmentStorage = true" w local.settings.json.

Połączenia oparte na tożsamościach na potrzeby programowania lokalnego

Ściśle rzecz biorąc, tożsamość zarządzana jest dostępna tylko dla aplikacji podczas wykonywania na platformie Azure. Można jednak nadal skonfigurować lokalnie uruchomioną aplikację do używania połączenia opartego na tożsamościach przy użyciu poświadczeń dewelopera w celu uwierzytelniania względem zasobów platformy Azure. Następnie po wdrożeniu na platformie Azure aplikacja będzie używać konfiguracji tożsamości zarządzanej.

W przypadku korzystania z poświadczeń dewelopera połączenie próbuje uzyskać token z następujących lokalizacji w podanej kolejności w celu uzyskania dostępu do zasobów platformy Azure:

  • Lokalna pamięć podręczna udostępniona między aplikacjami firmy Microsoft
  • Bieżący kontekst użytkownika w programie Visual Studio
  • Bieżący kontekst użytkownika w programie Visual Studio Code
  • Bieżący kontekst użytkownika w interfejsie wiersza polecenia platformy Azure

Jeśli żadna z tych opcji nie powiedzie się, zostanie wyświetlony błąd informujący, że aplikacja nie może pobrać tokenu uwierzytelniania dla zasobów platformy Azure.

Konfigurowanie środowiska uruchomieniowego do korzystania z lokalnej tożsamości dewelopera

  1. Określ nazwę konta usługi Azure Storage w local.settings.json, na przykład:

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage__accountName": "<<your Azure Storage account name>>",
          "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
       }
    }
    
  2. Przejdź do zasobu konta usługi Azure Storage w witrynie Azure Portal, przejdź do karty Kontrola dostępu (zarządzanie dostępem i tożsamościami) i kliknij pozycję Dodaj przypisanie roli. Znajdź następujące role:

    • Współautor danych kolejki usługi Storage
    • Współautor danych obiektu blob usługi Storage
    • Współautor tabeli danych usługi Storage

    Przypisz role do siebie, klikając pozycję "+ Wybierz członków" i znajdując wiadomość e-mail w oknie podręcznym. (Ten adres e-mail jest używany do logowania się do aplikacji firmy Microsoft, interfejsu wiersza polecenia platformy Azure lub edytorów w rodzinie programu Visual Studio).

    Zrzut ekranu przedstawiający przypisanie dostępu do użytkownika.

Połączenia oparte na tożsamościach dla aplikacji wdrożonej na platformie Azure

Włączanie zasobu tożsamości zarządzanej

Aby rozpocząć, włącz tożsamość zarządzaną dla aplikacji. Aplikacja funkcji musi mieć tożsamość zarządzaną przypisaną przez system lub tożsamość zarządzaną przypisaną przez użytkownika. Aby włączyć tożsamość zarządzaną dla aplikacji funkcji i dowiedzieć się więcej o różnicach między dwoma typami tożsamości, zobacz Omówienie tożsamości zarządzanej.

Przypisywanie ról dostępu do tożsamości zarządzanej

Przejdź do zasobu usługi Azure Storage aplikacji w witrynie Azure Portal i przypisz trzy role kontroli dostępu opartej na rolach (RBAC) do zasobu tożsamości zarządzanej:

  • Współautor danych kolejki usługi Storage
  • Współautor danych obiektu blob usługi Storage
  • Współautor tabeli danych usługi Storage

Aby znaleźć zasób tożsamości, wybierz pozycję Przypisz dostęp do tożsamości zarządzanej, a następnie pozycję + Wybierz członków

Zrzut ekranu przedstawiający przypisanie dostępu do tożsamości zarządzanej.

Dodawanie konfiguracji tożsamości zarządzanej do aplikacji

Przed użyciem tożsamości zarządzanej aplikacji wprowadź pewne zmiany w ustawieniach aplikacji:

  1. W witrynie Azure Portal w menu zasobów aplikacji funkcji w obszarze Ustawienia wybierz pozycję Zmienne środowiskowe.

  2. Na liście ustawień znajdź pozycję AzureWebJobsStorage i wybierz ikonę Usuń . Zrzut ekranu przedstawiający domyślne ustawienie magazynu.

  3. Dodaj ustawienie, aby połączyć konto usługi Azure Storage z aplikacją.

    Użyj jednej z następujących metod w zależności od chmury, w której działa aplikacja:

    • Chmura platformy Azure: jeśli aplikacja działa na globalnej platformie Azure, dodaj ustawienie AzureWebJobsStorage__accountName identyfikujące nazwę konta usługi Azure Storage. Przykładowa wartość: mystorageaccount123

    • Chmura spoza platformy Azure: jeśli aplikacja działa w chmurze poza platformą Azure, musisz dodać następujące trzy ustawienia, aby zapewnić określone identyfikatory URI usługi (lub punkty końcowe) konta magazynu zamiast nazwy konta.

      • Nazwa ustawienia: AzureWebJobsStorage__blobServiceUri

        Przykładowa wartość: https://mystorageaccount123.blob.core.windows.net/

      • Nazwa ustawienia: AzureWebJobsStorage__queueServiceUri

        Przykładowa wartość: https://mystorageaccount123.queue.core.windows.net/

      • Nazwa ustawienia: AzureWebJobsStorage__tableServiceUri

        Przykładowa wartość: https://mystorageaccount123.table.core.windows.net/

    Wartości tych zmiennych identyfikatora URI można uzyskać w informacjach o koncie magazynu na karcie Punkty końcowe .

    Zrzut ekranu przedstawiający przykład punktu końcowego.

    Uwaga

    Jeśli używasz platformy Azure Government lub innej chmury, która jest oddzielona od globalnej platformy Azure, musisz użyć opcji, która udostępnia określone identyfikatory URI usług, a nie tylko nazwę konta magazynu. Aby uzyskać więcej informacji na temat korzystania z usługi Azure Storage z usługą Azure Government, zobacz Tworzenie przy użyciu interfejsu API magazynu w usłudze Azure Government.

  4. Zakończ konfigurację tożsamości zarządzanej (pamiętaj, aby kliknąć przycisk Zastosuj po wprowadzeniu zmian ustawień):

    • Jeśli używasz tożsamości przypisanej przez system, nie wprowadzaj żadnych innych zmian.

    • Jeśli używasz tożsamości przypisanej przez użytkownika, dodaj następujące ustawienia w konfiguracji aplikacji:

      • AzureWebJobsStorage__credential wprowadź wartość managedidentity

      • AzureWebJobsStorage__clientId pobierz tę wartość identyfikatora GUID z zasobu tożsamości zarządzanej

      Zrzut ekranu przedstawiający identyfikator klienta tożsamości użytkownika.

    Uwaga

    Rozszerzenie Durable Functions nie obsługuje managedIdentityResourceId korzystania z tożsamości przypisanej przez użytkownika. Użycie w zamian parametru clientId.