Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Agendador de Tarefas Durável suporta apenas a autenticação de identidade gerida atribuída ao utilizador ou ao sistema. As identidades atribuídas pelo usuário são recomendadas, pois não estão vinculadas ao ciclo de vida do aplicativo e podem ser reutilizadas depois que o aplicativo for desprovisionado.
Você pode conceder as seguintes funções relacionadas ao Agendador de Tarefas Duráveis a uma identidade:
| Funções | 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 precisar apenas de uma lista de orquestrações e dados de entidades. |
Observação
A maioria dos aplicativos de Funções Duráveis requer a função de Colaborador de Dados de Tarefa Durável .
Neste artigo, você aprenderá a conceder permissões a um recurso de identidade e configurar seu aplicativo de computação para usar a identidade para acesso a agendadores e hubs de tarefas.
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. A concessão de acesso no escopo do agendador dá acesso a todos os hubs de tarefas nesse agendador.
Hub de Tarefas
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASKHUB_NAME"Agendador
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é o recurso de planeador de tarefas persistente no portal.
Clique no nome de um hub de tarefas.
No menu à esquerda, selecione Controle de acesso (IAM).
Clique em Adicionar para adicionar uma atribuição de função.
Pesquise e selecione Colaborador de Dados de Tarefa Durável. Clique em Next.
Na guia Membros , para Atribuir acesso a, selecione Identidade gerenciada.
Para Membros, clique em + 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 gerenciada pelo usuário criada anteriormente e clique no botão Selecionar .
Clique em Rever e atribuir para concluir 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 ID do recurso de gerenciar identidade.
resource_id=$(az resource show --resource-group RESOURCE_GROUP --name MANAGED_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.
Clique na guia Usuário atribuído .
Clique em + Adicionar e escolha a identidade criada na última seção. Clique no botão Adicionar.
Adicionar variáveis de ambiente ao aplicativo
Adicione estas duas variáveis de ambiente à configuração do aplicativo:
-
TASKHUB_NAME: nome do hub de tarefas -
DURABLE_TASK_SCHEDULER_CONNECTION_STRING: o formato da cadeia de caracteres é"Endpoint={scheduler point};Authentication=ManagedIdentity;ClientID={client id}", ondeEndpointé o ponto de extremidade do agendador eclient idé o ID do cliente da identidade.
Obtenha as informações necessárias para a cadeia de conexão do Agendador de Tarefas Duráveis.
Para obter o endpoint do agendador.
az durabletask scheduler show --resource-group RESOURCE_GROUP_NAME --name DTS_NAME --query 'properties.endpoint' --output tsvPara obter o ID do cliente da identidade gerenciada.
az identity show --name MANAGED_IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsvUse o comando a seguir para adicionar a variável de ambiente para a cadeia de conexão do agendador ao aplicativo.
az functionapp config appsettings set --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --settings KEY_NAME=KEY_VALUERepita a etapa anterior para adicionar a variável de ambiente para o nome do hub de tarefas.
Obtenha as informações necessárias para a cadeia de conexão do Agendador de Tarefas Duráveis.
Para obter o endpoint do agendador, navegue até ao separador Resumo do recurso do agendador e encontre "Endpoint" na seção superior de Informações Essenciais.
Para obter a sua ID de cliente de identidade gerida, navegue até ao separador Resumo do seu recurso e encontre "ID do cliente" na parte superior da seção Essentials.
Navegue até a sua aplicação no portal.
No menu à esquerda, clique em Configurações>Variáveis de ambiente.
Adicione a variável de ambiente para a cadeia de conexão do Agendador de Tarefas Durável.
Adicione a variável de ambiente para o nome do hub de tarefas.
Clique em Aplicar e, em seguida, em Confirmar para adicionar as variáveis.
Observação
Se você usar a identidade atribuída pelo sistema, sua cadeia de conexão não precisará da ID do cliente do recurso de identidade: "Endpoint={scheduler endpoint};Authentication=ManagedIdentity".