Udostępnij przez


Konfigurowanie tożsamości zarządzanej dla harmonogramu zadań trwałych

Trwały harmonogram zadań obsługuje tylko uwierzytelnianie tożsamości zarządzanej przypisanej przez użytkownika lub przypisaną przez system . Zalecane są tożsamości przypisane przez użytkownika, ponieważ nie są one powiązane z cyklem życia aplikacji i mogą być ponownie używane po anulowaniu aprowizacji aplikacji.

Można przyznać tożsamości następujące role związane z harmonogramem trwałych zadań:

Rola Opis
Współtwórca danych trwałego zadania Rola dla wszystkich operacji dostępu do danych. Ta rola jest nadzbiorem wszystkich innych ról.
Trwały pracownik zadań Rola używana przez aplikacje pracownicze do interakcji z harmonogramem zadań Durable Task Scheduler. Przypisz tę rolę, jeśli aplikacja jest używana tylko do przetwarzania aranżacji, działań i jednostek.
Czytnik danych Durable Task Rola do odczytywania wszystkich danych harmonogramu zadań trwałych. Przypisz tę rolę, jeśli potrzebujesz tylko listy aranżacji i ładunków jednostek.

Uwaga / Notatka

Większość aplikacji Durable Functions wymaga roli Durable Task Data Contributor .

Z tego artykułu dowiesz się, jak udzielić uprawnień do zasobu tożsamości i skonfigurować aplikację obliczeniową do używania tożsamości na potrzeby dostępu do harmonogramów i centrów zadań.

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

  1. Tworzenie tożsamości zarządzanej przypisanej przez użytkownika

    az identity create -g RESOURCE_GROUP_NAME -n IDENTITY_NAME
    
  2. Ustaw osobę odpowiedzialną na utworzonego zasobu tożsamości

    assignee=$(az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv) 
    
  3. Ustaw zakres. Udzielanie dostępu w zakresie harmonogramu zapewnia dostęp do wszystkich centrów zadań w tym harmonogramie.

    Centrum zadań

    scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASKHUB_NAME"
    

    Harmonogram

    scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"
    
  4. Udziel dostępu. Uruchom następujące polecenie, aby utworzyć przypisanie roli i udzielić dostępu.

    az role assignment create \
      --assignee "$assignee" \
      --role "Durable Task Data Contributor" \
      --scope "$scope"
    

    Oczekiwane dane wyjściowe

    Poniższy przykład danych wyjściowych pokazuje tożsamość dewelopera, któremu przypisano rolę Współautora danych zadań trwałych na poziomie harmonogramu.

    {
      "condition": null,
      "conditionVersion": null,
      "createdBy": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "createdOn": "2024-12-20T01:36:45.022356+00:00",
      "delegatedManagedIdentityResourceId": null,
      "description": null,
      "id": "/subscriptions/YOUR_SUBSCRIPTION_ID/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME/providers/Microsoft.Authorization/roleAssignments/ROLE_ASSIGNMENT_ID",
      "name": "ROLE_ASSIGNMENT_ID",
      "principalId": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "principalName": "YOUR_EMAIL",
      "principalType": "User",
      "resourceGroup": "YOUR_RESOURCE_GROUP",
      "roleDefinitionId": "/subscriptions/YOUR_SUBSCRIPTION/providers/Microsoft.Authorization/roleDefinitions/ROLE_DEFINITION_ID",
      "roleDefinitionName": "Durable Task Data Contributor",
      "scope": "/subscriptions/YOUR_SUBSCRIPTION/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME",
      "type": "Microsoft.Authorization/roleAssignments",
      "updatedBy": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "updatedOn": "2024-12-20T01:36:45.022356+00:00"
    }
    

Uwaga / Notatka

Poniższa instrukcja przedstawia przypisanie roli o określonym zakresie do określonego centrum zadań. Jeśli potrzebujesz dostępu do wszystkich węzłów zadań w planu, wykonaj przypisanie na poziomie planisty.

  1. Utwórz przypisaną przez użytkownika zarządzaną tożsamość.

  2. Przejdź do zasobu trwałego harmonogramu zadań w portalu.

  3. Kliknij nazwę centrum zadań.

  4. W menu po lewej stronie wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami)..

  5. Kliknij Dodaj, aby dodać przypisanie roli.

    Zrzut ekranu z dodawania przypisania roli w okienku kontroli dostępu w portalu.

  6. Wyszukaj i wybierz Durable Task Data Contributor. Kliknij przycisk Dalej.

    Zrzut ekranu przedstawiający wybieranie przypisania roli Współautor danych zadania trwałego w portalu.

  7. Na karcie Członkowie w polu Przypisz dostęp do wybierz pozycję Tożsamość zarządzana.

  8. Dla członków kliknij + Wybierz członków.

  9. W okienku Wybieranie tożsamości zarządzanych rozwiń listę rozwijaną Tożsamość zarządzana i wybierz pozycję Tożsamość zarządzana przypisana przez użytkownika.

    Zrzut ekranu przedstawiający wybieranie typu tożsamości zarządzanej przypisanej przez użytkownika, którego będziesz używać w portalu.

  10. Wybierz wcześniej utworzoną tożsamość zarządzaną przez użytkownika i kliknij przycisk Wybierz .

  11. Kliknij Przejrzyj i przypisz, aby zakończyć przypisywanie roli.

Przypisywanie tożsamości zarządzanej do aplikacji

Teraz, gdy tożsamość ma wymagany RBAC do narzędzia Durable Task Scheduler, musisz przypisać ją do aplikacji.

  1. Pobierz identyfikator zasobu zarządzanej tożsamości.

    resource_id=$(az resource show --resource-group RESOURCE_GROUP --name MANAGED_IDENTITY_NAME --resource-type Microsoft.ManagedIdentity/userAssignedIdentities --query id --output tsv)
    
  2. Przypisz tożsamość do aplikacji.

    az functionapp identity assign --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --identities "$resource_id"
    
  1. W aplikacji w portalu wybierz pozycję Ustawienia>Tożsamość.

  2. Kliknij kartę Użytkownik przypisany .

  3. Kliknij pozycję + Dodaj, a następnie wybierz tożsamość utworzoną w ostatniej sekcji. Kliknij przycisk Dodaj.

    Zrzut ekranu przedstawiający dodawanie tożsamości zarządzanej przypisanej przez użytkownika do aplikacji funkcjonalnej w portalu.

Dodawanie zmiennych środowiskowych do aplikacji

Dodaj te dwie zmienne środowiskowe do ustawienia aplikacji:

  • TASKHUB_NAME: nazwa centrum zadań
  • DURABLE_TASK_SCHEDULER_CONNECTION_STRING: format ciągu to "Endpoint={scheduler point};Authentication=ManagedIdentity;ClientID={client id}", gdzie Endpoint jest punktem końcowym harmonogramu i client id jest identyfikatorem klienta tożsamości.
  1. Uzyskaj wymagane informacje dotyczące parametrów połączenia narzędzia Durable Task Scheduler.

    Aby uzyskać punkt końcowy harmonogramu.

    az durabletask scheduler show --resource-group RESOURCE_GROUP_NAME --name DTS_NAME --query 'properties.endpoint' --output tsv
    

    Aby uzyskać identyfikator klienta dla tożsamości zarządzanej.

    az identity show --name MANAGED_IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv
    
  2. Użyj następującego polecenia, aby dodać zmienną środowiskową dla łańcucha połączenia harmonogramu do aplikacji.

    az functionapp config appsettings set --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --settings KEY_NAME=KEY_VALUE
    
  3. Powtórz poprzedni krok, aby dodać zmienną środowiskową dla nazwy centrum zadań.

  1. Uzyskaj wymagane informacje dotyczące parametrów połączenia narzędzia Durable Task Scheduler.

    Aby uzyskać punkt końcowy harmonogramu, przejdź do karty Przegląd zasobu harmonogramu i znajdź pozycję "Punkt końcowy" w górnej sekcji Podstawy .

    Aby uzyskać identyfikator klienta tożsamości zarządzanej, przejdź do karty Przegląd swojego zasobu i znajdź pozycję "Identyfikator klienta" w sekcji Istotne elementy.

  2. Przejdź do swojej aplikacji na portalu.

  3. W menu po lewej stronie kliknij pozycję Ustawienia>Zmienne środowiskowe.

  4. Dodaj zmienną środowiskową dla łańcucha połączenia narzędzia Durable Task Scheduler.

  5. Dodaj zmienną środowiskową dla nazwy centrum zadań.

  6. Kliknij przycisk Zastosuj , a następnie potwierdź , aby dodać zmienne.

Uwaga / Notatka

Jeśli używasz tożsamości przypisanej przez system, parametry połączenia nie będą potrzebować identyfikatora klienta zasobu tożsamości: "Endpoint={scheduler endpoint};Authentication=ManagedIdentity".

Dalsze kroki