Freigeben über


Schnellstart: Abrufen eines Tokens und Aufrufen der Microsoft Graph-API über eine Node.js-Konsolen-App unter Verwendung der App-Identität

Willkommen! Dies ist wahrscheinlich nicht die Seite, die Sie erwartet haben. Während wir an einer Korrektur arbeiten, sollten Sie über diesen Link zum richtigen Artikel gelangen:

Schnellstart: Abrufen eines Tokens und Aufrufen der Microsoft Graph-API aus einer Node.js-Konsolen-App

Wir entschuldigen uns für die Unannehmlichkeiten und bitten Sie um Geduld, während wir an einer Lösung arbeiten.

Das Codebeispiel, das in dieser Schnellstartanleitung heruntergeladen und ausgeführt wird, zeigt, wie eine Node.js-Konsolenanwendung unter Verwendung der App-Identität ein Zugriffstoken abrufen kann, um die Microsoft Graph-API aufzurufen und eine Liste mit Benutzern im Verzeichnis anzuzeigen. Das Codebeispiel veranschaulicht, wie ein unbeaufsichtigter Auftrag oder Windows-Dienst mit einer Anwendungsidentität anstelle der Identität eines Benutzers ausgeführt werden kann.

In dieser Schnellstartanleitung wird die Microsoft-Authentifizierungsbibliothek (Microsoft Authentication Library, MSAL) für Node.js (MSAL Node) mit der Gewährung von Clientanmeldeinformationen verwendet.

Voraussetzungen

Herunterladen und Konfigurieren der Beispiel-App

Schritt 1: Konfigurieren der Anwendung im Azure-Portal

Damit das Codebeispiel für diese Schnellstartanleitung funktioniert, müssen Sie einen geheimen Clientschlüssel erstellen und die Anwendungsberechtigung User.Read.All aus der Graph-API hinzufügen.

Make these changes for me (Diese Änderungen für mich vornehmen)

Bereits konfiguriert Ihre Anwendung ist mit diesen Attributen konfiguriert.

Schritt 2: Herunterladen des Node.js-Beispielprojekts

Hinweis

Enter_the_Supported_Account_Info_Here

Wenn Sie zu diesem Zeitpunkt versuchen, die Anwendung auszuführen, wird der Fehler HTTP 403 – Verboten angezeigt: Insufficient privileges to complete the operation. Dieser Fehler tritt auf, da für eine nur für die App geltende Berechtigung eine Administratoreinwilligung erforderlich ist. Administrator:innen Ihres Verzeichnisses müssender Anwendung also ihre Einwilligung geben. Wählen Sie je nach Ihrer Rolle eine der unten angegebenen Optionen aus:

Mandantenadministrator

Gehen Sie als Administrator:in wie folgt vor: Navigieren Sie zur Seite API-Berechtigungen, und wählen Sie Administratoreinwilligung für >Mandantennamen_hier_eingeben erteilen aus.

Standardbenutzer

Wenn Sie Standardbenutzer:in Ihres Mandanten sind, müssen Sie eine Person mit mindestens der Rolle „Cloudanwendungsadministrator“ bitten, die Administratoreinwilligung für Ihre Anwendung zu erteilen. Übermitteln Sie hierzu die folgende URL an Ihren Administrator:

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

Schritt 4: Ausführen der Anwendung

Navigieren Sie über eine Eingabeaufforderung oder Konsole zum Stammordner des Beispiels (in dem sich package.json befindet). Sie müssen einmalig die Abhängigkeiten dieses Beispiels installieren:

npm install

Führen Sie dann die Anwendung über die Eingabeaufforderung oder über die Konsole aus:

node . --op getUsers

Die Konsolenausgabe sollte ein JSON-Fragment enthalten, das eine Liste der Benutzer in Ihrem Microsoft Entra-Verzeichnis darstellt.

Informationen zum Code

Im Anschluss werden einige wichtige Aspekte der Beispielanwendung erläutert.

MSAL Node

MSAL Node ist die Bibliothek zum Anmelden von Benutzern und Anfordern von Token, die für den Zugriff auf eine durch Microsoft Identity Platform geschützte API verwendet wird. In dieser Schnellstartanleitung werden Token nicht auf der Grundlage von delegierten Berechtigungen, sondern wie beschrieben auf der Grundlage von Anwendungsberechtigungen (unter Verwendung der anwendungseigenen Identität) angefordert. Der hier verwendete Authentifizierungsablauf wird als OAuth 2.0-Clientanmeldeinformationsflow bezeichnet. Weitere Informationen zur Verwendung von MSAL Node mit Daemon-Apps finden Sie unter Szenario: Daemon-App zum Aufrufen von Web-APIs.

MSAL Node kann mithilfe des folgenden npm-Befehls installiert werden:

npm install @azure/msal-node --save

MSAL-Initialisierung

Sie können den Verweis auf MSAL hinzufügen, indem Sie den folgenden Code hinzufügen:

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

Initialisieren Sie MSAL anschließend mit dem folgenden 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);
Hierbei gilt: BESCHREIBUNG
clientId Die Anwendungs-ID (Client) für die im Azure-Portal registrierte Anwendung. Dieser Wert befindet sich im Azure-Portal auf der Seite Übersicht der App.
authority Der STS-Endpunkt für den zu authentifizierenden Benutzer. Normalerweise https://login.microsoftonline.com/{tenant} für die öffentliche Cloud, wobei „{tenant}“ der Name Ihres Mandanten bzw. Ihre Mandanten-ID ist.
clientSecret Der geheime Clientschlüssel, der für die Anwendung im Azure-Portal erstellt wird.

Weitere Informationen finden Sie in der Referenzdokumentation für ConfidentialClientApplication.

Anfordern von Token

Verwenden Sie die acquireTokenByClientCredential-Methode, um ein Token mit der Identität einer App anzufordern:

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

const tokenResponse = await cca.acquireTokenByClientCredential(tokenRequest);
Hierbei gilt: BESCHREIBUNG
tokenRequest Enthält die angeforderten Bereiche. Für vertrauliche Clients sollte ein Format wie {Application ID URI}/.default verwendet werden. Hiermit wird angegeben, dass die angeforderten Bereiche diejenigen sind, die im App-Objekt, das im Azure-Portal festgelegt ist, statisch definiert sind (für Microsoft Graph wird für {Application ID URI} auf https://graph.microsoft.com verwiesen). Für benutzerdefinierte Web-APIs wird {Application ID URI} in der Anwendungsregistrierung im Azure-Portal unter dem Abschnitt Eine API verfügbar machen definiert.
tokenResponse Die Antwort enthält ein Zugriffstoken für die angeforderten Bereiche.

Hilfe und Support

Wenn Sie Hilfe benötigen, ein Problem melden möchten oder sich über Ihre Supportoptionen informieren möchten, finden Sie weitere Informationen unter Hilfe und Support für Entwickler.

Nächste Schritte

Weitere Informationen zur Entwicklung von Daemon-/Konsolen-Apps mit MSAL Node finden Sie im folgenden Tutorial: