Partilhar via


Autenticar em recursos do Azure a partir de aplicativos JavaScript locais

As aplicações executadas fora do Azure (por exemplo, no local ou num centro de dados de terceiros) devem usar um principal de serviço de aplicações para autenticar-se no Azure ao aceder recursos do Azure. Crie objetos principal de serviço de aplicação através do processo de registo de aplicação no Azure. Ao criar um principal do serviço de aplicação, o utilizador obtém uma ID de cliente e um segredo do cliente para o seu aplicativo. Armazene a ID do cliente, o segredo do cliente e a ID do locatário em variáveis de ambiente para que o SDK do Azure para JavaScript use essas variáveis para autenticar seu aplicativo no Azure em tempo de execução.

Crie um registro de aplicativo diferente para cada ambiente (como teste, estágio, produção) em que o aplicativo é executado. Essa configuração permite configurar permissões de recursos específicos do ambiente para cada entidade de serviço e garante que um aplicativo implantado em um ambiente não acesse os recursos do Azure em outro ambiente.

1 - Registar a aplicação no Azure

Você pode registrar um aplicativo com o Azure usando o portal do Azure ou a CLI do Azure.

Entre no portal do Azure e siga estas etapas.

Instructions Screenshot
No portal do Azure:
  1. Insira registros de aplicativos na barra de pesquisa na parte superior do portal do Azure.
  2. Selecione o item rotulado Registros de aplicativos sob o título Serviços no menu que aparece abaixo da barra de pesquisa.
Uma captura de tela mostrando como usar a barra de pesquisa superior no portal do Azure para localizar e navegar até a página Registros de aplicativos.
Na página Registos da aplicação, selecione + Novo registo. Uma captura de ecrã a mostrar a localização do botão Novo registo na página Registos da aplicação.
Na página Registar uma candidatura, preencha o formulário da seguinte forma.
  1. Nome → Insira um nome para o registro do aplicativo no Azure. Recomenda-se que esse nome inclua o nome do aplicativo e o ambiente (teste, prod) para o qual o registro do aplicativo se destina.
  2. Tipos de conta suportados → Contas somente neste diretório organizacional.
Selecione Registrar para registrar seu aplicativo e criar a entidade de serviço do aplicativo.
Uma captura de tela para preencher Registrar dando um nome ao aplicativo e especificando os tipos de conta suportados como contas somente neste diretório organizacional.
Na página Registo da aplicação para a sua aplicação:
  1. ID do aplicativo (cliente) → Esta é a ID do aplicativo que seu aplicativo usará para acessar o Azure durante o desenvolvimento local. Copie esse valor para um local temporário em um editor de texto, pois você precisará dele em uma etapa futura.
  2. ID do diretório (locatário) → Esse valor também será necessário para seu aplicativo quando ele se autenticar no Azure. Copie esse valor para um local temporário em um editor de texto, ele também será necessário em uma etapa futura.
  3. Credenciais do cliente → Você deve definir as credenciais do cliente para o aplicativo antes que seu aplicativo possa se autenticar no Azure e usar os serviços do Azure. Selecione Adicionar um certificado ou segredo para adicionar credenciais ao seu aplicativo.
Uma captura de ecrã do registo da Aplicação após a conclusão. Esta captura de tela mostra os IDs do aplicativo e do locatário, que você precisa em uma etapa futura.
Na página Certificados & segredos, selecione + Novo segredo do cliente. Uma captura de tela mostrando o local do link a ser usado para criar um novo segredo de cliente na página de certificados e segredos.
A caixa de diálogo Adicionar um segredo do cliente aparecerá no lado direito da página. Nesta caixa de diálogo:
  1. Descrição → Insira um valor de Atual.
  2. Expira → Selecione um valor de 24 meses.
Selecione Adicionar para adicionar o segredo.

IMPORTANTE: Defina um lembrete no seu calendário antes da data de expiração do segredo. Dessa forma, você pode adicionar um novo segredo antes e atualizar seus aplicativos antes da expiração desse segredo e evitar uma interrupção do serviço em seu aplicativo.
Uma captura de tela mostrando a página onde um novo segredo de cliente é adicionado para a entidade de serviço de aplicativo criada pelo processo de registro do aplicativo.
A página Certificados & segredos mostra o valor do segredo do cliente.

Copie esse valor para um local temporário em um editor de texto porque você precisa dele em uma etapa futura.

IMPORTANTE: Esta é a única vez que você verá esse valor. Depois de sair ou atualizar esta página, você não poderá ver esse valor novamente. Você pode adicionar outro segredo do cliente sem invalidar esse segredo do cliente, mas não verá esse valor novamente.
Uma captura de tela mostrando a página com o segredo do cliente gerado.

2 - Atribuir funções à entidade de serviço do aplicativo

Em seguida, determine quais funções (permissões) seu aplicativo precisa em quais recursos e atribua essas funções ao seu aplicativo. Atribua funções no âmbito do recurso, âmbito do grupo de recursos ou âmbito da subscrição. Este exemplo mostra como atribuir funções para a entidade de serviço 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.

Instructions Screenshot
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 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 da entidade de serviço que você criou para o aplicativo filtrar a lista.
  2. Selecione a entidade de serviço associada 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.
A entidade de serviço é mostrada como selecionada 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 - Configurar variáveis de ambiente para aplicação

Defina as variáveis de ambiente AZURE_CLIENT_ID, AZURE_TENANT_ID e AZURE_CLIENT_SECRET para o processo que executa o seu aplicativo JavaScript. Você precisa tornar disponíveis as credenciais do principal do serviço de aplicação para o seu aplicativo em tempo de execução. O DefaultAzureCredential objeto procura as informações da entidade de serviço nessas variáveis de ambiente.

AZURE_CLIENT_ID=<value>
AZURE_TENANT_ID=<value>
AZURE_CLIENT_SECRET=<value>

4 - Implementar DefaultAzureCredential no aplicativo

Para autenticar objetos de cliente do SDK do Azure no Azure, use a DefaultAzureCredential classe do pacote @azure/identity .

Primeiro, adicione 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, execute as seguintes etapas:

  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 desse código é mostrado no seguinte segmento de código.

// connect-with-default-azure-credential.js
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
import 'dotenv/config'

const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!accountName) throw Error('Azure Storage accountName not found');

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

Quando o código instancia o objeto DefaultAzureCredential, DefaultAzureCredential lê as variáveis de ambiente AZURE_SUBSCRIPTION_ID, AZURE_TENANT_ID, AZURE_CLIENT_ID e AZURE_CLIENT_SECRET para obter as informações da entidade de serviço de aplicativo com as quais se conectar ao Azure.