Delen via


Quickstart: Een token verkrijgen en Microsoft Graph API aanroepen vanuit een Node.js console-app met behulp van de identiteit van de app

Welkom. Dit is waarschijnlijk niet de pagina die u verwachtte te zien. Terwijl we aan een oplossing voor dit probleem werken, kunt u met deze koppeling naar het juiste artikel gaan:

Quickstart: Een token verkrijgen en Microsoft Graph aanroepen vanuit een Node.js-console-app

Onze excuses voor het ongemak en bedankt voor uw geduld tijdens onze inspanningen om dit probleem op te lossen.

In deze quickstart downloadt u een codevoorbeeld en voert u dit uit. Het codevoorbeeld laat zien hoe u met een Node.js consoletoepassing een toegangstoken kunt krijgen, met behulp van de app-id, om de Microsoft Graph API aan te roepen en een lijst met gebruikers weer te geven in de map. Het codevoorbeeld laat zien hoe een taak of Windows-service zonder toezicht kan worden uitgevoerd met een toepassings-id, in plaats van een gebruikers-id.

In deze quickstart wordt de Microsoft Authentication Library voor Node.js (MSAL Node) gebruikt met het verlenen van clientreferenties.

Vereisten

De voorbeeld-app downloaden en configureren

Stap 1: De toepassing configureren in de Azure-portal

Om ervoor te zorgen dat het codevoorbeeld voor deze quickstart werkt, moet u een clientgeheim maken en de toepassingstoestemming User.Read.All van Graph API toevoegen.

Al geconfigureerd Uw toepassing is geconfigureerd met deze kenmerken.

Stap 2: Het Node.js-voorbeeldproject downloaden

Notitie

Enter_the_Supported_Account_Info_Here

Als u op dit moment probeert de toepassing uit te voeren, krijgt u de foutmelding HTTP 403: verboden: Insufficient privileges to complete the operation. Deze fout treedt op omdat voor elke app alleen beheerderstoestemming is vereist: een beheerder van uw directory moet toestemming geven voor uw toepassing. Selecteer een van de opties hieronder, afhankelijk van uw rol:

Tenantbeheerder

Als u een beheerder bent, gaat u naar de pagina API-machtigingen en selecteert u Beheerderstoestemming verlenen voor > Enter_the_Tenant_Name_Here

Standaardgebruiker

Als u een standaardgebruiker van uw tenant bent, moet u ten minste een cloudtoepassingsbeheerder vragen om beheerderstoestemming te verlenen voor uw toepassing. Daarvoor verstrekt u de volgende URL aan uw beheerder:

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

Stap 4: De toepassing uitvoeren

Zoek de hoofdmap van het voorbeeld (waar package.json deze zich bevindt) in een opdrachtprompt of console. U moet de afhankelijkheden van dit voorbeeld eenmaal installeren:

npm install

Voer dan de toepassing uit via de opdrachtprompt of console:

node . --op getUsers

U ziet in de console uitvoer een JSON-fragment dat een lijst met gebruikers in uw Microsoft Entra-map vertegenwoordigt.

Over de code

Hieronder worden enkele belangrijke aspecten van de voorbeeldtoepassing besproken.

MSAL Node

MSAL Node is de bibliotheek die wordt gebruikt voor het aanmelden van gebruikers en de aanvraagtokens die worden gebruikt voor toegang tot een API die is beveiligd via het Microsoft-identiteitsplatform. Zoals beschreven, worden met deze snelstart tokens aangevraagd door toepassingstoestemming (met behulp van de eigen identiteit van de toepassing) in plaats van gedelegeerde machtigingen. De verificatiestroom die in dit voorbeeld wordt gebruikt, staat bekend als de OAuth-stroom voor clientreferenties. Zie Scenario: Daemon-toepassing voor meer informatie over het gebruik van MSAL Node met daemonapps.

U kunt MSAL Node installeren door de volgende npm-opdracht uit te voeren.

npm install @azure/msal-node --save

MSAL initialiseren

U kunt de verwijzing voor MSAL toevoegen door de volgende code toe te voegen:

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

Vervolgens initialiseert u MSAL met de volgende code:

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);
Hierin: Beschrijving
clientId Is de Toepassings-id (client-id) voor de toepassing die is geregistreerd in de Azure-portal. U vindt deze waarde op de pagina Overzicht in de Azure-portal.
authority Het STS-eindpunt voor de gebruiker voor verificatie. Dat is meestal https://login.microsoftonline.com/{tenant} voor de openbare cloud, waarbij {tenant} de naam van uw tenant of uw tenant-id is.
clientSecret Het clientgeheim is dat voor de toepassing in Azure-portal wordt gemaakt.

Zie de naslagdocumentatie voor ConfidentialClientApplication voor meer informatie

Tokens aanvragen

Als u een token wilt aanvragen met behulp van de identiteit van de app, gebruikt u de acquireTokenByClientCredential-methode:

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

const tokenResponse = await cca.acquireTokenByClientCredential(tokenRequest);
Hierin: Beschrijving
tokenRequest De aangevraagde bereiken bevat. Voor vertrouwelijke clients moet hiervoor de indeling worden gebruikt die vergelijkbaar is met {Application ID URI}/.default om aan te geven dat de aangevraagde bereiken dezelfde zijn die statisch zijn gedefinieerd in het app-object dat is ingesteld in de Azure-portal (voor Microsoft Graph verwijst {Application ID URI} naar https://graph.microsoft.com). Voor aangepaste web-API's wordt {Application ID URI} gedefinieerd in de sectie Een API beschikbaar maken in de registratie van toepassingen van de Azure-portal.
tokenResponse Het antwoord bevat een toegangstoken voor de aangevraagde bereiken.

Help en ondersteuning

Als u hulp nodig hebt, een probleem wilt melden of meer informatie wilt over uw ondersteuningsopties, raadpleegt u Hulp en ondersteuning voor ontwikkelaars.

Volgende stappen

Zie voor meer informatie over de ontwikkeling van daemon-/consoletoepassingen met MSAL Node de zelfstudie: