Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Durable Task Scheduler använder hanterad identitet för autentisering. Du kan använda antingen en användartilldelad eller systemtilldelad hanterad identitet. Användartilldelade identiteter rekommenderas eftersom de inte är kopplade till appens livscykel och kan återanvändas när appen har avetablerats.
Den här artikeln beskriver två sätt att konfigurera hanterad identitet:
- Snabbkonfiguration – ett enda CLI-kommando som automatiserar rolltilldelning, identitetsbilagor och miljövariabelkonfiguration.
- Manuell installation – stegvisa instruktioner för fullständig kontroll över varje konfigurationssteg.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt.
- En durable Task Scheduler- och aktivitetshubbresurs har redan etablerats.
-
Azure CLI med tillägget
durabletaskinstallerat (az extension add --name durabletask). - Rollen Ägare eller Administratör för användaråtkomst för scheduler-resursen (krävs för att skapa rolltilldelningar).
Varaktiga Task Scheduler RBAC-roller
Du kan bevilja följande durable task scheduler-relaterade roller till en identitet:
| Befattning | Beskrivning |
|---|---|
| Durable Task Data-deltagare | Roll för alla dataåtkomstoperationer. Den här rollen är överordnad alla andra roller. |
| Varaktig aktivitetsarbetare | Roll som används av arbetsprogram för att interagera med Durable Task Scheduler. Tilldela den här rollen om din app endast används för bearbetning av orkestreringar, aktiviteter och entiteter. |
| Hållbar uppgiftsdataläsare | Roll för att läsa alla durable Task Scheduler-data. Tilldela rollen om du bara behöver lista arbetsflöden och läsa entitetsdata. |
Anmärkning
De flesta appar kräver rollen Durable Task Data Contributor .
Snabbkonfiguration med az durabletask scheduler attach
Kommandot az durabletask scheduler attach automatiserar rolltilldelning, identitetsbilaga och miljövariabelkonfiguration i ett enda kommando.
I följande exempel kopplas en schemaläggare till en funktionsapp med hjälp av en användartilldelad hanterad identitet med rollen 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
För en containerapp:
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
Anmärkning
Om du utelämnar parametern --identity använder kommandot den systemtilldelade hanterade identiteten i stället.
För ytterligare information, se az durabletask scheduler attach.
Manuell konfiguration
Om du behöver detaljerad kontroll över varje steg följer du de manuella anvisningarna nedan för att tilldela RBAC, koppla identiteten och konfigurera miljövariabler individuellt.
Tilldela rollbaserad åtkomstkontroll (RBAC) till en hanterad identitetsresurs
Skapa en användartilldelad hanterad identitet
az identity create -g RESOURCE_GROUP_NAME -n IDENTITY_NAMEAnge den tilldelade till identitetsresursen som skapats
assignee=$(az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv)Ange omfånget. Använd aktivitetshubbens omfång för åtkomst med minst behörighet. Använd schemaläggarens omfång endast om identiteten behöver åtkomst till alla uppgiftsnav i en schemaläggare.
Aktivitetshubbens omfång (rekommenderas)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASKHUB_NAME"Schemaläggningsomfattning (alla aktivitetshubbar)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"Bevilja åtkomst. Kör följande kommando för att skapa rolltilldelningen och bevilja åtkomst.
az role assignment create \ --assignee "$assignee" \ --role "Durable Task Data Contributor" \ --scope "$scope"Förväntade utdata
I följande utdataexempel visas en utvecklaridentitet som tilldelats rollen Durable Task Data Contributor på schemaläggningsnivå :
{ "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" }
Anmärkning
Följande instruktion visar en rolltilldelning som är begränsad till en specifik aktivitetshubb. Om du behöver åtkomst till alla aktivitetshubbar i en schemaläggare utför du tilldelningen på schemaläggningsnivå.
Gå till resursen Durable Task Scheduler i portalen.
Välj ett namn på aktivitetshubben.
Välj Åtkomstkontroll (IAM) i den vänstra menyn.
Välj Lägg till för att lägga till en rolltilldelning.
Sök efter och välj Durable Task Data-bidragsgivare. Välj Nästa.
På fliken Medlemmar väljer du Hanterad identitet för Tilldela åtkomst till.
För Medlemmar väljer du + Välj medlemmar.
I fönstret Välj hanterade identiteter expanderar du listrutan Hanterad identitet och väljer Användartilldelad hanterad identitet.
Välj den användarhanterade identitet som du skapade tidigare och välj Välj.
Välj Granska + tilldela för att slutföra tilldelningen av rollen.
Tilldela hanterad identitet till din app
Nu när identiteten har den RBAC som krävs för åtkomst till Durable Task Scheduler måste du tilldela den till din app.
Hämta resurs-ID för den hanterade identiteten.
resource_id=$(az resource show --resource-group RESOURCE_GROUP_NAME --name IDENTITY_NAME --resource-type Microsoft.ManagedIdentity/userAssignedIdentities --query id --output tsv)Tilldela identiteten till appen.
az functionapp identity assign --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --identities "$resource_id"
Från din app i portalen väljer du Inställningar>Identitet.
Välj fliken Användartilldelade .
Välj + Lägg till och välj sedan den identitet som skapades i det sista avsnittet. Välj Lägg till.
Lägga till miljövariabler i din app
Lägg till följande två miljövariabler i din app:
| Miljövariabel | Value | Exempel |
|---|---|---|
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 |
Namnet på aktivitetshubben | my-task-hub |
Anmärkning
Om du använder systemtilldelad identitet, utelämnar du parametern ClientID från reťazec pripojenia: "Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity".
Hämta den nödvändiga informationen för anslutningssträngen.
Hämta scheduler-slutpunkten:
az durabletask scheduler show --resource-group RESOURCE_GROUP_NAME --name SCHEDULER_NAME --query 'properties.endpoint' --output tsvHämta klient-ID för den hanterade identiteten:
az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsvAnge båda miljövariablerna i din app.
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>"
Hämta den nödvändiga informationen för anslutningssträngen.
För att få slutpunkten för din scheduler, navigera till fliken Översikt för din scheduler-resurs och hitta Endpoint i sektionen Essentials.
Om du vill hämta klient-ID för hanterad identitet går du till fliken Översikt för din hanterade identitetsresurs och hittar klient-ID i avsnittet Essentials.
Gå till din app i portalen.
I den vänstra menyn väljer du Inställningar>Miljövariabler.
Lägg till en miljövariabel med namnet
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGmed värdetEndpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID>.Lägg till en miljövariabel med namnet
TASKHUB_NAMEpå aktivitetshubben.Välj Använd och sedan Bekräfta för att spara variablerna.