Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Mitarbeitermieter
Externe Mieter (weitere Informationen)
Dieses Lernprogramm ist Teil 1 einer Reihe, die das Erstellen einer Node.js Befehlszeilenschnittstellen-App (CLI) veranschaulicht und die Authentifizierung mithilfe des Microsoft Entra Admin Centers vorbereitet. Die Clientanwendung, die Sie erstellen, verwendet den OAuth 2.0-Autorisierungscodefluss mit PKCE (Proof Key for Code Exchange) für die sichere Benutzerauthentifizierung.
In diesem Tutorial werden Sie:
- Erstellen eines neuen Node.js-Anwendungsprojekts
- Installieren von App-Abhängigkeiten
- Erstellen des MSAL-Konfigurationsobjekts
Voraussetzungen
- Registrieren Sie eine neue App im Microsoft Entra Admin Center, die nur für Konten in diesem Organisationsverzeichnis konfiguriert ist. Weitere Informationen finden Sie unter Registrieren einer Anwendung . Notieren Sie die folgenden Werte auf der Anwendungsübersichtsseite für die spätere Verwendung:
- Anwendungs-ID (Client)
- Verzeichnis-ID (Mandant)
- Fügen Sie die folgenden Umleitungs-URIs mithilfe der Plattformkonfiguration für Mobile- und Desktopanwendungen hinzu . Weitere Informationen finden Sie unter Hinzufügen eines Umleitungs-URI in Ihrer Anwendung .
- Umleitungs-URI:
http://localhost
- Umleitungs-URI:
- Ordnen Sie Ihre App einem Benutzerfluss im Microsoft Entra Admin Center zu. Dieser Benutzerfluss kann in mehreren Anwendungen verwendet werden. Weitere Informationen finden Sie unter Erstellen von Self-Service-Registrierungsbenutzerflüssen für Apps in externen Mandanten und Hinzufügen Ihrer Anwendung zum Benutzerablauf.
- Sie können jede integrierte Entwicklungsumgebung (IDE) verwenden, die React-Anwendungen unterstützt. In diesem Tutorial wird Visual Studio Code verwendet.
- Node.js
Aktivieren des öffentlichen Clientflows
Führen Sie diese Schritte aus, um Ihre App als öffentlichen Client zu identifizieren:
Wählen Sie unter Verwalten die Option Authentifizierung aus.
Wählen Sie unter Erweiterte Einstellungen für Öffentliche Clientflows zulassen die Option Ja aus.
Wählen Sie Speichern aus, um Ihre Änderungen zu speichern.
Erstellen eines neuen Node.js-Anwendungsprojekts
Hier erstellen Sie eine CLI-Anwendung mit Node.js von Grund auf neu. Wenn Sie lieber ein fertiges Codebeispiel zum Lernen verwenden möchten, laden Sie die Node.js-CLI-Beispielanwendung von GitHub herunter.
Führen Sie die folgenden Schritte aus, um die Node.js-CLI-Anwendung von Grund auf neu zu erstellen:
Erstellen Sie einen Ordner zum Hosten Ihrer Anwendung, und geben Sie ihm einen Namen wie ciam-sign-in-node-cli-app.
Navigieren Sie in Ihrem Terminal zu Ihrem Projektverzeichnis, z. B.
cd ciam-sign-in-node-cli-app
, und Initialisieren Sie Ihr Projekt mitnpm init
. Daraufhin wird eine package.json-Datei in Ihrem Projektordner erstellt, die Verweise auf alle npm-Pakete enthält.Erstellen Sie in Ihrem Projektstammverzeichnis zwei Dateien namens authConfig.js und index.js. Die Datei authConfig.js enthält die Authentifizierungskonfigurationsparameter, während index.js die Authentifizierungslogik der App enthält.
Nach dem Erstellen der Dateien sollten Sie die folgende Projektstruktur haben:
ciam-sign-in-node-cli-app/
├── authConfig.js
└── index.js
└── package.json
Installieren von App-Abhängigkeiten
Die Anwendung, die Sie erstellen, verwendet MSAL Node zum Anmelden von Benutzern. Zum Installieren des MSAL Node-Pakets als Abhängigkeit in Ihrem Projekt öffnen Sie das Terminal in Ihrem Projektverzeichnis, und führen Sie den folgenden Befehl aus.
npm install @azure/msal-node
Außerdem installieren Sie das open
-Paket, damit Ihre Node.js-App im Webbrowser URLs öffnen kann.
npm install open
Erstellen des MSAL-Konfigurationsobjekts
Öffnen Sie in Ihrem Code-Editor authConfig.js, der die Konfigurationsparameter des MSAL-Objekts enthält, und fügen Sie den folgenden Code hinzu:
const { LogLevel } = require('@azure/msal-node');
const msalConfig = {
auth: {
clientId: 'Enter_the_Application_Id_Here',
authority: `https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/`,
},
system: {
loggerOptions: {
loggerCallback(loglevel, message, containsPii) {
// console.log(message);
},
piiLoggingEnabled: false,
logLevel: LogLevel.Verbose,
},
},
};
Das msalConfig
-Objekt enthält eine Reihe von Konfigurationsoptionen, die zum Anpassen des Verhaltens Ihrer Authentifizierungsflows verwendet werden können. Dieses Konfigurationsobjekt wird bei der Erstellung an die Instanz unserer öffentlichen Clientanwendung übergeben. Suchen Sie in Ihrer authConfig.js-Datei die Platzhalter:
Enter_the_Application_Id_Here
, und ersetzen Sie ihn mit der Anwendungs-ID (Client-ID) der zuvor von Ihnen registrierten Anwendung.Enter_the_Tenant_Subdomain_Here
und ersetzen Sie es durch die Verzeichnis-(Mandanten-)Unterdomäne. Wenn die primäre Domäne Ihres Mandanten z. B.contoso.onmicrosoft.com
ist, verwenden Siecontoso
. Wenn Sie den Namen Ihrer Mandantendomäne nicht kennen, erfahren Sie, wie Sie Ihre Mandantendetails herausfinden.
Im Konfigurationsobjekt fügen Sie außerdem LoggerOptions
hinzu, das zwei Optionen enthält:
loggerCallback
: Eine Rückruffunktion, welche die Protokollierung von MSAL-Anweisungen verarbeitetpiiLoggingEnabled
: Eine Konfigurationsoption, die bei Festlegung auf „true“ die Protokollierung personenbezogener Informationen (PII) aktiviert. Für unsere App legen wir diese Option auf „false“ fest.
Fügen Sie nach dem Erstellen des msalConfig
-Objekts ein loginRequest
-Objekt hinzu, das die Bereiche enthält, die für die Anwendung erforderlich sind. Bereiche definieren die Zugriffsebene, die die Anwendung auf Benutzerressourcen hat. Obwohl das Scopes-Array im Beispielcodeschnipsel keine Werte aufweist, fügt MSAL standardmäßig jeder Login-Anfrage die OIDC-Scopes (openid, profile, email) hinzu. Benutzer werden während der Anmeldung aufgefordert, diesen Bereichen zuzustimmen. Zum Erstellen des loginRequest
-Objekts fügen Sie authConfig.js den folgenden Code hinzu.
const loginRequest = {
scopes: [],
};
Exportieren Sie in authcConfig.js die Objekte msalConfig
und loginRequest
, damit bei Bedarf auf sie zugegriffen werden kann, indem Sie den folgenden Code hinzufügen:
module.exports = {
msalConfig: msalConfig,
loginRequest: loginRequest,
};
Verwenden Sie eine benutzerdefinierte Domäne, um die Authentifizierungs-URL vollständig zu kennzeichnen. Aus Benutzerperspektive verbleiben Benutzer während des Authentifizierungsprozesses in Ihrer Domäne, anstatt zu ciamlogin.com Domänennamen umgeleitet zu werden.
Führen Sie die folgenden Schritte aus, um eine benutzerdefinierte Domäne zu verwenden:
Führen Sie die Schritte unter Aktivieren benutzerdefinierter URL-Domänen für Apps in externen Mandanten aus, um eine benutzerdefinierte URL-Domäne für Ihren externen Mandanten zu aktivieren.
Suchen Sie in Ihrer Datei authConfig.js nach dem
auth
-Objekt, und führen Sie dann die folgenden Schritte aus:- Aktualisieren Sie den Wert der
authority
Eigenschaft auf https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. Ersetzen Sie sieEnter_the_Custom_Domain_Here
durch Ihre benutzerdefinierte URL-Domäne undEnter_the_Tenant_ID_Here
durch Ihre Mandanten-ID. Wenn Sie Ihre Mandanten-ID nicht kennen, finden Sie weitere Informationen unter Abrufen der Details des externen Mandanten. - Hinzufügen einer
knownAuthorities
Eigenschaft mit einem Wert [Enter_the_Custom_Domain_Here].
- Aktualisieren Sie den Wert der
Nachdem Sie die Änderungen an Ihrer authConfig.js Datei vorgenommen haben, wenn Ihre benutzerdefinierte URL-Domäne login.contoso.com ist und Ihre Mandanten-ID aaaabbbb-0000-cccc-1111-ddddd222eeeee ist, sollte die Datei ähnlich wie der folgende Codeausschnitt aussehen:
//...
const msalConfig = {
auth: {
authority: process.env.AUTHORITY || 'https://login.contoso.com/aaaabbbb-0000-cccc-1111-dddd2222eeee',
knownAuthorities: ["login.contoso.com"],
//Other properties
},
//...
};
Nächster Schritt
Erfahren Sie, wie Sie einer Node.js-CLI-Anwendung Unterstützung für die Anmeldung hinzufügen: