Konfigurowanie rozszerzenia Durable Functions przy użyciu identyfikatora entra firmy Microsoft

Microsoft Entra ID (Microsoft Entra ID ) to oparta na chmurze usługa zarządzania tożsamościami i dostępem. Połączenia oparte na tożsamościach umożliwiają usłudze Durable Functions wykonywanie autoryzowanych żądań względem chronionych zasobów firmy Microsoft, takich jak konto usługi Azure Storage, bez konieczności ręcznego zarządzania wpisami tajnymi. Korzystając z domyślnego dostawcy usługi Azure Storage, rozszerzenie Durable Functions musi uwierzytelniać się na koncie usługi Azure Storage. W tym artykule pokazano, jak skonfigurować aplikację Durable Functions w celu korzystania z dwóch rodzajów połączeń opartych na tożsamości: poświadczeń tożsamości zarządzanej i poświadczeń wpisów tajnych klienta.

Tożsamość zarządzana umożliwia aplikacji łatwy dostęp do innych chronionych zasobów firmy Microsoft, takich jak Azure Key Vault. Tożsamość zarządzana jest obsługiwana w rozszerzeniach Durable Functions w wersji 2.7.0 lub nowszej.

Uwaga

Ściśle rzecz biorąc, tożsamość zarządzana jest dostępna tylko dla aplikacji podczas wykonywania na platformie Azure. Jeśli skonfigurowano używanie połączeń opartych na tożsamościach, lokalna aplikacja będzie używać poświadczeń dewelopera do uwierzytelniania za pomocą zasobów platformy Azure. Następnie po wdrożeniu na platformie Azure będzie ona używać konfiguracji tożsamości zarządzanej.

Wymagania wstępne

W poniższych krokach założono, że zaczynasz od istniejącej aplikacji Durable Functions i wiesz, jak ją obsługiwać. W szczególności w tym przewodniku Szybki start założono, że masz już następujące założenia:

  • Utworzono projekt Durable Functions w witrynie Azure Portal lub wdrożono lokalną usługę Durable Functions na platformie Azure.

Jeśli tak nie jest, zalecamy rozpoczęcie od jednego z następujących artykułów, który zawiera szczegółowe instrukcje dotyczące sposobu osiągnięcia wszystkich powyższych wymagań:

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

Tylko jedna tożsamość jest wymagana dla funkcji — tożsamości zarządzanej przypisanej przez system lub tożsamości zarządzanej przypisanej przez użytkownika. Aby włączyć tożsamość zarządzaną dla funkcji i dowiedzieć się więcej o różnicach między tymi dwiema tożsamościami, przeczytaj szczegółowe instrukcje tutaj.

Przypisywanie kontroli dostępu opartej na rolach (RBAC) do tożsamości zarządzanej

Przejdź do zasobu magazynu aplikacji w witrynie Azure Portal. Postępuj zgodnie z tymi instrukcjami , aby przypisać następujące role 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

Dodawanie konfiguracji tożsamości zarządzanej w witrynie Azure Portal

Przejdź do strony Konfiguracja aplikacji funkcji platformy Azure i wykonaj następujące zmiany:

  1. Usuń wartość domyślną "AzureWebJobsStorage".

Screenshot of default storage setting.

  1. Połącz konto usługi Azure Storage, dodając jedno z następujących ustawień wartości:

    • AzureWebJobsStorage__accountName: Na przykład:mystorageaccount123

    • AzureWebJobsStorage__blobServiceUri: Przykład:https://mystorageaccount123.blob.core.windows.net/

      AzureWebJobsStorage__queueServiceUri: Przykład:https://mystorageaccount123.queue.core.windows.net/

      AzureWebJobsStorage__tableServiceUri: Przykład:https://mystorageaccount123.table.core.windows.net/

      Uwaga

      Jeśli używasz platformy Azure Government lub innej chmury, która jest oddzielona od globalnej platformy Azure, musisz użyć tej drugiej opcji, aby zapewnić określone adresy URL usług. Wartości tych ustawień można znaleźć na koncie magazynu na karcie Punkty końcowe . Aby uzyskać więcej informacji na temat korzystania z usługi Azure Storage z usługą Azure Government, zobacz dokumentację Tworzenie za pomocą interfejsu API usługi Storage w usłudze Azure Government .

    Screenshot of endpoint sample.

  2. Finalizuj konfigurację tożsamości zarządzanej:

    • Jeśli należy użyć tożsamości przypisanej przez system, określ nic innego.

    • Jeśli należy użyć tożsamości przypisanej przez użytkownika, dodaj następujące wartości ustawień aplikacji w konfiguracji aplikacji:

      • AzureWebJobsStorage__credential: tożsamość zarządzana

      • AzureWebJobsStorage__clientId: (Jest to wartość identyfikatora GUID uzyskana z centrum administracyjnego firmy Microsoft Entra)

      Screenshot of user identity client id.

Konfigurowanie aplikacji do używania poświadczeń wpisów tajnych klienta

Rejestrowanie aplikacji klienckiej w usłudze Microsoft Entra ID to inny sposób konfigurowania dostępu do usługi platformy Azure. W poniższych krokach dowiesz się, jak używać poświadczeń wpisów tajnych klienta do uwierzytelniania na koncie usługi Azure Storage. Ta metoda może być używana przez aplikacje funkcji zarówno lokalnie, jak i na platformie Azure. Jednak poświadczenia wpisu tajnego klienta są mniej zalecane niż tożsamość zarządzana, ponieważ jest bardziej skomplikowane do skonfigurowania i zarządzania i wymaga udostępniania poświadczeń wpisów tajnych w usłudze Azure Functions.

Wymagania wstępne

W poniższych krokach założono, że zaczynasz od istniejącej aplikacji Durable Functions i wiesz, jak ją obsługiwać. W szczególności w tym przewodniku Szybki start założono, że masz już następujące założenia:

  • Utworzono projekt Durable Functions na komputerze lokalnym lub w witrynie Azure Portal.

Rejestrowanie aplikacji klienckiej w usłudze Microsoft Entra ID

  1. Zarejestruj aplikację kliencką w obszarze Microsoft Entra ID w witrynie Azure Portal zgodnie z tymi instrukcjami.

  2. Utwórz wpis tajny klienta dla aplikacji klienckiej. W zarejestrowanej aplikacji:

    1. Wybierz pozycję Certyfikaty i wpisy tajne , a następnie wybierz pozycję Nowy klucz tajny klienta.

    2. Wypełnij opis i wybierz prawidłowy czas wpisu tajnego w polu Wygasa.

    3. Skopiuj i zapisz uważnie wartość wpisu tajnego, ponieważ nie zostanie ponownie wyświetlona po opuszczeniu strony.

    Screenshot of client secret page.

Przypisywanie kontroli dostępu opartej na rolach (RBAC) do aplikacji klienckiej

Przypisz te trzy role do aplikacji klienckiej, wykonując następujące kroki.

  • Współautor danych kolejki usługi Storage
  • Współautor danych obiektu blob usługi Storage
  • Współautor tabeli danych usługi Storage
  1. Przejdź do strony kontrola dostępu konta magazynu funkcji (IAM) i dodaj nowe przypisanie roli.

    Screenshot of access control page.

  2. Wybierz wymaganą rolę, kliknij przycisk Dalej, a następnie wyszukaj aplikację, przejrzyj i dodaj.

    Screenshot of role assignment page.

Dodawanie konfiguracji wpisu tajnego klienta

Aby uruchomić i przetestować na platformie Azure, określ następujące elementy na stronie Konfiguracja aplikacji funkcji platformy Azure w witrynie Azure Portal. Aby uruchomić i przetestować lokalnie, określ następujące elementy w pliku local.settings.json funkcji.

  1. Usuń wartość domyślną "AzureWebJobsStorage".

  2. Połącz konto usługi Azure Storage, dodając jedno z następujących ustawień wartości:

    • AzureWebJobsStorage__accountName: Na przykład:mystorageaccount123

    • AzureWebJobsStorage__blobServiceUri: Przykład:https://mystorageaccount123.blob.core.windows.net/

      AzureWebJobsStorage__queueServiceUri: Przykład:https://mystorageaccount123.queue.core.windows.net/

      AzureWebJobsStorage__tableServiceUri: Przykład:https://mystorageaccount123.table.core.windows.net/

    Wartości tych zmiennych identyfikatora URI można znaleźć na koncie magazynu na karcie Punkty końcowe .

    Screenshot of endpoint sample.

  3. Dodaj poświadczenia wpisu tajnego klienta, określając następujące wartości:

    • AzureWebJobsStorage__clientId: (jest to wartość identyfikatora GUID znajdująca się na stronie aplikacji Microsoft Entra)

    • AzureWebJobsStorage__ClientSecret: (jest to wartość wpisu tajnego wygenerowana w centrum administracyjnym firmy Microsoft Entra w poprzednim kroku)

    • AzureWebJobsStorage__tenantId: (jest to identyfikator dzierżawy zarejestrowany w aplikacji Microsoft Entra)

    Wartości identyfikatora klienta i identyfikatora dzierżawy można znaleźć na stronie przeglądu aplikacji klienckiej. Wartość wpisu tajnego klienta to ta, która została starannie zapisana w poprzednim kroku. Nie będzie ona dostępna po odświeżeniu strony.

    Screenshot of application's overview page.