Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Durable Task Scheduler usa la identidad administrada para la autenticación. Puede usar una identidad administrada asignada por el usuario o asignada por el sistema . Se recomiendan identidades asignadas por el usuario porque no están vinculadas al ciclo de vida de la aplicación y se pueden reutilizar después de desaprovisionar la aplicación.
En este artículo se tratan dos maneras de configurar la identidad administrada:
- Configuración rápida : un único comando de la CLI que automatiza la asignación de roles, los datos adjuntos de identidad y la configuración de variables de entorno.
- Configuración manual : instrucciones paso a paso para el control total sobre cada paso de configuración.
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Ya se ha aprovisionado un recurso del programador de tareas duraderas y del centro de tareas.
-
CLI de Azure con la extensión
durabletaskinstalada (az extension add --name durabletask). - Propietario o Administrador de acceso de usuario en el recurso del planificador (necesario para crear asignaciones de roles).
Roles RBAC del programador de tareas duraderas
Puede conceder los siguientes roles relacionados con el Programador de Tareas Duraderas a una identidad:
| Función | Descripción |
|---|---|
| Colaborador de datos de Durable Task | Rol para todas las operaciones de acceso a datos. Este rol es un superconjunto de todos los demás roles. |
| Trabajador de Tareas Duraderas | Rol usado por las aplicaciones de trabajo para interactuar con el Programador de tareas duraderas. Asigne este rol en caso de que la aplicación se use solo para procesar orquestaciones, actividades y entidades. |
| Lector de datos de Durable Task | Rol para leer todos los datos del Programador de tareas duraderas. Asigne este rol si solo necesita enumerar orquestaciones y leer cargas de entidad. |
Nota:
La mayoría de las aplicaciones requieren el rol de Colaborador de Datos de Durable Task.
Configuración rápida con az durabletask scheduler attach
El az durabletask scheduler attach comando automatiza la asignación de roles, los datos adjuntos de identidad y la configuración de variables de entorno en un solo comando.
En el ejemplo siguiente se asocia un programador a una aplicación de funciones mediante una identidad administrada asignada por el usuario con el rol Colaborador de datos de tareas duraderas :
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
Para una aplicación de contenedor:
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
Nota:
Si omite el --identity parámetro , el comando usa la identidad administrada asignada por el sistema en su lugar.
Para obtener más información, consulte Asociación del programador de tareas duraderas de Azure.
Configuración manual
Si necesita un control pormenorizado sobre cada paso, siga las instrucciones manuales siguientes para asignar RBAC, adjuntar la identidad y configurar variables de entorno individualmente.
Asignación del control de acceso basado en rol (RBAC) a un recurso de identidad administrada
Creación de una identidad administrada asignada por el usuario
az identity create -g RESOURCE_GROUP_NAME -n IDENTITY_NAMEEstablezca el usuario asignado en el recurso de identidad creado
assignee=$(az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv)Establezca el ámbito. Use ambito de concentrador de tareas para acceso con privilegios mínimos. Use el ámbito del planificador solo si la identidad necesita acceso a todos los centros de tareas de un planificador.
Ámbito del centro de tareas (recomendado)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASKHUB_NAME"Ámbito del planificador (todos los concentradores de tareas)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"Conceder acceso. Ejecute el comando siguiente para crear la asignación de roles y conceder acceso.
az role assignment create \ --assignee "$assignee" \ --role "Durable Task Data Contributor" \ --scope "$scope"Salida prevista
En el ejemplo de salida siguiente, se muestra una identidad de desarrollador asignada con el rol Colaborador de datos de tareas duraderas a nivel del programador:
{ "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" }
Nota:
En la siguiente instrucción se muestra una asignación de roles con ámbito de una central de tareas específica. Si necesita acceso a todos los centros de tareas de un programador, realice la asignación en el nivel del programador.
Creación de una identidad administrada asignada por el usuario.
Vaya al recurso Programador de tareas duraderas en el portal.
Seleccione un nombre del centro de tareas.
En el menú izquierdo, seleccione Control de acceso (IAM) .
Seleccione Agregar para agregar una asignación de roles.
Busque y seleccione Colaborador de datos de Durable Task. Seleccione Siguiente.
En la pestaña Miembros, para Asignar acceso a, seleccione Identidad administrada.
En Miembros, seleccione + Seleccionar miembros.
En el panel Seleccionar identidades administradas, expanda la lista desplegable Identidad administrada y seleccione Identidad administrada asignada por el usuario.
Elija la identidad administrada por el usuario creada anteriormente y seleccione Seleccionar.
Seleccione Revisar y asignar para terminar de asignar el rol.
Asignación de una identidad administrada a la aplicación
Ahora que la identidad tiene el RBAC necesario para acceder al Programador de tareas duraderas, debe asignarlo a la aplicación.
Obtenga el identificador del recurso de la identidad administrada.
resource_id=$(az resource show --resource-group RESOURCE_GROUP_NAME --name IDENTITY_NAME --resource-type Microsoft.ManagedIdentity/userAssignedIdentities --query id --output tsv)Asigne la identidad a la aplicación.
az functionapp identity assign --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --identities "$resource_id"
En la aplicación del portal, seleccione Configuración>Identidad.
Seleccione la pestaña Usuario asignado.
Seleccione + Agregar y, a continuación, elija la identidad creada en la última sección. Selecciona Agregar.
Adición de variables de entorno a la aplicación
Agregue las dos variables de entorno siguientes a la aplicación:
| Variable del entorno | Value | Ejemplo |
|---|---|---|
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 |
Nombre del centro de tareas | my-task-hub |
Nota:
Si usa identidad asignada por el sistema, omita el parámetro ClientID del cadena de conexión: "Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity".
Obtenga la información necesaria para la cadena de conexión.
Obtenga el punto de conexión del programador:
az durabletask scheduler show --resource-group RESOURCE_GROUP_NAME --name SCHEDULER_NAME --query 'properties.endpoint' --output tsvObtenga el identificador de cliente de la identidad administrada:
az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsvEstablezca ambas variables de entorno en la aplicación.
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>"
Obtenga la información necesaria para la cadena de conexión.
Para obtener el punto de conexión del planificador, vaya a la pestaña Información general del recurso del planificador y busque Punto de conexión en la sección Esenciales.
Para obtener el ID de Cliente de la identidad administrada, vaya a la pestaña Resumen del recurso de identidad administrada y busque el ID de Cliente en la sección Elementos esenciales.
Navega a tu aplicación en el portal.
En el menú izquierdo, seleccione Configuración Variables> deentorno.
Agregue una variable de entorno denominada
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGcon el valorEndpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID>.Agregue una variable de entorno denominada
TASKHUB_NAMEcon el nombre del centro de tareas.Seleccione Aplicar y, a continuación, Confirmar para guardar las variables.