Configurar o Durable Functions com o Microsoft Entra ID
O Microsoft Entra ID é um serviço de gerenciamento de identidade e acesso baseado em nuvem da Microsoft. As conexões baseadas em identidade permitem que o Durable Functions faça solicitações autorizadas referentes a recursos protegidos do Microsoft Entra, como uma conta de Armazenamento do Microsoft Azure, sem a necessidade de gerenciar segredos manualmente. Usando o provedor de armazenamento padrão do Azure, o Durable Functions precisa se autenticar em uma conta de armazenamento do Azure. Neste artigo, mostramos como configurar um aplicativo Durable Functions para utilizar dois tipos de conexões baseadas em identidade: credenciais de identidade gerenciada e credenciais de segredo do cliente.
Configurar seu aplicativo para usar a identidade gerenciada (recomendado)
Uma identidade gerenciada permite que o aplicativo acesse facilmente outros recursos protegidos pelo Microsoft Entra, como o Azure Key Vault. A identidade gerenciada tem suporte na extensão Durable Functions versão 2.7.0 e superiores.
Observação
Estritamente falando, uma identidade gerenciada só está disponível para aplicativos durante a execução no Azure. Quando configurado para usar conexões baseadas em identidade, um aplicativo em execução local utilizará suas credenciais de desenvolvedor para autenticar com recursos do Azure. Em seguida, quando implantado no Azure, ele utilizará sua configuração de identidade gerenciada.
Pré-requisitos
As etapas a seguir pressupõem que você esteja iniciando com um aplicativo Durable Functions existente e tenha conhecimento sobre como operá-lo. Em particular, este início rápido considera que você já:
- Criou um projeto do Durable Functions no portal do Azure ou implantou um Durable Functions local no Azure.
Se esse não for o caso, é aconselhável que você inicie com um dos seguintes artigos, pois eles fornecem instruções detalhadas sobre como atingir todos os requisitos acima:
- Criar a primeira função durável – C#
- Criar a primeira função durável – JavaScript
- Criar a primeira função durável – Python
- Criar a primeira função durável – PowerShell
- Criar a primeira função durável – Java
Habilitar a identidade gerenciada
Apenas uma identidade é necessária para sua função, seja uma identidade gerenciada atribuída pelo sistema ou uma identidade gerenciada atribuída pelo usuário. Para habilitar uma identidade gerenciada para sua função e saber mais sobre as diferenças entre as duas identidades, leia as instruções detalhadas aqui.
Atribuir RBAC (Controles de Acesso Baseados em Função) à identidade gerenciada
Navegue até o recurso de armazenamento do aplicativo no portal do Azure. Siga estas instruções para atribuir as seguintes funções ao recurso de identidade gerenciada.
- Colaborador de Dados da Fila de Armazenamento
- Colaborador de dados de blob de armazenamento
- Colaborador de dados da tabela de armazenamento
Adicionar uma configuração de identidade gerenciada no portal do Azure
Navegue até a página Configuração do aplicativo de funções do Azure e execute as seguintes alterações:
- Remova o valor padrão “AzureWebJobsStorage”.
Vincule sua conta de armazenamento do Azure adicionando uma das seguintes configurações de valor:
AzureWebJobsStorage__accountName: Por exemplo:
mystorageaccount123
AzureWebJobsStorage__blobServiceUri: Exemplo:
https://mystorageaccount123.blob.core.windows.net/
AzureWebJobsStorage__queueServiceUri: Exemplo:
https://mystorageaccount123.queue.core.windows.net/
AzureWebJobsStorage__tableServiceUri: Exemplo:
https://mystorageaccount123.table.core.windows.net/
Observação
Se você estiver usando o Azure Governamental ou qualquer outra nuvem separada do Azure global, precisará usar essa segunda opção para fornecer URLs de serviço específicas. Os valores dessas configurações podem ser encontrados na conta de armazenamento na guia Pontos de extremidade. Para obter mais informações sobre como usar o Armazenamento do Microsoft Azure com o Azure Governamental, leia a documentação Desenvolver com a API de Armazenamento no Azure Governamental.
Finalize sua configuração de identidade gerenciada:
Se a identidade atribuída pelo sistema tiver de ser usada, não especifique mais nada.
Se a identidade atribuída pelo usuário tiver de ser usada, adicione os seguintes valores de configurações de aplicativo na configuração do aplicativo:
AzureWebJobsStorage__credential: managedidentity
AzureWebJobsStorage__clientId: (esse é um valor de GUID obtido junto ao centro de administração do Microsoft Entra)
Configurar seu aplicativo para usar credenciais de segredo do cliente
Registrar um aplicativo cliente no Microsoft Entra ID é uma outra maneira de configurar o acesso a um serviço do Azure. Nas etapas a seguir, você aprenderá a usar credenciais de segredo do cliente para autenticação em sua conta de Armazenamento do Microsoft Azure. Esse método pode ser usado por aplicativos de funções localmente e no Azure. No entanto, a credencial de segredo do cliente é menos recomendada do que a identidade gerenciada, pois é mais complicado configurar e gerenciar e requer o compartilhamento de uma credencial secreta com o serviço Azure Functions.
Pré-requisitos
As etapas a seguir pressupõem que você esteja iniciando com um aplicativo Durable Functions existente e tenha conhecimento sobre como operá-lo. Em particular, este início rápido considera que você já:
- Criou um projeto do Durable Functions no computador local ou no portal do Azure.
Registrar um aplicativo cliente no Microsoft Entra ID
Registre um aplicativo cliente no Microsoft Entra ID no portal do Azure de acordo com essas instruções.
Crie um segredo do cliente para seu aplicativo cliente. Em seu aplicativo registrado:
Selecione Certificados & Segredos e selecione Novo segredo do cliente.
Preencha uma Descrição e escolha a hora válida do segredo no campo Expira.
Copie e salve o valor do segredo com cuidado porque ele não aparecerá novamente depois que você sair da página.
Atribuir RBAC (Controles de Acesso Baseados em Função) ao aplicativo cliente
Atribua essas três funções ao aplicativo cliente com as etapas a seguir.
- Colaborador de Dados da Fila de Armazenamento
- Colaborador de dados de blob de armazenamento
- Colaborador de dados da tabela de armazenamento
Navegue até a página de Controle de Acesso (IAM) da conta de armazenamento da sua função e adicione uma nova atribuição de função.
Escolha a função necessária, clique em avançar, pesquise seu aplicativo, examine e adicione.
Adicionar uma configuração de segredo do cliente
Para executar e testar no Azure, especifique o seguinte na página Configuração do aplicativo de funções do Azure no portal do Azure. Para executar e testar localmente, especifique o seguinte no arquivo local.settings.json da função.
Remova o valor padrão “AzureWebJobsStorage”.
Vincule a conta de armazenamento do Azure adicionando uma das seguintes configurações de valor:
AzureWebJobsStorage__accountName: Por exemplo:
mystorageaccount123
AzureWebJobsStorage__blobServiceUri: Exemplo:
https://mystorageaccount123.blob.core.windows.net/
AzureWebJobsStorage__queueServiceUri: Exemplo:
https://mystorageaccount123.queue.core.windows.net/
AzureWebJobsStorage__tableServiceUri: Exemplo:
https://mystorageaccount123.table.core.windows.net/
Os valores dessas variáveis de URI podem ser encontrados na conta de armazenamento na guia Pontos de extremidade.
Adicione uma credencial de segredo do cliente especificando os seguintes valores:
AzureWebJobsStorage__clientId: (esse é um valor de GUID encontrado na página do aplicativo do Microsoft Entra)
AzureWebJobsStorage__ClientSecret: (esse é o valor secreto gerado no centro de administração do Microsoft Entra em uma etapa anterior)
AzureWebJobsStorage__tenantId: (essa é a ID do locatário no qual o aplicativo do Microsoft Entra está registrado)
Os valores de ID do cliente e ID de locatário podem ser encontrados na página de visão geral do aplicativo cliente. O valor do segredo do cliente é aquele que foi cuidadosamente salvo na etapa anterior. Ele não estará disponível depois que a página for atualizada.