Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Program Durable Task Scheduler używa tożsamości zarządzanej do uwierzytelniania. Możesz użyć tożsamości zarządzanej przypisanej przez użytkownika lub przypisanej przez system . Zalecane są tożsamości przypisane przez użytkownika, ponieważ nie są powiązane z cyklem życia aplikacji i mogą być ponownie użyte po dezaprowizacji aplikacji.
W tym artykule opisano dwa sposoby konfigurowania tożsamości zarządzanej:
- Szybka konfiguracja — pojedyncze polecenie CLI, które automatyzuje przypisywanie ról, dołączenie tożsamości i konfigurację zmiennych środowiskowych.
- Ręczna konfiguracja — instrukcje krok po kroku dotyczące pełnej kontroli nad poszczególnymi krokami konfiguracji.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
- Trwały harmonogram zadań i zasób centrum zadań już aprowizowany.
-
Azure CLI z zainstalowanym rozszerzeniem
durabletask(az extension add --name durabletask). - Rola właściciela lub administratora dostępu użytkowników w zasobie harmonogramu (wymaganym do tworzenia przypisań ról).
Niezawodne role RBAC harmonogramu zadań
Można przyznać tożsamości następujące role związane z harmonogramem trwałych zadań:
| roli | 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 odczytaj ładunki jednostek. |
Uwaga / Notatka
Większość aplikacji wymaga roli Kontrybutora Danych Trwałych Zadań.
Szybka konfiguracja za pomocą polecenia az durabletask scheduler attach
Polecenie az durabletask scheduler attach automatyzuje przypisywanie ról, tożsamości oraz konfigurację zmiennych środowiskowych.
W poniższym przykładzie scheduler jest dołączany do aplikacji Function App przy użyciu tożsamości zarządzanej przypisanej przez użytkownika z rolą Durable Task Data Contributor:
az durabletask scheduler attach \
--resource-group RESOURCE_GROUP_NAME \
--name SCHEDULER_NAME \
--task-hub-name TASKHUB_NAME \
--role-type contributor \
--target /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.Web/sites/FUNCTION_APP_NAME \
--identity /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.ManagedIdentity/userAssignedIdentities/IDENTITY_NAME
W przypadku aplikacji kontenera:
az durabletask scheduler attach \
--resource-group RESOURCE_GROUP_NAME \
--name SCHEDULER_NAME \
--task-hub-name TASKHUB_NAME \
--role-type contributor \
--target /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.App/containerApps/CONTAINER_APP_NAME \
--identity /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.ManagedIdentity/userAssignedIdentities/IDENTITY_NAME
Uwaga / Notatka
W przypadku pominięcia parametru --identity polecenie używa tożsamości zarządzanej przypisanej przez system.
Aby uzyskać więcej informacji, odwiedź az durabletask scheduler attach.
Konfiguracja ręczna
Jeśli potrzebujesz szczegółowej kontroli nad każdym krokiem, postępuj zgodnie z poniższymi instrukcjami, aby przypisać RBAC, przypisać tożsamość i indywidualnie skonfigurować zmienne środowiskowe.
Przypisywanie kontroli dostępu opartej na rolach (RBAC) do zasobu tożsamości zarządzanej
Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
az identity create -g RESOURCE_GROUP_NAME -n IDENTITY_NAMEUstaw osobę odpowiedzialną na utworzonego zasobu tożsamości
assignee=$(az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv)Ustaw zakres. Użyj zakresu centrum zadań, aby uzyskać dostęp z minimalnymi uprawnieniami. Zakres harmonogramu należy używać tylko wtedy, gdy tożsamość wymaga dostępu do wszystkich centrów zadań w harmonogramie.
Zakres centrum zadań (zalecane)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASKHUB_NAME"Zakres harmonogramu (wszystkie centra zadań)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"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.
Przejdź do zasobu Durable Task Scheduler w portalu.
Wybierz nazwę centrum zadań.
W menu po lewej stronie wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami)..
Wybierz pozycję Dodaj , aby dodać przypisanie roli.
Wyszukaj i wybierz Durable Task Data Contributor. Wybierz Dalej.
Na karcie Członkowie w polu Przypisz dostęp do wybierz pozycję Tożsamość zarządzana.
W obszarze Członkowie wybierz pozycję + Wybierz członków.
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.
Wybierz wcześniej utworzoną tożsamość zarządzaną przez użytkownika i wybierz pozycję Wybierz.
Wybierz Review + assign, 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.
Pobierz identyfikator zasobu tożsamości zarządzanej.
resource_id=$(az resource show --resource-group RESOURCE_GROUP_NAME --name IDENTITY_NAME --resource-type Microsoft.ManagedIdentity/userAssignedIdentities --query id --output tsv)Przypisz tożsamość do aplikacji.
az functionapp identity assign --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --identities "$resource_id"
W aplikacji w portalu wybierz pozycję Ustawienia>Tożsamość.
Wybierz kartę Użytkownik przypisany .
Wybierz pozycję + Dodaj, a następnie wybierz tożsamość utworzoną w ostatniej sekcji. Wybierz Dodaj.
Dodawanie zmiennych środowiskowych do aplikacji
Dodaj następujące dwie zmienne środowiskowe do aplikacji:
| Zmienna środowiskowa | Value | Przykład |
|---|---|---|
DURABLE_TASK_SCHEDULER_CONNECTION_STRING |
Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID> |
Endpoint=https://myscheduler.westus2.durabletask.io;Authentication=ManagedIdentity;ClientID=00000000-0000-0000-0000-000000000000 |
TASKHUB_NAME |
Nazwa centrum zadań | my-task-hub |
Uwaga / Notatka
Jeśli używasz tożsamości przypisaną przez system, pomiń parametr z łańcucha połączeń: .
Uzyskaj wymagane informacje dotyczące łańcucha połączenia.
Pobierz punkt końcowy harmonogramu:
az durabletask scheduler show --resource-group RESOURCE_GROUP_NAME --name SCHEDULER_NAME --query 'properties.endpoint' --output tsvPobierz identyfikator klienta tożsamości zarządzanej:
az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsvUstaw obie zmienne środowiskowe w aplikacji.
az functionapp config appsettings set \ --resource-group RESOURCE_GROUP_NAME \ --name FUNCTION_APP_NAME \ --settings \ DURABLE_TASK_SCHEDULER_CONNECTION_STRING="Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID>" \ TASKHUB_NAME="<TASKHUB_NAME>"
Uzyskaj wymagane informacje dotyczące łańcucha połączenia.
Aby uzyskać punkt końcowy harmonogramu, przejdź do karty Przegląd zasobu harmonogramu i znajdź punkt końcowy w sekcji Podstawy .
Aby uzyskać identyfikator klienta tożsamości zarządzanej, przejdź do karty Przegląd zasobu tożsamości zarządzanej i znajdź identyfikator klienta w sekcji Podstawy .
Przejdź do aplikacji w portalu.
W menu po lewej stronie wybierz pozycję Ustawienia>Zmienne środowiskowe.
Dodaj zmienną środowiskową o nazwie
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGz wartościąEndpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID>.Dodaj zmienną środowiskową o nazwie
TASKHUB_NAMEz nazwą twojego centrum zadań.Wybierz pozycję Zastosuj, a następnie potwierdź , aby zapisać zmienne.