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 só dá suporte à autenticação de identidade gerenciada atribuída pelo usuário ou atribuída pelo 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 reutilizados depois que o aplicativo é desprovisionado.
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 essa função se você precisar apenas de uma lista de orquestrações e conteúdos de entidades. |
Observação
A maioria dos aplicativos do Durable Functions exige a função Colaborador de Dados do Durable Functions.
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 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. A concessão de acesso no escopo do agendador confere 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"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 com a função de Colaborador de Dados da 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 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 de agendador de tarefas durável no portal.
Clique em um nome de 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 da Tarefa Durável. Clique em Próximo.
Na guia Membros , para atribuir acesso, selecione Identidade gerenciada.
Para Membros, clique em + 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 clique no botão Selecionar .
Clique em 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 ID do recurso da identidade de gerenciamento.
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 aplicativo 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}", em queEndpointé o ponto de extremidade do agendador eclient idé a 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 ponto de extremidade do agendador.
az durabletask scheduler show --resource-group RESOURCE_GROUP_NAME --name DTS_NAME --query 'properties.endpoint' --output tsvPara obter a 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 ao 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 ponto de extremidade do agendador, navegue atá a guia Visão Geral do recurso do agendador e localize “Ponto de extremidade” na seção superior Essentials.
Para obter a ID do cliente de identidade gerenciada, navegue até a guia Visão geral do seu recurso e localize "ID do cliente" na seção superior do Essentials.
Navegue até seu aplicativo no portal.
No menu à esquerda, clique emVariáveis de Ambiente de >.
Adicionar variável de ambiente para a cadeia de conexão do Agendador de Tarefas Duráveis.
Adicionar variável de ambiente para o nome do hub de tarefas.
Clique em Aplicar e confirme para adicionar as variáveis.
Observação
Se você usar a identidade atribuída pelo sistema, a cadeia de conexão não precisará da ID do cliente do recurso de identidade: "Endpoint={scheduler endpoint};Authentication=ManagedIdentity".