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:
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
- Node.js
- Visual Studio Code oder ein anderer Code-Editor
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)
Ihre Anwendung ist mit diesen Attributen konfiguriert.
Schritt 2: Herunterladen des Node.js-Beispielprojekts
Hinweis
Enter_the_Supported_Account_Info_Here
Schritt 3: Administratorzustimmung
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}
aufhttps://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: