Condividi tramite


Avvio rapido: Acquisire un token e chiamare l'API Microsoft Graph da un'app console Node.js usando l'identità dell'app

Ti diamo il benvenuto! Questa probabilmente non è la pagina che ci si aspettava. Mentre lavoriamo a una correzione, questo collegamento dovrebbe portare all'articolo corretto:

Avvio rapido: Acquisire un token e chiamare Microsoft Graph da un'app console di Node.js

Ci scusiamo per l'inconveniente e ringraziamo per la pazienza mentre lavoriamo per risolvere il problema.

In questa guida di avvio rapido si scarica e si esegue un esempio di codice che mostra come un'applicazione console Node.js può ottenere un token di accesso usando l'identità dell'app per chiamare l'API Microsoft Graph e visualizzare un elenco di utenti nella directory. L'esempio di codice dimostra come è possibile eseguire un processo o un servizio di Windows automatico con un'identità dell'applicazione invece che con un'identità dell'utente.

Questo argomento di avvio rapido usa Microsoft Authentication Library per Node.js (MSAL Node) con la concessione delle credenziali client.

Prerequisiti

Scaricare e configurare l'app di esempio

Passaggio 1: Configurare l'applicazione nel portale di Azure

Per fare in modo che l'esempio di codice per questo avvio rapido funzioni, è necessario creare un segreto client e aggiungere l'autorizzazione dell'applicazione User.Read.All dell'API Graph.

Configurazione già eseguita L'applicazione è configurata con questi attributi.

Passaggio 2: Scaricare il progetto di esempio Node.js

Nota

Enter_the_Supported_Account_Info_Here

Se si prova a eseguire l'applicazione a questo punto, si riceverà l'errore HTTP 403 - Accesso negato: Insufficient privileges to complete the operation. Questo errore si verifica perché qualsiasi autorizzazione solo app richiede il consenso amministratore: un amministratore della directory deve fornire il consenso all'applicazione. Selezionare una delle opzioni seguenti in base al ruolo:

Amministratore tenant

Se si è un amministratore, passare alla pagina Autorizzazioni API selezionare Concedi consenso amministratore per > Enter_the_Tenant_Name_Here

Utente standard

Se si è un utente standard del tenant, è necessario chiedere almeno a un amministratore di applicazioni cloud di concedere il consenso amministratore per l'applicazione. A tale scopo, assegnare l'URL seguente all'amministratore:

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

Passaggio 4: Eseguire l'applicazione

Individuare la cartella radice dell'esempio (dove si trova package.json) in un prompt dei comandi o in una console. Le dipendenze di questo esempio devono essere installate una sola volta:

npm install

Eseguire quindi l'applicazione tramite il prompt dei comandi o la console:

node . --op getUsers

Nell’output della console dovrebbe essere visualizzato un frammento JSON che rappresenta un elenco di utenti nella directory Microsoft Entra.

Informazioni sul codice

Di seguito vengono descritti alcuni degli aspetti importanti dell'applicazione di esempio.

MSAL Node

MSAL Node è la libreria usata per concedere l'accesso agli utenti e richiedere i token usati per accedere a un'API protetta da Microsoft Identity Platform. Come descritto, questa guida di avvio rapido richiede i token derivanti dalle autorizzazioni dell'applicazione (mediante l'identità propria dell'applicazione) invece delle autorizzazioni delegate. Il flusso di autenticazione usato in questo caso è noto come flusso delle credenziali client OAuth 2.0. Per altre informazioni sull'uso di MSAL Node con app daemon, vedere Scenario: applicazione daemon.

È possibile installare MSAL Node eseguendo il comando npm seguente.

npm install @azure/msal-node --save

Inizializzazione della libreria MSAL

È possibile aggiungere il riferimento per la libreria MSAL aggiungendo il codice seguente:

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

Inizializzare quindi la libreria MSAL usando il codice seguente:

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);
Dove: Descrizione
clientId ID applicazione (client) dell'applicazione registrata nel portale di Azure. Questo valore è riportato nella pagina Panoramica dell'app nel portale di Azure.
authority Endpoint del servizio token di sicurezza per l'utente da autenticare. In genere https://login.microsoftonline.com/{tenant} per il cloud pubblico, dove {tenant} è il nome del tenant o l'ID tenant.
clientSecret È il segreto client creato per l'applicazione nel portale di Azure.

Per altre informazioni, vedere la documentazione di riferimentoConfidentialClientApplication

Richiesta di token

Per richiedere un token con l'identità dell'app, usare il metodo acquireTokenByClientCredential:

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

const tokenResponse = await cca.acquireTokenByClientCredential(tokenRequest);
Dove: Descrizione
tokenRequest Contiene gli ambiti richiesti. Per i client riservati, dovrebbe essere usato un formato simile a {Application ID URI}/.default per indicare che gli ambiti che vengono richiesti sono quelli definiti in modo statico nell'oggetto app impostato nel portale di Azure. Per Microsoft Graph, {Application ID URI} punta a https://graph.microsoft.com. Per le API Web personalizzate, {Application ID URI} è definito nella sezione Esporre un'API della registrazione dell'applicazione del portale di Azure.
tokenResponse La risposta contiene un token di accesso per gli ambiti richiesti.

Assistenza e supporto

Se è necessaria assistenza, si vuole segnalare un problema o si vogliono ottenere informazioni sulle opzioni di supporto, vedere Assistenza e supporto per gli sviluppatori.

Passaggi successivi

Per altre informazioni sullo sviluppo di app daemon/console con MSAL Node, vedere l'esercitazione: