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:
- Tworzenie pierwszej funkcji trwałej — C#
- Tworzenie pierwszej funkcji trwałej — JavaScript
- Tworzenie pierwszej funkcji trwałej — Python
- Tworzenie pierwszej funkcji trwałej — PowerShell
- Tworzenie pierwszej funkcji trwałej — Java
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
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" } }
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).
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
Dodawanie konfiguracji tożsamości zarządzanej do aplikacji
Przed użyciem tożsamości zarządzanej aplikacji wprowadź pewne zmiany w ustawieniach aplikacji:
W witrynie Azure Portal w menu zasobów aplikacji funkcji w obszarze Ustawienia wybierz pozycję Zmienne środowiskowe.
Na liście ustawień znajdź pozycję AzureWebJobsStorage i wybierz ikonę Usuń .
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 .
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.
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
Uwaga
Rozszerzenie Durable Functions nie obsługuje
managedIdentityResourceId
korzystania z tożsamości przypisanej przez użytkownika. Użycie w zamian parametruclientId
.