Compartilhar via


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:

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

  1. 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"
       }
    }
    
  2. 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.)

    Captura de tela que mostra a atribuição de acesso ao usuário.

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

Captura de tela que mostra a atribuição de acesso à identidade gerenciada.

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:

  1. No portal do Azure, no menu de recursos do aplicativo de funções, em Configurações, selecione Variáveis de ambiente.

  2. Na lista de configurações, selecione AzureWebJobsStorage e escolha o ícone Excluir. Captura de tela da configuração de armazenamento padrão.

  3. 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.

    Captura de tela do exemplo de ponto 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.

  4. 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

      Captura de tela da ID do cliente de identidade do usuário.

    Observação

    O Durable Functions não dá suporte a managedIdentityResourceId durante o uso da identidade atribuída pelo usuário. Use o clientId em vez disso.