Início rápido: Configurar um aplicativo Durable Functions com a identidade gerenciada
Uma identidade gerenciada do serviço de gerenciamento de acesso Microsoft Entra ID permite que o seu aplicativo acesse outros recursos protegidos do Microsoft Entra, como uma conta do Armazenamento do Azure, sem manipular os segredos manualmente. A identidade é gerenciada pela plataforma Azure, portanto, você não precisa provisionar nem girar nenhum segredo. A maneira recomendada de autenticar o acesso aos recursos do Azure é usando essa identidade.
Neste início rápido, você vai concluir as etapas para configurar um aplicativo Durable Functions usando o provedor do Armazenamento do Microsoft Azure padrão para usar conexões baseadas em identidade para acesso à conta de armazenamento.
Observação
A identidade gerenciada tem suporte na extensão Durable Functions versão 2.7.0 e superiores.
Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Para concluir este início rápido, você precisa de:
- Um projeto do Durable Functions existente criado no portal do Azure ou um projeto do Durable Functions local implantado no Azure.
- Familiaridade com a execução de um aplicativo Durable Functions no Azure.
Se você não tiver um projeto do Durable Functions existente implantado no Azure, recomendamos que comece com um dos seguintes guias de início rápido:
- 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
Desenvolvimento local
Usar o emulador do Armazenamento do Azure
Durante o desenvolvimento local, é recomendável que você use o Azurite, o emulador local do Armazenamento do Azure. Configure seu aplicativo para o emulador especificando "AzureWebJobsStorage": "UseDevelopmentStorage = true"
em local.settings.json.
Conexões baseadas em identidade para o desenvolvimento local
Estritamente falando, uma identidade gerenciada só está disponível para aplicativos durante a execução no Azure. No entanto, você ainda pode configurar um aplicativo em execução localmente para usar a conexão baseada em identidade usando suas credenciais de desenvolvedor para se autenticar em recursos do Azure. Em seguida, quando implantado no Azure, o aplicativo utilizará sua configuração de identidade gerenciada.
Quando as credenciais de desenvolvedor são usadas, a conexão tenta obter um token dos seguintes locais, na ordem referida, para acesso aos recursos do Azure:
- Um cache local compartilhado entre aplicativos da Microsoft
- O contexto do usuário atual no Visual Studio
- O contexto do usuário atual no Visual Studio Code
- O contexto do usuário atual na CLI do Azure
Se nenhuma dessas opções for bem-sucedida, será exibido um erro informando que o aplicativo não pode recuperar o token de autenticação para seus recursos do Azure.
Configurar o runtime para usar a identidade do desenvolvedor local
Especifique o nome da sua conta do Armazenamento do Azure em local.settings.json, por exemplo:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage__accountName": "<<your Azure Storage account name>>", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" } }
Acesse o recurso da conta do Armazenamento do Azure no portal do Azure, navegue até a guia Controle de Acesso (IAM) e clique em Adicionar atribuição de função. Localize as seguintes funções:
- Colaborador de Dados da Fila de Armazenamento
- Colaborador de dados de blob de armazenamento
- Colaborador de dados da tabela de armazenamento
Atribua as funções a si mesmo clicando em “+ Selecionar membros” e encontrando seu email na janela pop-up. (Esse email é o que você usa para fazer logon em aplicativos da Microsoft, na CLI do Azure ou em editores da família Visual Studio.)
Conexões baseadas em identidade para o aplicativo implantado no Azure
Habilitar o recurso de identidade gerenciada
Para começar, habilite uma identidade gerenciada para o seu aplicativo. Seu aplicativo de funções precisa ter uma identidade gerenciada atribuída pelo sistema ou uma identidade gerenciada atribuída pelo usuário. Para habilitar uma identidade gerenciada para o seu aplicativo de funções e saber mais sobre as diferenças entre os dois tipos de identidades, confira a visão geral da identidade gerenciada.
Atribuir funções de acesso à identidade gerenciada
Navegue até o recurso do Armazenamento do Azure do aplicativo no portal do Azure e atribua três funções RBAC (controle de acesso baseado em função) 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
Para localizar o recurso de identidade, selecione Atribuir acesso à identidade gerenciada e, em seguida, + Selecionar membros
Adicionar uma configuração de identidade gerenciada ao seu aplicativo
Para usar a identidade gerenciada do seu aplicativo, faça algumas alterações nas configurações do aplicativo:
No portal do Azure, no menu de recursos do aplicativo de funções, em Configurações, selecione Variáveis de ambiente.
Na lista de configurações, selecione AzureWebJobsStorage e escolha o ícone Excluir.
Adicione uma configuração para vincular sua conta de armazenamento do Azure ao aplicativo.
Use um dos seguintes métodos, dependendo da nuvem em que seu aplicativo é executado:
Nuvem do Azure: se o seu aplicativo for executado no Azure global, adicione a configuração
AzureWebJobsStorage__accountName
que identifica um nome de conta do armazenamento do Azure. Valor de exemplo:mystorageaccount123
Nuvem que não é do Azure: se o aplicativo for executado em uma nuvem fora do Azure, você precisará adicionar as três configurações a seguir para fornecer URIs de serviço específicas (ou pontos de extremidade) da conta de armazenamento em vez do nome de uma conta.
Nome da configuração:
AzureWebJobsStorage__blobServiceUri
Valor de exemplo:
https://mystorageaccount123.blob.core.windows.net/
Nome da configuração:
AzureWebJobsStorage__queueServiceUri
Valor de exemplo:
https://mystorageaccount123.queue.core.windows.net/
Nome da configuração:
AzureWebJobsStorage__tableServiceUri
Valor de exemplo:
https://mystorageaccount123.table.core.windows.net/
Você pode obter os valores dessas variáveis de URI nas informações da conta de armazenamento, na guia Pontos de extremidade.
Observação
Se você estiver usando o Azure Governamental ou qualquer outra nuvem separada do Azure global, use a opção que fornece URIs de serviço específicas em vez de apenas o nome da conta de armazenamento. Para obter mais informações sobre como usar o Armazenamento do Azure com o Azure Governamental, confira Desenvolvimento com a API de Armazenamento no Azure Governamental.
Conclua a configuração da identidade gerenciada (lembre-se de clicar em “Aplicar” depois de fazer as alterações de configuração):
Se você usar uma identidade atribuída pelo sistema, não faça nenhuma outra alteração.
Se você usar uma identidade atribuída pelo usuário, adicione as seguintes configurações à configuração do seu aplicativo:
AzureWebJobsStorage__credential, enter managedidentity
AzureWebJobsStorage__clientId, obtenha esse valor de GUID no recurso de identidade gerenciada
Observação
O Durable Functions não dá suporte a
managedIdentityResourceId
durante o uso da identidade atribuída pelo usuário. Use oclientId
em vez disso.