Compartilhar via


Início rápido: Adquirir um token e chamar a API do Microsoft Graph em um aplicativo de console Node.js usando a identidade do aplicativo

Seja bem-vindo! Essa provavelmente não é a página que você esperava. Enquanto trabalhamos em uma correção, este link direcionará você para o artigo certo:

Início Rápido: Adquirir um token e chamar a API do Microsoft Graph de um aplicativo de console Node.js

Pedimos desculpas pela inconveniência e agradecemos sua paciência enquanto trabalhamos para resolver isso.

Neste guia de início rápido, você baixará e executará um exemplo de código que demonstra como um aplicativo de console Node.js pode obter um token de acesso usando a identidade do aplicativo para chamar a API do Microsoft Graph e exibir uma lista de usuários no diretório. O exemplo de código demonstra como um trabalho autônomo ou um serviço Windows pode ser executado com uma identidade de aplicativo, em vez de uma identidade do usuário.

Este guia de início rápido usa a Biblioteca de Autenticação da Microsoft para Node.js (nó MSAL) com a concessão de credenciais do cliente.

Pré-requisitos

Baixar e configurar o aplicativo de exemplo

Etapa 1: Configurar o aplicativo no portal do Azure

Para o exemplo de código deste início rápido funcionar, você precisará criar um segredo do cliente e adicionar a permissão de aplicativo User.Read.All da API do Graph.

Já configurado Esses atributos já estão configurados no seu aplicativo.

Etapa 2: Baixar o projeto de exemplo do Node.js

Observação

Enter_the_Supported_Account_Info_Here

Se você tentar executar o aplicativo neste ponto, receberá o erro HTTP 403 – Proibido: Insufficient privileges to complete the operation. Esse erro ocorre porque qualquer permissão somente de aplicativo requer consentimento do administrador: um administrador do seu diretório deve dar consentimento ao seu aplicativo. Selecione uma das opções abaixo, dependendo de sua função:

Administrador de locatários

Se você for um administrador, vá para a página Permissões da API e selecione Conceder consentimento do administrador para > Enter_the_Tenant_Name_Here

Usuário padrão

Se você for um usuário padrão do seu locatário, precisará solicitar pelo menos um administrador de aplicativos em nuvem para conceder consentimento administrativo para seu aplicativo. Para fazer isso, dê a seguinte URL ao administrador:

https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here

Etapa 4: Executar o aplicativo

Localize a pasta raiz do exemplo (em que package.json reside) em um prompt de comando ou console. Você precisará instalar as dependências deste exemplo uma só vez:

npm install

Em seguida, execute o aplicativo via prompt de comando ou console:

node . --op getUsers

Você deverá ver na saída do console um fragmento JSON que representa uma lista de usuários no diretório do Microsoft Entra.

Observações sobre o código

Abaixo, alguns aspectos importantes do aplicativo de exemplo são discutidos.

Nó MSAL

MSAL Node é a biblioteca usada para conectar usuários e solicitar tokens usados para acessar uma API protegida pela plataforma de identidade da Microsoft. Conforme descrito, este guia de início rápido solicita tokens por permissões de aplicativo (usando a própria identidade do aplicativo), em vez de permissões delegadas. O fluxo de autenticação usado nesse caso é conhecido como fluxo de credenciais do cliente OAuth 2.0. Para obter mais informações sobre como usar o MSAL Node com aplicativos daemon, confira Cenário: aplicativo daemon.

Instale o MSAL Node executando o comando npm a seguir.

npm install @azure/msal-node --save

Inicialização da MSAL

Você pode adicionar a referência da MSAL adicionando o seguinte código:

const msal = require('@azure/msal-node');

Em seguida, inicialize a MSAL usando o seguinte código:

const msalConfig = {
    auth: {
        clientId: "Enter_the_Application_Id_Here",
        authority: "https://login.microsoftonline.com/Enter_the_Tenant_Id_Here",
        clientSecret: "Enter_the_Client_Secret_Here",
   }
};
const cca = new msal.ConfidentialClientApplication(msalConfig);
Em que: Descrição
clientId É a ID do aplicativo (cliente) relativa ao aplicativo registrado no portal do Azure. Você pode encontrar esse valor na página Visão Geral do aplicativo no portal do Azure.
authority O ponto de extremidade do STS para o usuário autenticar. Normalmente, https://login.microsoftonline.com/{tenant} para a nuvem pública, em que {tenant} é o nome do seu locatário ou ID do seu locatário.
clientSecret É o segredo do cliente criado para o aplicativo no portal do Azure.

Para saber mais, confira a documentação de referência do ConfidentialClientApplication

Solicitando tokens

Para solicitar um token usando a identidade do aplicativo, use o método acquireTokenByClientCredential:

const tokenRequest = {
    scopes: [ 'https://graph.microsoft.com/.default' ],
};

const tokenResponse = await cca.acquireTokenByClientCredential(tokenRequest);
Em que: Descrição
tokenRequest Contém os escopos solicitados. Para clientes confidenciais, ele deve usar um formato semelhante a {Application ID URI}/.default para indicar que os escopos solicitados são os estaticamente definidos no objeto de aplicativo definido no portal do Azure (no caso do Microsoft Graph, {Application ID URI} aponta para https://graph.microsoft.com). Para APIs Web personalizadas, o {Application ID URI} é definido na seção Expor uma API no Registro de aplicativo do portal do Azure.
tokenResponse A resposta contém um token de acesso para os escopos solicitados.

Ajuda e suporte

Se precisar de ajuda, quiser relatar um problema ou desejar saber mais sobre as opções de suporte, confira Ajuda e suporte para desenvolvedores.

Próximas etapas

Para saber mais sobre o desenvolvimento de aplicativos daemon/de console com o MSAL Node, confira o tutorial: