Dela via


Konfigurera hanterad identitet för Durable Task Scheduler (förhandsversion)

Durable Task Scheduler stöder endastanvändartilldelad eller systemtilldelad hanterad identitetsautentisering . Användartilldelade identiteter rekommenderas eftersom de inte är kopplade till appens livscykel och kan återanvändas när appen har avetablerats.

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 den här rollen om du bara behöver en lista över orkestreringar och entiteters nyttolaster.

Anmärkning

De flesta Durable Functions-appar kräver rollen Durable Task Data Contributor .

I den här artikeln får du lära dig hur du beviljar behörigheter till en identitetsresurs och konfigurerar din beräkningsapp så att den använder identiteten för åtkomst till schemaläggare och aktivitetshubbar.

Tilldela rollbaserad åtkomstkontroll (RBAC) till en hanterad identitetsresurs

  1. Skapa en användartilldelad hanterad identitet

    az identity create -g RESOURCE_GROUP_NAME -n IDENTITY_NAME
    
  2. Ange den tilldelade till identitetsresursen som skapats

    assignee=$(az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv) 
    
  3. Ange omfånget. Om du beviljar åtkomst till scheduler-omfånget får du åtkomst till alla aktivitetshubbar i schemaläggaren.

    Aktivitetshubben

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

    Schemaläggare

    scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"
    
  4. 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å.

  1. Skapa en användartilldelad hanterad identitet.

  2. Gå till resursen för den hållbara arbetsuppgiftsschemaläggaren på portalen.

  3. Klicka på ett namn på en aktivitetshubb.

  4. Välj Åtkomstkontroll (IAM) i den vänstra menyn.

  5. Klicka på Lägg till för att lägga till en rolltilldelning.

    Skärmbild av att lägga till rolltilldelningen i fönstret Åtkomstkontroll i portalen.

  6. Sök efter och välj Durable Task Data-bidragsgivare. Klicka på Nästa.

    Skärmbild av att välja rolltilldelningen Durable Task Data Contributor i portalen.

  7. På fliken Medlemmar väljer du Hanterad identitet för Tilldela åtkomst till.

  8. För Medlemmar klickar du på + Välj medlemmar.

  9. I fönstret Välj hanterade identiteter expanderar du listrutan Hanterad identitet och väljer Användartilldelad hanterad identitet.

    Skärmbild av att välja den användartilldelade hanterade identitetstypen som du ska använda i portalen.

  10. Välj den användarhanterade identitet som du skapade tidigare och klicka på knappen Välj .

  11. Klicka på Översikt + tilldelning för att slutföra tilldela 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.

  1. Hämta resurs-ID för hantera identitet.

    resource_id=$(az resource show --resource-group RESOURCE_GROUP --name MANAGED_IDENTITY_NAME --resource-type Microsoft.ManagedIdentity/userAssignedIdentities --query id --output tsv)
    
  2. Tilldela identiteten till appen.

    az functionapp identity assign --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --identities "$resource_id"
    
  1. Från din app i portalen väljer du Inställningar>Identitet.

  2. Klicka på fliken Användartilldelade .

  3. Klicka på + Lägg till och välj sedan den identitet som skapades i det sista avsnittet. Klicka på knappen Lägg till.

    Skärmbild av att lägga till den användartilldelade hanterade identiteten i funktionsappen i portalen.

Lägga till miljövariabler i appen

Lägg till dessa två miljövariabler i appinställningen:

  • TASKHUB_NAME: namnet på aktivitetshubben
  • DURABLE_TASK_SCHEDULER_CONNECTION_STRING: formatet för strängen är "Endpoint={scheduler point};Authentication=ManagedIdentity;ClientID={client id}", där Endpoint är schemaläggarens slutpunkt och client id är identitetens klient-ID.
  1. Hämta den nödvändiga informationen för anslutningssträngen till Durable Task Scheduler.

    Hämta scheduler-slutpunkten.

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

    Hämta klient-ID för hanterad identitet.

    az identity show --name MANAGED_IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv
    
  2. Använd följande kommando för att lägga till miljövariabeln för scheduler-anslutningssträngen i appen.

    az functionapp config appsettings set --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --settings KEY_NAME=KEY_VALUE
    
  3. Upprepa föregående steg för att lägga till miljövariabeln för aktivitetshubbens namn.

  1. Hämta den nödvändiga informationen för anslutningssträngen till Durable Task Scheduler.

    Om du vill hämta slutpunkten för din schemaläggare går du till fliken Översikt för schemaläggningsresursen och hittar "Slutpunkt" i avsnittet Essentials högst upp.

    Om du vill hämta klient-ID för hanterad identitet går du till fliken Översikt för resursen och hittar "Klient-ID" i det översta avsnittet Essentials .

  2. Gå till din app på portalen.

  3. I den vänstra menyn klickar du på Inställningar>Miljövariabler.

  4. Lägg till miljövariabel för Durable Task Scheduler-anslutningssträngen.

  5. Lägg till miljövariabel för aktivitetshubbens namn.

  6. Klicka på Använd och sedan på Bekräfta för att lägga till variablerna.

Anmärkning

Om du använder systemtilldelad identitet behöver anslutningssträngen inte klient-ID:t för identitetsresursen: "Endpoint={scheduler endpoint};Authentication=ManagedIdentity".

Nästa steg