Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der dauerhafte Aufgabenplaner verwendet verwaltete Identität für die Authentifizierung. Sie können entweder eine vom Benutzer zugewiesene oder vom System zugewiesene verwaltete Identität verwenden. Vom Benutzer zugewiesene Identitäten werden empfohlen, da sie nicht an den Lebenszyklus der App gebunden sind und nach der Stilllegung der App wiederverwendet werden können.
In diesem Artikel werden zwei Möglichkeiten zum Konfigurieren der verwalteten Identität behandelt:
- Schnellkonfiguration – Ein einzelner CLI-Befehl, der die Rollenzuweisung, Identitätsverknüpfung und die Konfiguration von Umgebungsvariablen automatisiert.
- Manuelle Einrichtung – Schrittweise Anleitungen zur vollständigen Kontrolle über die einzelnen Konfigurationsschritte.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Kostenlos ein Konto erstellen.
- Eine Ressource für einen dauerhaften Vorgangsplaner und einen Task Hub, die bereits bereitgestellt wurde.
-
Azure CLI mit der installierten erweiterung
durabletask(az extension add --name durabletask). - Rolle "Besitzer" oder "Benutzerzugriffsadministrator " für die Schedulerressource (erforderlich zum Erstellen von Rollenzuweisungen).
Durable Task Scheduler RBAC-Rollen
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 Orchestrierungen auflisten und Entitätsnutzlasten lesen müssen. |
Hinweis
Für die meisten Apps ist die Rolle "Durable Task Data Contributor" erforderlich.
Schnelles Einrichten mit az durabletask scheduler attach
Der az durabletask scheduler attach Befehl automatisiert die Rollenzuweisung, das Anhängen von Identitäten und die Konfiguration von Umgebungsvariablen in einem einzigen Befehl.
Im folgenden Beispiel wird ein Scheduler an eine Funktions-App angefügt, die eine vom Benutzer zugewiesene verwaltete Identität mit der Rolle Durable Task Data Contributor verwendet:
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 eine Container-App:
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
Hinweis
Wenn Sie den --identity Parameter weglassen, verwendet der Befehl stattdessen die vom System zugewiesene verwaltete Identität.
Weitere Informationen finden Sie unter az durabletask scheduler attach.
Manuelle Einrichtung
Wenn Sie eine präzise Kontrolle über jeden Schritt benötigen, befolgen Sie die nachstehenden manuellen Anweisungen, um RBAC zuzuweisen, die Identität anzufügen und Umgebungsvariablen einzeln zu konfigurieren.
Zuweisen von RBAC (rollenbasierte Zugriffssteuerung) zu einer verwalteten Identitätsressource
Erstellen einer benutzerseitig zugewiesenen verwalteten Identität
az identity create -g RESOURCE_GROUP_NAME -n IDENTITY_NAMEFestlegen der zugewiesenen Person auf die erstellte Identitätsressource
assignee=$(az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv)Legen Sie den Bereich fest. Verwenden Sie den Aufgabenhubbereich für den Zugriff auf die geringsten Rechte. Verwenden Sie den Scheduler-Bereich nur, wenn die Identität Zugang zu allen Task Hubs in einem Scheduler benötigt.
Aufgabenhubbereich (empfohlen)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASKHUB_NAME"Scheduler-Bereich (alle Task Hubs)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"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.
Erstellen einer benutzerseitig zugewiesenen verwalteten Identität.
Navigieren Sie im Portal zur Ressource "Durable Task Scheduler".
Wählen Sie einen Aufgabenhubnamen aus.
Wählen Sie im linken Menü Zugriffssteuerung (IAM) aus.
Wählen Sie "Hinzufügen" aus, um eine Rollenzuweisung hinzuzufügen.
Suchen Sie Mitwirkender an langlebigen Aufgabendaten, und wählen Sie die Rolle aus. Wählen Sie Weiteraus.
Wählen Sie auf der Registerkarte " Mitglieder " für "Zugriff zuweisen"die Option "Verwaltete Identität" aus.
Wählen Sie für Mitglieder die Option + Mitglieder auswählen aus.
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.
Wählen Sie die zuvor erstellte vom Benutzer verwaltete Identität und dann "Auswählen" aus.
Wählen Sie "Überprüfen" und "Zuweisen " aus, 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.
Erhalte die Ressourcen-ID der verwalteten Identität.
resource_id=$(az resource show --resource-group RESOURCE_GROUP_NAME --name IDENTITY_NAME --resource-type Microsoft.ManagedIdentity/userAssignedIdentities --query id --output tsv)Weisen Sie der App die Identität zu.
az functionapp identity assign --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --identities "$resource_id"
Wählen Sie in Ihrer App im Portal Einstellungen>Identität aus.
Wählen Sie die Registerkarte Benutzer zugewiesen aus.
Wählen Sie +Hinzufügen aus, und wählen Sie dann die im letzten Abschnitt erstellte Identität aus. Wählen Sie Hinzufügen.
Hinzufügen von Umgebungsvariablen zu Ihrer App
Fügen Sie Ihrer App die folgenden beiden Umgebungsvariablen hinzu:
| Umgebungsvariable | Wert | Example |
|---|---|---|
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 |
Der Name des Aufgabenhubs | my-task-hub |
Hinweis
Wenn Sie system-assigned Identity verwenden, lassen Sie den Parameter ClientID aus dem Verbindungszeichenfolge: "Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity" aus.
Rufen Sie die erforderlichen Informationen für die Verbindungszeichenfolge ab.
Den Scheduler-Endpunkt abrufen:
az durabletask scheduler show --resource-group RESOURCE_GROUP_NAME --name SCHEDULER_NAME --query 'properties.endpoint' --output tsvClient-ID der verwalteten Identität abrufen:
az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsvLegen Sie beide Umgebungsvariablen für Ihre App fest.
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>"
Rufen Sie die erforderlichen Informationen für die Verbindungszeichenfolge ab.
Um Ihren Scheduler-Endpunkt zu erhalten, navigieren Sie zur Registerkarte "Übersicht" Ihrer Scheduler-Ressource und suchen Sie Endpunkt im Abschnitt "Essentials".
Um Ihre verwaltete Identitätsclient-ID abzurufen, navigieren Sie zur Registerkarte "Übersicht" Ihrer verwalteten Identitätsressource, und suchen Sie im Abschnitt "Essentials" die Client-ID.
Navigieren Sie im Portal zu Ihrer App.
Wählen Sie im linken Menü Einstellungen>Umgebungsvariablen aus.
Fügen Sie eine Umgebungsvariable mit dem Namen
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGund dem WertEndpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID>hinzu.Fügen Sie eine Umgebungsvariable
TASKHUB_NAMEmit dem Namen Des Aufgabenhubs hinzu.Wählen Sie "Übernehmen" und anschließend "Bestätigen" aus, um die Variablen zu speichern.