Guia de início rápido: configurar funções duráveis com identidade gerenciada
Uma identidade gerenciada do serviço de gerenciamento de acesso Microsoft Entra ID permite que seu aplicativo acesse outros recursos protegidos pelo Microsoft Entra, como uma conta de Armazenamento do Azure, sem manipular segredos manualmente. A identidade é gerenciada pela plataforma Azure, portanto, você não precisa provisionar ou girar nenhum segredo. A maneira recomendada de autenticar o acesso aos recursos do Azure é usando essa identidade.
Neste início rápido, você conclui as etapas para configurar um aplicativo de Funções Duráveis usando o provedor de Armazenamento do Azure padrão para usar conexões baseadas em identidade para acesso à conta de armazenamento.
Nota
A identidade gerenciada é suportada nas versões de extensão Durable Functions 2.7.0 e superiores.
Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Para concluir este guia de início rápido, necessita de:
- Um projeto de Funções Duráveis existente criado no portal do Azure ou um projeto de Funções Duráveis local implantado no Azure.
- Familiaridade com a execução de um aplicativo de Funções Duráveis no Azure.
Se você não tiver um projeto existente de Funções Duráveis implantado no Azure, recomendamos que comece com um dos seguintes inícios rápidos:
- Crie sua primeira função durável - C#
- Crie sua primeira função durável - JavaScript
- Crie sua primeira função durável - Python
- Crie sua primeira função durável - PowerShell
- Crie sua primeira função durável - Java
Desenvolvimento local
Usar o emulador de Armazenamento do Azure
Ao desenvolver localmente, é recomendável usar o Azurite, que é o emulador local do Armazenamento do Azure. Configure seu aplicativo para o emulador especificando "AzureWebJobsStorage": "UseDevelopmentStorage = true"
no local.settings.json.
Ligações identitárias para o desenvolvimento local
Estritamente falando, uma identidade gerenciada só está disponível para aplicativos ao executar no Azure. No entanto, você ainda pode configurar um aplicativo em execução local para usar a conexão baseada em identidade usando suas credenciais de desenvolvedor para autenticar em recursos do Azure. Em seguida, quando implantado no Azure, o aplicativo utilizará sua configuração de identidade gerenciada.
Ao usar credenciais de desenvolvedor, a conexão tenta obter um token dos seguintes locais, na referida ordem, para acessar seus recursos do Azure:
- Um cache local compartilhado entre aplicativos da Microsoft
- O contexto de usuário atual no Visual Studio
- O contexto de usuário atual no Visual Studio Code
- O contexto de usuário atual na CLI do Azure
Se nenhuma dessas opções for bem-sucedida, um erro informando que o aplicativo não pode recuperar o token de autenticação para seus recursos do Azure será exibido.
Configurar o tempo de execução para usar a identidade do desenvolvedor local
Especifique o nome da sua conta de Armazenamento do Azure no local.settings.json, por exemplo:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage__accountName": "<<your Azure Storage account name>>", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" } }
Vá para o recurso de conta de Armazenamento do Azure no portal do Azure, navegue até a guia Controle de Acesso (IAM) e clique em Adicionar atribuição de função. Encontre as seguintes funções:
- Contribuidor de dados da fila de armazenamento
- Contribuinte de Dados do Armazenamento de Blobs
- Contribuidor de Dados de Tabela de Armazenamento
Atribua as funções a si mesmo clicando em "+ Selecionar membros" e encontre seu e-mail na janela pop-up. (Este email é aquele que você usa para fazer logon em aplicativos da Microsoft, CLI do Azure ou editores da família Visual Studio.)
Conexões baseadas em identidade para aplicativo implantado no Azure
Habilitar recurso de identidade gerenciado
Para começar, habilite uma identidade gerenciada para seu aplicativo. Seu aplicativo de função deve ter uma identidade gerenciada atribuída ao sistema ou uma identidade gerenciada atribuída pelo usuário. Para habilitar uma identidade gerenciada para seu aplicativo de função e saber mais sobre as diferenças entre os dois tipos de identidades, consulte a visão geral da identidade gerenciada.
Atribuir funções de acesso à identidade gerenciada
Navegue até o recurso de Armazenamento do Azure do seu aplicativo no portal do Azure e atribua três funções RBAC (controle de acesso baseado em função) ao seu recurso de identidade gerenciado:
- Contribuidor de dados da fila de armazenamento
- Contribuinte de Dados do Armazenamento de Blobs
- Contribuidor de Dados de Tabela de Armazenamento
Para encontrar seu recurso de identidade, selecione atribuir acesso à identidade gerenciada e, em seguida, + Selecionar membros
Adicionar configuração de identidade gerenciada ao seu aplicativo
Antes de poder usar a identidade gerenciada do aplicativo, faça algumas alterações nas configurações do aplicativo:
No portal do Azure, no menu de recursos do aplicativo de função em Configurações, selecione Variáveis de ambiente.
Na lista de configurações, localize AzureWebJobsStorage e selecione 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 seu aplicativo for executado no Azure global, adicione a configuração
AzureWebJobsStorage__accountName
que identifica um nome de conta de armazenamento do Azure. Valor de exemplo:mystorageaccount123
Nuvem não Azure: se seu aplicativo for executado em uma nuvem fora do Azure, você deverá adicionar as três configurações a seguir para fornecer URIs (ou pontos de extremidade) de serviço específicos da conta de armazenamento em vez de um nome de 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 para essas variáveis de URI nas informações da conta de armazenamento na guia Pontos de extremidade .
Nota
Se você estiver usando o Azure Government ou qualquer outra nuvem separada do Azure global, deverá usar a opção que fornece URIs de serviço específicos 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 Government, consulte Desenvolver usando a API de Armazenamento no Azure Government.
Conclua sua configuração de identidade gerenciada (lembre-se de clicar em "Aplicar" depois de fazer as alterações de configuração):
Se você usar uma identidade atribuída ao sistema, não faça outras alterações.
Se você usar uma identidade atribuída pelo usuário, adicione as seguintes configurações na configuração do aplicativo:
AzureWebJobsStorage__credential, insira managedidentity
AzureWebJobsStorage__clientId, obtenha esse valor GUID do seu recurso de identidade gerenciado
Nota
Durable Functions não suporta
managedIdentityResourceId
ao usar a identidade atribuída pelo usuário. UtilizeclientId
em substituição.