Autenticar aplicativos JavaScript nos serviços do Azure durante o desenvolvimento local usando contas de desenvolvedor

Quando você cria aplicativos na nuvem, os desenvolvedores precisam depurar e testar aplicativos em suas estações de trabalho locais. Quando um aplicativo é executado na estação de trabalho de um desenvolvedor durante o desenvolvimento local, ele ainda deve se autenticar em todos os serviços do Azure usados pelo aplicativo. Este artigo aborda como usar as credenciais do Azure de um desenvolvedor para autenticar o aplicativo no Azure durante o desenvolvimento local.

Um diagrama mostrando um aplicativo de desenvolvimento local em execução obtendo uma entidade de serviço de um arquivo .env e usando essa identidade para se conectar aos recursos do Azure.

Para que um aplicativo se autentique no Azure durante o desenvolvimento local usando as credenciais do Azure do desenvolvedor, o desenvolvedor deve estar conectado ao Azure a partir da extensão Ferramentas do Azure do Visual Studio Code, da CLI do Azure ou do Azure PowerShell. O SDK do Azure para JavaScript é capaz de detetar que o desenvolvedor está conectado a partir de uma dessas ferramentas e, em seguida, obter as credenciais necessárias do cache de credenciais para autenticar o aplicativo no Azure como o usuário conectado.

Essa abordagem é mais fácil de configurar para uma equipe de desenvolvimento, pois aproveita as contas existentes do Azure dos desenvolvedores. No entanto, a conta de um desenvolvedor provavelmente terá mais permissões do que as exigidas pelo aplicativo, excedendo assim as permissões com as quais o aplicativo é executado em produção. Como alternativa, você pode criar entidades de serviço de aplicativo para usar durante o desenvolvimento local, que podem ter escopo para ter apenas o acesso necessário para o aplicativo.

1 - Criar grupo Microsoft Entra para desenvolvimento local

Como quase sempre há vários desenvolvedores que trabalham em um aplicativo, é recomendável primeiro criar um grupo do Microsoft Entra para encapsular as funções (permissões) de que o aplicativo precisa no desenvolvimento local. Isto oferece as seguintes vantagens.

  • Todos os desenvolvedores têm a garantia de ter as mesmas funções atribuídas, uma vez que as funções são atribuídas no nível do grupo.
  • Se uma nova função for necessária para o aplicativo, ela só precisará ser adicionada ao grupo Microsoft Entra para o aplicativo.
  • Se um novo desenvolvedor se juntar à equipe, ele simplesmente deve ser adicionado ao grupo correto do Microsoft Entra para obter as permissões corretas para trabalhar no aplicativo.

Se você tiver um grupo existente do Microsoft Entra para sua equipe de desenvolvimento, poderá usar esse grupo. Caso contrário, conclua as etapas a seguir para criar um grupo do Microsoft Entra.

Instruções Captura de ecrã
Navegue até a página ID do Microsoft Entra no portal do Azure digitando ID do Microsoft Entra na caixa de pesquisa na parte superior da página e selecionando ID do Microsoft Entra em serviços. Uma captura de tela mostrando como usar a barra de pesquisa superior no portal do Azure para pesquisar e navegar até a página ID do Microsoft Entra.
Na página ID do Microsoft Entra , selecione Grupos no menu à esquerda. Uma captura de tela mostrando o local do item de menu Grupos no menu esquerdo da página Diretório padrão do Microsoft Entra ID.
Na página Todos os grupos, selecione Novo grupo. Uma captura de ecrã a mostrar a localização do botão Novo Grupo na página Todos os grupos.
Na página Novo Grupo:
  1. Tipo de grupo → Segurança.
  2. Nome do grupo → Um nome para o grupo de segurança, normalmente criado a partir do nome do aplicativo. Também é útil incluir uma cadeia de caracteres como local-dev no nome do grupo para indicar a finalidade do grupo.
  3. Descrição do grupo → Uma descrição do objetivo do grupo.
  4. Selecione o link Sem membros selecionados em Membros para adicionar membros ao grupo.
Uma captura de tela mostrando como criar um novo grupo do Microsoft Entra. O local do link a ser selecionado para adicionar membros a esse grupo é realçado.
Na caixa de diálogo Adicionar membros :
  1. Use a caixa de pesquisa para filtrar a lista de nomes de usuário na lista.
  2. Escolha um ou mais usuários para desenvolvimento local para este aplicativo. À medida que você escolhe um objeto, o objeto se move para a lista Itens selecionados na parte inferior da caixa de diálogo.
  3. Quando terminar, escolha o botão Selecionar .
Uma captura de tela da caixa de diálogo Adicionar membros mostrando como selecionar contas de desenvolvedor a serem incluídas no grupo.
De volta à página Novo grupo , selecione Criar para criar o grupo.

O grupo será criado e você será levado de volta para a página Todos os grupos . Pode levar até 30 segundos para que o grupo apareça e talvez seja necessário atualizar a página devido ao cache no portal do Azure.
Uma captura de tela da página Novo Grupo mostrando como concluir o processo selecionando o botão Criar.

2 - Atribuir funções ao grupo Microsoft Entra

Em seguida, você precisa determinar quais funções (permissões) seu aplicativo precisa em quais recursos e atribuir essas funções ao seu aplicativo. Neste exemplo, as funções são atribuídas ao grupo Microsoft Entra criado na etapa 1. As funções podem ser atribuídas a uma função em um recurso, grupo de recursos ou escopo de assinatura. Este exemplo mostra como atribuir funções no escopo do grupo de recursos, já que a maioria dos aplicativos agrupa todos os seus recursos do Azure em um único grupo de recursos.

Instruções Captura de ecrã
Localize o grupo de recursos para seu aplicativo pesquisando o nome do grupo de recursos usando a caixa de pesquisa na parte superior do portal do Azure.

Navegue até o grupo de recursos selecionando o nome do grupo de recursos sob o título Grupos de Recursos na caixa de diálogo.
Uma captura de tela mostrando como usar a caixa de pesquisa superior no portal do Azure para localizar e navegar até o grupo de recursos ao qual você deseja atribuir funções (permissões).
Na página do grupo de recursos, selecione Controle de acesso (IAM) no menu à esquerda. Uma captura de tela da página do grupo de recursos mostrando o local do item de menu Controle de acesso (IAM).
Na página Controle de acesso (IAM):
  1. Selecione o separador Atribuição de funções.
  2. Selecione + Adicionar no menu superior e, em seguida, Adicionar atribuição de função no menu suspenso resultante.
Uma captura de tela mostrando como navegar até a guia atribuições de função e o local do botão usado para adicionar atribuições de função a um grupo de recursos.
A página Adicionar atribuição de função lista todas as funções que podem ser atribuídas para o grupo de recursos.
  1. Use a caixa de pesquisa para filtrar a lista para um tamanho mais gerenciável. Este exemplo mostra como filtrar funções de Blob de Armazenamento.
  2. Selecione a função que pretende atribuir.
    Selecione Avançar para ir para a próxima tela.
Uma captura de tela mostrando como filtrar e selecionar atribuições de função a serem adicionadas ao grupo de recursos.
A próxima página Adicionar atribuição de função permite especificar a qual usuário atribuir a função.
  1. Selecione Usuário, grupo ou entidade de serviço em Atribuir acesso a.
  2. Selecione + Selecionar membros em Membros
Uma caixa de diálogo é aberta no lado direito do portal do Azure.
Uma captura de tela mostrando o botão de opção a ser selecionado para atribuir uma função a um grupo do Microsoft Entra e o link usado para selecionar o grupo ao qual atribuir a função.
Na caixa de diálogo Selecionar membros:
  1. A caixa de texto Selecionar pode ser usada para filtrar a lista de usuários e grupos em sua assinatura. Se necessário, digite os primeiros caracteres do grupo de desenvolvimento local do Microsoft Entra que você criou para o aplicativo.
  2. Selecione o grupo de desenvolvimento local do Microsoft Entra associado ao seu aplicativo.
Selecione Selecionar na parte inferior da caixa de diálogo para continuar.
Uma captura de tela mostrando como filtrar e selecionar o grupo Microsoft Entra para o aplicativo na caixa de diálogo Selecionar membros.
O grupo Microsoft Entra é exibido como selecionado na tela Adicionar atribuição de função.

Selecione Rever + atribuir para ir para a página final e, em seguida, Rever + atribuir novamente para concluir o processo.
Uma captura de tela mostrando a página Adicionar atribuição de função concluída e o local do botão Revisar + atribuir usado para concluir o processo.

3 - Entre no Azure usando o VS Code, a CLI do Azure ou o Azure PowerShell

Abra um terminal na estação de trabalho do desenvolvedor e entre no Azure a partir do Azure PowerShell.

Connect-AzAccount

4 - Implementar DefaultAzureCredential em seu aplicativo

Para autenticar objetos de cliente do SDK do Azure no Azure, seu aplicativo deve usar a DefaultAzureCredential@azure/identity classe do pacote. Nesse cenário, DefaultAzureCredential verificará sequencialmente se o desenvolvedor entrou no Azure usando a extensão de ferramentas do Azure VS Code, a CLI do Azure ou o Azure PowerShell. Se o desenvolvedor estiver conectado ao Azure usando qualquer uma dessas ferramentas, as credenciais usadas para entrar na ferramenta serão usadas pelo aplicativo para autenticar no Azure.

Comece adicionando o pacote @azure/identity ao seu aplicativo.

npm install @azure/identity

Em seguida, para qualquer código JavaScript que crie um objeto de cliente do SDK do Azure em seu aplicativo, você deseja:

  1. Importe a DefaultAzureCredential classe do @azure/identity módulo.
  2. Crie um DefaultAzureCredential objeto.
  3. Passe o DefaultAzureCredential objeto para o construtor de objeto de cliente do SDK do Azure.

Um exemplo disso é mostrado no segmento de código a seguir.

import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';

// Acquire a credential object
const tokenCredential = DefaultAzureCredential();

const blobServiceClient = BlobServiceClient(
        `https://${accountName}.blob.core.windows.net`,
        tokenCredential
);

DefaultAzureCredential detetará automaticamente o mecanismo de autenticação configurado para o aplicativo e obterá os tokens necessários para autenticar o aplicativo no Azure. Se um aplicativo fizer uso de mais de um cliente SDK, o mesmo objeto de credencial poderá ser usado com cada objeto cliente SDK.