Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Durable Task Scheduler utiliza identidade gerida para autenticação. Pode usar uma identidade gerida atribuída pelo utilizador ou uma identidade gerida atribuída pelo sistema. As identidades atribuídas pelo utilizador são recomendadas porque não estão ligadas ao ciclo de vida da aplicação e podem ser reutilizadas depois de a aplicação ser desprovisionada.
Este artigo aborda duas formas de configurar a identidade gerida:
- Configuração rápida — Um único comando CLI que automatiza a atribuição de funções, a ligação de identidade e a configuração das variáveis de ambiente.
- Configuração manual — Instruções passo a passo para controlo total de cada etapa de configuração.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Cria uma conta gratuitamente.
- Um Agendador de Tarefas Durável e um recurso de hub de tarefas já provisionados.
-
CLI do Azure com a extensão
durabletaskinstalada (az extension add --name durabletask). - Proprietário ou Administrador de Acesso ao Utilizador no recurso de agendamento (necessário para criar atribuições de funções).
Funções RBAC do Agendador de Tarefas Duradouras
Você pode conceder as seguintes funções relacionadas ao Agendador de Tarefas Duráveis a uma identidade:
| Função | Descrição |
|---|---|
| Colaborador para Dados de Tarefas Duráveis | Função para todas as operações de acesso a dados. Este papel é um superconjunto de todos os outros papéis. |
| Trabalhador de tarefa durável | Função usada por aplicativos de trabalho para interagir com o Agendador de Tarefas Duráveis. Atribua esta função se a sua aplicação for usada apenas para processar orquestrações, atividades e entidades. |
| Leitor de Dados de Tarefas Duráveis | Função para ler todos os dados do Agendador de Tarefas Duráveis. Atribua esta função se apenas precisar de listar orquestrações e ler os dados das entidades. |
Observação
A maioria das aplicações requer o papel de Contribuidor de Dados de Tarefas Duradouras .
Configuração rápida com az durabletask scheduler attach
O az durabletask scheduler attach comando automatiza a atribuição de funções, a ligação de identidade e a configuração das variáveis de ambiente num único comando.
O exemplo seguinte associa um agendador a uma Aplicação de Funções usando uma identidade gerida atribuída pelo utilizador com o papel de Contribuidor de Dados de Tarefas Duradouras :
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 uma aplicação de contentores:
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 omitir o --identity parâmetro, o comando usa a identidade gerida atribuída pelo sistema.
Para mais informações, consulte az durabletask scheduler attach.
Configuração manual
Se precisar de controlo detalhado em cada etapa, siga as instruções manuais abaixo para atribuir RBAC, anexar a identidade e configurar as variáveis do ambiente individualmente.
Atribuir controle de acesso baseado em função (RBAC) a um recurso de identidade gerenciado
Criar uma identidade gerenciada atribuída pelo usuário
az identity create -g RESOURCE_GROUP_NAME -n IDENTITY_NAMEDefina o cessionário 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 âmbito do hub de tarefas para acesso com privilégios mínimos. Use o âmbito do agendador apenas se a identidade precisar de acesso a todos os centros de tarefas num agendador.
Escopo do hub de tarefas (recomendado)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASKHUB_NAME"Âmbito do agendador (todos os centros de tarefas)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"Conceder acesso. Execute o seguinte comando para criar a atribuição de função e conceder acesso.
az role assignment create \ --assignee "$assignee" \ --role "Durable Task Data Contributor" \ --scope "$scope"Resultados esperados
O exemplo de saída a seguir mostra uma identidade de desenvolvedor atribuída com a função de Colaborador de Dados de Tarefa Durável 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 limitada a 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.
Crie uma identidade gerenciada atribuída pelo usuário.
Navegue até ao recurso Durable Task Scheduler no portal.
Selecione o nome do hub de tarefas.
No menu à esquerda, selecione Controle de acesso (IAM).
Selecione Adicionar para adicionar uma atribuição de funções.
Pesquise e selecione Colaborador de Dados de Tarefa Durável. Selecione Avançar.
Na guia Membros , para Atribuir acesso a, selecione Identidade gerenciada.
Para Membros, selecione + Selecionar membros.
No painel Selecionar identidades gerenciadas , expanda a lista suspensa Identidade gerenciada e selecione Identidade gerenciada atribuída pelo usuário.
Escolha a identidade gerida pelo utilizador previamente criada e selecione Selecionar.
Selecione Rever e atribuir para terminar a atribuição do papel.
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.
Obtenha o identificador de recurso da identidade gerida.
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 aplicação no portal, selecione Configurações>Identidade.
Selecione a guia Usuário atribuído .
Selecione + Adicionar, depois escolha a identidade criada na última secção. Selecione Adicionar.
Adicione variáveis de ambiente à sua aplicação
Adicione as seguintes duas variáveis de ambiente à sua aplicação:
| Variável de ambiente | Valor | Exemplo |
|---|---|---|
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 centro de tarefas | my-task-hub |
Observação
Se usar a identidade system-assigned, omita o parâmetro ClientID da cadeia de ligação: "Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity".
Obtenha a informação necessária para a cadeia de conexão.
Obtenha o endpoint do agendador:
az durabletask scheduler show --resource-group RESOURCE_GROUP_NAME --name SCHEDULER_NAME --query 'properties.endpoint' --output tsvObter o ID de cliente da identidade gerida:
az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsvDefine ambas as variáveis de ambiente na tua aplicação.
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 a informação necessária para a cadeia de conexão.
Para obter o seu endpoint do agendador, navegue até ao separador Overview do recurso do agendador e encontre Endpoint na secção Essenciais.
Para obter o ID do cliente de identidade gerida, navegue até ao separador Visão Geral do seu recurso de identidade gerida e encontre o ID do Cliente na secção Essenciais.
Navegue até à sua aplicação no portal.
No menu à esquerda, selecione Definições>Variáveis de Ambiente.
Adicione uma variável de ambiente chamada
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGcom o valorEndpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID>.Adiciona uma variável de ambiente com o
TASKHUB_NAMEnome do teu hub de tarefas.Seleciona Aplicar, depois Confirma para guardar as variáveis.