Freigeben über


Konfigurieren der verwalteten Identität für einen dauerhaften Aufgabenplaner

Der dauerhafte Aufgabenplaner unterstützt nur die vom Benutzer zugewiesene oder vom System zugewiesene verwaltete Identitätsauthentifizierung. Vom Benutzer zugewiesene Identitäten werden empfohlen, da sie nicht an den Lebenszyklus der App gebunden sind und nach der Deprovisionierung der App wiederverwendet werden können.

Sie können einer Identität die folgenden Rollen des langlebigen Aufgabenplaners zuweisen:

Rolle BESCHREIBUNG
Mitwirkender an langlebigen Aufgabendaten Rolle für alle Datenzugriffsvorgänge. Diese Rolle ist allen anderen Rollen übergeordnet.
Worker für langlebige Aufgaben Rolle, die von Arbeitsanwendungen verwendet wird, um mit dem Durable Task Scheduler zu interagieren. Weisen Sie diese Rolle zu, wenn Ihre App nur für die Verarbeitung von Orchestrierungen, Aktivitäten und Entitäten verwendet wird.
Permanenter Aufgabendatenleser Rolle zum Lesen aller Daten des Durable Task Scheduler. Weisen Sie diese Rolle zu, wenn Sie nur eine Liste der Orchestrierungs- und Entitätsnutzdaten benötigen.

Hinweis

Die meisten Durable Functions-Apps erfordern die Rolle Mitwirkender an langlebigen Aufgabendaten.

In diesem Artikel erfahren Sie, wie Sie Berechtigungen für eine Identitätsressource erteilen und Ihre Compute-App so konfigurieren, dass sie die Identität für den Zugriff auf Scheduler und Aufgabenhubs verwendet.

Zuweisen von RBAC (rollenbasierte Zugriffssteuerung) zu einer verwalteten Identitätsressource

  1. Erstellen einer benutzerseitig zugewiesenen verwalteten Identität

    az identity create -g RESOURCE_GROUP_NAME -n IDENTITY_NAME
    
  2. Festlegen der zugewiesenen Person auf die erstellte Identitätsressource

    assignee=$(az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv) 
    
  3. Legen Sie den Bereich fest. Das Gewähren des Zugriffs auf den Planerbereich ermöglicht den Zugriff auf alle Aufgabenhubs in diesem Planer.

    Aufgabenhub

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

    Scheduler

    scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"
    
  4. Gewähren des Zugriffs. Führen Sie den folgenden Befehl aus, um die Rollenzuweisung zu erstellen und Zugriff zu gewähren.

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

    Erwartete Ausgabe

    Das folgende Ausgabebeispiel zeigt eine Entwickleridentität, der die Rolle „Mitwirkender an langlebigen Aufgabendaten“ auf Planerebene zugewiesen ist:

    {
      "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"
    }
    

Hinweis

Die folgende Anweisung zeigt eine Rollenzuweisung, die auf einen bestimmten Aufgabenhub festgelegt ist. Wenn Sie Zugriff auf alle Aufgabenhubs in einem Planer benötigen, führen Sie die Zuordnung auf der Planerebene aus.

  1. Erstellen einer benutzerseitig zugewiesenen verwalteten Identität.

  2. Navigieren Sie im Portal zur Ressource für den langlebigen Aufgabenplaner.

  3. Wählen Sie einen Aufgabenhubnamen aus.

  4. Wählen Sie im linken Menü Zugriffssteuerung (IAM) aus.

  5. Klicken Sie auf "Hinzufügen" , um eine Rollenzuweisung hinzuzufügen.

    Screenshot des Hinzufügens der Rollenzuweisung im Bereich

  6. Suchen Sie Mitwirkender an langlebigen Aufgabendaten, und wählen Sie die Rolle aus. Klicke auf Weiter.

    Screenshot: Auswählen der Rollenzuweisung „Mitwirkender an langlebigen Aufgabendaten“ im Portal

  7. Wählen Sie auf der Registerkarte " Mitglieder " für "Zugriff zuweisen"die Option "Verwaltete Identität" aus.

  8. Klicken Sie für Mitglieder auf +Mitglieder auswählen.

  9. Erweitern Sie im Bereich "Verwaltete Identitäten auswählen " die Dropdownliste "Verwaltete Identität " und wählen Sie "Vom Benutzer zugewiesene verwaltete Identität" aus.

    Screenshot der Auswahl des vom Benutzer zugewiesenen verwalteten Identitätstyps, den Sie im Portal verwenden möchten.

  10. Wählen Sie die zuvor erstellte vom Benutzer verwaltete Identität aus, und klicken Sie auf die Schaltfläche " Auswählen ".

  11. Klicken Sie auf "Überprüfen" und "Zuweisen ", um die Zuweisung der Rolle abzuschließen.

Weisen Sie Ihrer App eine verwaltete Identität zu.

Nachdem die Identität nun über die erforderliche RBAC verfügt, um auf den langlebigen Aufgabenplaner zuzugreifen, müssen Sie sie Ihrer App zuweisen.

  1. Rufen Sie die Ressourcen-ID der verwalteten Identität ab.

    resource_id=$(az resource show --resource-group RESOURCE_GROUP --name MANAGED_IDENTITY_NAME --resource-type Microsoft.ManagedIdentity/userAssignedIdentities --query id --output tsv)
    
  2. Weisen Sie der App die Identität zu.

    az functionapp identity assign --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --identities "$resource_id"
    
  1. Wählen Sie in Ihrer App im Portal Einstellungen>Identität aus.

  2. Klicken Sie auf die Registerkarte "Benutzer zugewiesen".

  3. Klicken Sie auf +Hinzufügen, und wählen Sie dann die im letzten Abschnitt erstellte Identität aus. Klicken Sie auf die Schaltfläche Hinzufügen .

    Screenshot des Hinzufügens der vom Benutzer zugewiesenen verwalteten Identität zu Ihrer Funktions-App im Portal.

Hinzufügen von Umgebungsvariablen zur App

Fügen Sie diese beiden Umgebungsvariablen zur App-Einstellung hinzu:

  • TASKHUB_NAME: Name des Aufgabenhubs
  • DURABLE_TASK_SCHEDULER_CONNECTION_STRING: Das Format der Zeichenfolge lautet "Endpoint={scheduler point};Authentication=ManagedIdentity;ClientID={client id}", wobei Endpoint der Zeitplanerendpunkt und client id die Client-ID der Identität ist.
  1. Rufen Sie die erforderlichen Informationen für die Verbindungszeichenfolge des langlebigen Aufgabenplaners ab.

    Zum Abrufen des Planerendpunkts.

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

    Zum Abrufen der Client-ID der verwalteten Identität.

    az identity show --name MANAGED_IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv
    
  2. Verwenden Sie den folgenden Befehl, um die Umgebungsvariable für die Planer-Verbindungszeichenfolge zur App hinzuzufügen.

    az functionapp config appsettings set --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --settings KEY_NAME=KEY_VALUE
    
  3. Wiederholen Sie den vorherigen Schritt, um eine Umgebungsvariable für den Namen des Aufgabenhubs hinzuzufügen.

  1. Rufen Sie die erforderlichen Informationen für die Verbindungszeichenfolge des langlebigen Aufgabenplaners ab.

    Um Ihren Scheduler-Endpunkt zu erhalten, navigieren Sie zur Registerkarte Übersicht Ihrer Scheduler-Ressource und suchen Sie im oberen Abschnitt Essentials nach "Endpunkt".

    Navigieren Sie zum Abrufen der Client-ID Ihrer verwalteten Identität zur Registerkarte Übersicht Ihrer Ressource, und suchen Sie im oberen Abschnitt Grundlagen nach „Client-ID“.

  2. Navigieren Sie im Portal zu Ihrer App.

  3. Klicken Sie im linken Menü auf Einstellungen>Umgebungsvariablen.

  4. Fügen Sie die Umgebungsvariable für die Verbindungszeichenfolge des Durable Task Schedulers hinzu.

  5. Hinzufügen einer Umgebungsvariable für den Namen des Aufgabenhubs.

  6. Klicken Sie auf Übernehmen und dann auf Bestätigen, um die Variablen hinzuzufügen.

Hinweis

Wenn Sie die vom System zugewiesene Identität verwenden, benötigt Ihre Verbindungszeichenfolge nicht die Client-ID der Identitätsressource: "Endpoint={scheduler endpoint};Authentication=ManagedIdentity".

Nächste Schritte