Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Durable Task Scheduler utilise l’identité managée pour l’authentification. Vous pouvez utiliser une identité managée affectée par l’utilisateur ou identité managée affectée par le système. Les identités affectées par l’utilisateur sont recommandées , car elles ne sont pas liées au cycle de vie de l’application et peuvent être réutilisées une fois l’application déprovisionnée.
Cet article décrit deux façons de configurer l’identité managée :
- Configuration rapide : commande CLI unique qui automatise l’attribution de rôle, la pièce jointe d’identité et la configuration des variables d’environnement.
- Configuration manuelle : instructions pas à pas pour un contrôle total sur chaque étape de configuration.
Prerequisites
- Un compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Une ressource de planificateur de tâches durable et hub de tâches déjà provisionnée.
-
Azure CLI avec l’extension
durabletaskinstallée (az extension add --name durabletask). - Propriétaire ou Administrateur d'accès utilisateur sur la ressource du planificateur (requis pour créer des attributions de rôles).
Rôles RBAC du planificateur de tâches durables
Vous pouvez accorder à une identité les rôles liés au "Durable Task Scheduler" suivants :
| Rôle | Description |
|---|---|
| Contributeur de données pour les tâches durables | Rôle pour toutes les opérations d’accès aux données. Ce rôle est un sur-ensemble de tous les autres rôles. |
| Travail de tâche durable | Rôle utilisé par les applications de travail pour interagir avec le planificateur de tâches durables. Attribuez ce rôle si votre application est utilisée uniquement pour le traitement des orchestrations, des activités et des entités. |
| Lecteur de données pour les tâches durables | Rôle permettant de lire toutes les données du planificateur de tâches durables. Attribuez ce rôle si vous devez uniquement répertorier les orchestrations et lire les charges utiles des entités. |
Note
La plupart des applications nécessitent le rôle Contributeur aux données des tâches durables.
Configuration rapide avec az durabletask scheduler attach
La az durabletask scheduler attach commande automatise l’attribution de rôle, la pièce jointe d’identité et la configuration des variables d’environnement dans une seule commande.
L’exemple suivant associe un planificateur à une application de fonctions à l’aide d’une identité managée assignée par l'utilisateur avec le rôle Contributeur aux données des tâches durables :
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
Pour une application conteneur :
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
Note
Si vous omettez le --identity paramètre, la commande utilise plutôt l’identité managée affectée par le système.
Pour plus d’informations, consultez az durabletask scheduler attach.
Installation manuelle
Si vous avez besoin d’un contrôle granulaire sur chaque étape, suivez les instructions manuelles ci-dessous pour affecter RBAC, attacher l’identité et configurer des variables d’environnement individuellement.
Attribuer un contrôle d’accès en fonction du rôle (RBAC) à une ressource d’identité managée
Créer une identité managée attribuée par l’utilisateur
az identity create -g RESOURCE_GROUP_NAME -n IDENTITY_NAMEDéfinir le destinataire sur la ressource d’identité créée
assignee=$(az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv)Définissez l’étendue. Utilisez l’étendue du hub de tâches pour un accès avec privilèges minimaux. Utilisez l’étendue du planificateur uniquement si l’identité a besoin d’accéder à tous les hubs de tâches dans un planificateur.
Étendue du hub de tâches (recommandé)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASKHUB_NAME"Étendue du planificateur (tous les hubs de tâches)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"Accorder l’accès. Exécutez la commande suivante pour créer l’attribution de rôle et accorder l’accès.
az role assignment create \ --assignee "$assignee" \ --role "Durable Task Data Contributor" \ --scope "$scope"Sortie attendue
L’exemple de sortie suivant montre une identité de développeur affectée au rôle Contributeur aux données des tâches durables au niveau du planificateur :
{ "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" }
Note
L’instruction suivante montre une attribution de rôle délimitée à un hub de tâches spécifique. Si vous avez besoin d’accéder à tous les hubs de tâches dans un planificateur, effectuez l’affectation au niveau du planificateur.
Accédez à la ressource Planificateur de tâches durables dans le portail.
Sélectionnez un nom de hub de tâches.
Dans le menu de gauche, sélectionnez Contrôle d’accès (IAM) .
Sélectionnez Ajouter pour ajouter une attribution de rôle.
Recherchez et sélectionnez Contributeur de données de tâche durable. Sélectionnez Suivant.
Sous l’onglet Membres , pour Affecter l’accès, sélectionnez Identité managée.
Pour les membres, sélectionnez + Sélectionner des membres.
Dans le volet Sélectionner des identités gérées, développez le menu déroulant Identité gérée et sélectionnez Identité gérée assignée par l’utilisateur.
Sélectionnez l’identité managée par l’utilisateur précédemment créée, puis sélectionnez Sélectionner.
Sélectionnez Vérifier + affecter pour terminer l’attribution du rôle.
Attribuer une identité managée à votre application
Maintenant que l’identité dispose du RBAC requis pour accéder au planificateur de tâches durables, vous devez l’affecter à votre application.
Obtenir l’ID de ressource de l’identité managée.
resource_id=$(az resource show --resource-group RESOURCE_GROUP_NAME --name IDENTITY_NAME --resource-type Microsoft.ManagedIdentity/userAssignedIdentities --query id --output tsv)Attribuez l’identité à l’app.
az functionapp identity assign --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --identities "$resource_id"
Dans votre application dans le portail, sélectionnez Paramètres>Identité.
Sélectionnez l’onglet Affecté à l’utilisateur.
Sélectionnez + Ajouter, puis sélectionnez l’identité créée dans la dernière section. Cliquez sur Ajouter.
Ajouter des variables d’environnement à votre application
Ajoutez les deux variables d’environnement suivantes à votre application :
| Variable d'environnement | Value | 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 |
Nom du hub de tâches | my-task-hub |
Note
Si vous utilisez l’identité attribuée par le système, omettez le paramètre ClientID de la chaîne de connexion : "Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity".
Obtenez les informations requises pour la chaîne de connexion.
Obtenez le point de terminaison du planificateur :
az durabletask scheduler show --resource-group RESOURCE_GROUP_NAME --name SCHEDULER_NAME --query 'properties.endpoint' --output tsvObtenez l’ID client de l’identité managée :
az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsvDéfinissez les deux variables d’environnement sur votre application.
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>"
Obtenez les informations requises pour la chaîne de connexion.
Pour obtenir votre point de terminaison du planificateur, accédez à l’onglet Vue d’ensemble de votre ressource de planificateur et recherchez point de terminaison dans la section Essentials .
Pour obtenir votre ID client d’identité managée, accédez à l’onglet Vue d’ensemble de votre ressource d’identité managée et recherchez l’ID client dans la section Essentials .
Accédez à votre application dans le portail.
Dans le menu de gauche, sélectionnez Paramètres>Variables d'environnement.
Ajoutez une variable d’environnement nommée
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGavec la valeurEndpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID>.Ajoutez une variable d’environnement nommée
TASKHUB_NAMEavec le nom de votre hub de tâches.Sélectionnez Appliquer, puis Confirmez pour enregistrer les variables.