Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Agendador de Tarefas Duráveis usa a identidade gerenciada para autenticação. Você pode usar uma identidade gerenciada atribuída pelo usuário ou atribuída pelo sistema . As identidades atribuídas pelo usuário são recomendadas porque não estão vinculadas ao ciclo de vida do aplicativo e podem ser reutilizados depois que o aplicativo é desprovisionado.
Este artigo aborda duas maneiras de configurar a identidade gerenciada:
- Configuração rápida – um único comando da CLI que automatiza a atribuição de função, o anexo de identidade e a configuração da variável de ambiente.
- Configuração manual – instruções passo a passo para controle total sobre cada etapa de configuração.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um recurso de agendador de tarefas durável e hub de tarefas já provisionado.
-
CLI do Azure com a extensão
durabletaskinstalada (az extension add --name durabletask). - Proprietário ou Administrador de Acesso do Usuário no recurso do agendador (necessário para criar atribuições de função).
Funções RBAC do Agendador de Tarefas Duráveis
Você pode conceder as seguintes funções relacionadas ao Agendador de Tarefas Duráveis a uma identidade:
| Função | Descrição |
|---|---|
| Colaborador de Dados de Tarefa Durável | Função para todas as operações de acesso a dados. Essa função é um superconjunto de todas as outras funções. |
| Trabalho de Tarefa Durável | Função usada por aplicativos de trabalho para interagir com o Agendador de Tarefas Duráveis. Atribua essa função se seu aplicativo for usado apenas para processar orquestrações, atividades e entidades. |
| Leitor de dados de tarefa durável | Função para ler todos os dados do Agendador de Tarefas Duráveis. Atribua esta função se você precisar apenas listar orquestrações e ler cargas de entidades. |
Observação
A maioria dos aplicativos requer a função Colaborador de Dados de Tarefas Duráveis.
Configuração rápida com az durabletask scheduler attach
O az durabletask scheduler attach comando automatiza a atribuição de função, o anexo de identidade e a configuração de variável de ambiente em um único comando.
O exemplo a seguir associa um agendador a um Aplicativo de Função usando uma identidade gerenciada atribuída pelo usuário com a função Colaborador de Dados de Tarefas Duráveis:
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 um aplicativo de contêiner:
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
Observação
Se você omitir o --identity parâmetro, o comando usará a identidade gerenciada atribuída pelo sistema.
Para mais informações, consulte az durabletask scheduler attach.
Configuração manual
Se você precisar de controle granular sobre cada etapa, siga as instruções manuais abaixo para atribuir RBAC, anexar a identidade e configurar variáveis de ambiente individualmente.
Atribuir RBAC (controle de acesso baseado em função) a um recurso de identidade gerenciada
Criar uma identidade gerenciada atribuída ao usuário
az identity create -g RESOURCE_GROUP_NAME -n IDENTITY_NAMEDefinir o atribuídor para o recurso de identidade criado
assignee=$(az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv)Defina o escopo. Use o escopo do hub de tarefas para acesso com privilégios mínimos. Use o escopo do agendador somente se a identidade precisar de acesso a todos os hubs de tarefas em um agendador.
Escopo do hub de tarefas (recomendado)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASKHUB_NAME"Escopo do agendador (todos os hubs de tarefas)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"Conceda acesso. Execute o comando a seguir para criar a atribuição de função e conceder acesso.
az role assignment create \ --assignee "$assignee" \ --role "Durable Task Data Contributor" \ --scope "$scope"Saída esperada
O exemplo de saída a seguir mostra uma identidade de desenvolvedor atribuída à função de Colaborador de Dados de Tarefas Duráveis no nível do agendador.
{ "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" }
Observação
A instrução a seguir mostra uma atribuição de função com escopo para um hub de tarefas específico. Se você precisar de acesso a todos os hubs de tarefas em um agendador, execute a atribuição no nível do agendador.
Navegue até o recurso Agendador de Tarefas Duráveis no portal.
Selecione um nome de hub de tarefas.
No menu à esquerda, selecione Controle de acesso (IAM) .
Selecione Adicionar para adicionar uma atribuição de função.
Pesquise e selecione Colaborador de Dados da Tarefa Durável. Selecione Próximo.
Na guia Membros , para atribuir acesso, selecione Identidade gerenciada.
Para Membros, selecione + Selecionar membros.
No painel Selecionar identidades gerenciadas, expanda o menu suspenso identidade gerenciada e selecione identidade gerenciada atribuída ao usuário.
Escolha a identidade gerenciada pelo usuário criada anteriormente e selecione Selecionar.
Selecione Examinar + atribuir para concluir a atribuição da função.
Atribuir identidade gerenciada ao seu aplicativo
Agora que a identidade tem o RBAC necessário para acessar o Agendador de Tarefas Duráveis, você precisa atribuí-la ao seu aplicativo.
Obter o ID do recurso da identidade gerenciada.
resource_id=$(az resource show --resource-group RESOURCE_GROUP_NAME --name IDENTITY_NAME --resource-type Microsoft.ManagedIdentity/userAssignedIdentities --query id --output tsv)Atribua a identidade ao aplicativo.
az functionapp identity assign --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --identities "$resource_id"
No seu aplicativo no portal, selecione Configurações>Identidade.
Selecione a guia Usuário atribuído.
Selecione + Adicionar e escolha a identidade criada na última seção. Selecione Adicionar.
Adicionar variáveis de ambiente ao seu aplicativo
Adicione as duas variáveis de ambiente a seguir ao seu aplicativo:
| Variável de ambiente | Valor | 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 |
O nome do hub de tarefas | my-task-hub |
Observação
Se você usar a identidade atribuída pelo sistema, omita o parâmetro ClientID da string de conexão: "Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity".
Obtenha as informações necessárias para a cadeia de conexão.
Obter o ponto de extremidade do agendador:
az durabletask scheduler show --resource-group RESOURCE_GROUP_NAME --name SCHEDULER_NAME --query 'properties.endpoint' --output tsvObtenha a ID do cliente da identidade gerenciada:
az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsvDefina ambas as variáveis de ambiente em seu aplicativo.
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>"
Obtenha as informações necessárias para a cadeia de conexão.
Para obter o ponto de extremidade do seu agendador, acesse a guia Visão geral do recurso do agendador e procure por Ponto de extremidade na seção Conceitos Básicos.
Para obter a ID do cliente da identidade gerenciada, navegue até a guia Visão geral do recurso de identidade gerenciada e localize a ID do cliente na seção Essenciais.
Acesse seu aplicativo no portal.
No menu à esquerda, selecioneVariáveis de Ambiente de >.
Adicione uma variável de ambiente nomeada
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGcom o valorEndpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID>.Adicione uma variável de ambiente nomeada
TASKHUB_NAMEcom o nome do hub de tarefas.Selecione Aplicar e confirme para salvar as variáveis.