Partilhar via


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:

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

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

    Captura de ecrã a mostrar a atribuição de acesso ao utilizador.

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

Captura de ecrã a mostrar a atribuição de acesso à identidade gerida.

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:

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

  2. Na lista de configurações, localize AzureWebJobsStorage e selecione 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 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 .

    Captura de tela do exemplo de ponto final.

    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.

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

      Captura de ecrã do ID do cliente de identidade do utilizador.

    Nota

    Durable Functions não suporta managedIdentityResourceId ao usar a identidade atribuída pelo usuário. Utilize clientId em substituição.