Quickstart: Een token verkrijgen en Microsoft Graph aanroepen vanuit een Node.js-console-app
Artikel
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.
Voer een Naam in voor de toepassing, bijvoorbeeld msal-node-cli. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
Selecteer Registreren.
Selecteer onder Beheren de optie Certificaten en geheimen.
Selecteer onder Clientgeheimen de optie Nieuw clientgeheim. Voer een naam in en selecteer vervolgens Toevoegen. Noteer de waarde voor het geheim op een veilige locatie, voor gebruik in een latere stap.
Selecteer onder Beheren achtereenvolgens API-machtigingen>Een machtiging toevoegen. Selecteer Microsoft Graph.
Selecteer Toepassingstoestemming.
Selecteer onder het knooppunt Gebruiker de optie User.Read.All. Selecteer vervolgens Machtigingen toevoegen.
Enter_the_Application_Id_Here: is de id van de toepassing (client) van de toepassing die u eerder hebt geregistreerd. Zoek deze id in het overzicht van de app-registratie.
Enter_the_Tenant_Id_Here: vervang deze waarde door de Tenant-id of Tenantnaam (bijvoorbeeld contoso.microsoft.com). Zoek deze waarden in het overzicht van de app-registratie.
Enter_the_Client_Secret_Here: vervang deze waarde door het clientgeheim dat u eerder hebt gemaakt. Als u een nieuwe sleutel wilt genereren, gebruikt u Certificaten en geheimen in de app-registratie-instellingen.
Het gebruik van een geheim zonder tekst in de broncode vormt een verhoogd beveiligingsrisico voor uw toepassing. Hoewel in het voorbeeld in deze quickstart een clientgeheim zonder opmaak wordt gebruikt, is dit alleen voor de eenvoud. We raden u aan certificaatreferenties te gebruiken in plaats van clientgeheimen in uw vertrouwelijke clienttoepassingen, met name die apps die u wilt implementeren in productie.
Bewerk .env en vervang de Microsoft Entra-id en Microsoft Graph-eindpunten door de volgende waarden:
Vervang voor het Microsoft Entra-eindpunt door Enter_the_Cloud_Instance_Id_Herehttps://login.microsoftonline.com.
Vervang voor het Microsoft Graph-eindpunt door Enter_the_Graph_Endpoint_Herehttps://graph.microsoft.com/.
Stap 4: Toestemming van de beheerder
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: iemand die ten minste de rol Toepassingsbeheerder heeft toegewezen, moet toestemming geven voor uw toepassing. Selecteer een van de opties hieronder, afhankelijk van uw rol:
Beheerders
Als u ten minste de rol Toepassingsbeheerder hebt toegewezen, gaat u naar de pagina API-machtigingen in de toepassingsregistratie van de Azure-portal en selecteert u Beheerderstoestemming verlenen voor {Tenant Name} (waarbij {Tenant Name} de naam van uw directory is).
Standaardgebruikers
Als u een standaardgebruiker van uw tenant bent, moet u een cloudtoepassingsbeheerder vragen om beheerderstoestemming te verlenen voor uw toepassing. Daarvoor verstrekt u de volgende URL aan uw beheerder:
Enter_the_Tenant_Id_Here: vervang deze waarde door de Tenant-id of Tenantnaam (bijvoorbeeld contoso.microsoft.com)
Enter_the_Application_Id_Here: is de toepassings-id (client-id) voor de toepassing die u hebt geregistreerd.
Stap 5: De toepassing uitvoeren
Zoek de hoofdmap van het voorbeeld (waar package.json deze zich bevindt) in een opdrachtprompt of console. U moet de afhankelijkheden installeren die uw voorbeeld-app nodig heeft voordat u deze voor het eerst uitvoert:
Console
npm install
Voer dan de toepassing uit via de opdrachtprompt of console:
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.
Console
npm install @azure/msal-node --save
MSAL initialiseren
U kunt de verwijzing voor MSAL toevoegen door de volgende code toe te voegen:
JavaScript
const msal = require('@azure/msal-node');
Vervolgens initialiseert u MSAL met de volgende code:
JavaScript
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.
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.
Demonstreer de functies van Microsoft Entra ID om identiteitsoplossingen te moderniseren, hybride oplossingen te implementeren en identiteitsbeheer te implementeren.