Azure Identity-Plug-In für die brokerierte Authentifizierung
Dieses Paket stellt ein Plug-In zur Azure Identity-Bibliothek für JavaScript (@azure/identity
) bereit, das die Verwendung eines Authentifizierungsbrokers wie WAM-ermöglicht.
Ein Authentifizierungsbroker ist eine Anwendung, die auf dem Computer eines Benutzers ausgeführt wird, der die Authentifizierungs-Handshakes und die Tokenwartung für verbundene Konten verwaltet. Derzeit wird nur der Windows-Authentifizierungsbroker Web Account Manager (WAM) unterstützt.
Quellcode | Beispiele | API-Referenzdokumentation | [Dokumentation zur Microsoft Entra-ID] (https://learn.microsoft.com/entra/identity/)
Erste Schritte
import { useIdentityPlugin } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";
useIdentityPlugin(nativeBrokerPlugin);
Voraussetzungen
- Ein Azure-Abonnement.
Installieren des Pakets
Dieses Paket wurde für die Verwendung mit Azure Identity for JavaScript entwickelt. Installieren Sie sowohl @azure/identity
als auch dieses Paket mit npm
:
npm install --save @azure/identity
npm install --save @azure/identity-broker
Unterstützte Umgebungen
Azure Identity-Plug-Ins für JavaScript unterstützen stabile (gerade nummerierte) Versionen von Node.js ab v18. Während die Plug-Ins in anderen Node.js Versionen ausgeführt werden können, ist keine Unterstützung gewährleistet.
@azure/identity-broker
unterstützt keine Browserumgebungen.
Schlüsselkonzepte
Wenn Sie @azure/identity
- oder Microsoft Entra-ID zum ersten Mal verwenden, sollten Sie zuerst Verwenden von @azure/identity
mit Microsoft Entra ID lesen. Dieses Dokument vermittelt Ihnen ein tieferes Verständnis der Plattform und die richtige Konfiguration Ihres Azure-Kontos.
Ziehpunkte für übergeordnete Fenster
Beim Authentifizieren mit dem Broker über InteractiveBrowserCredential
ist ein übergeordnetes Fensterhandle erforderlich, um sicherzustellen, dass das Authentifizierungsdialogfeld über das anfordernde Fenster korrekt angezeigt wird. Im Kontext grafischer Benutzeroberflächen auf Geräten ist ein Fensterhandle ein eindeutiger Bezeichner, den das Betriebssystem jedem Fenster zuweist. Für das Windows-Betriebssystem ist dieses Handle ein ganzzahliger Wert, der als Verweis auf ein bestimmtes Fenster dient.
Microsoft-Konto (MSA) Passthrough
Microsoft-Konten (MSA) sind persönliche Konten, die von Benutzern für den Zugriff auf Microsoft-Dienste erstellt werden. MSA-Passthrough ist eine Legacykonfiguration, mit der Benutzer Token für Ressourcen abrufen können, die normalerweise keine MSA-Anmeldungen akzeptieren. Dieses Feature ist nur für Erstanbieteranwendungen verfügbar. Benutzer, die für die Verwendung von MSA-Passthrough konfiguriert sind, können legacyEnableMsaPassthrough
auf true
innerhalb InteractiveBrowserCredentialNodeOptions.brokerOptions
festlegen, damit diese persönlichen Konten von WAM aufgelistet werden können.
Umleitungs-URIs
Microsoft Entra-Anwendungen basieren auf Umleitungs-URIs, um zu bestimmen, wo die Authentifizierungsantwort gesendet werden soll, nachdem sich ein Benutzer angemeldet hat. Um die vermittelte Authentifizierung über WAM zu aktivieren, sollte ein Umleitungs-URI mit dem folgenden Muster für die Anwendung registriert werden:
ms-appx-web://Microsoft.AAD.BrokerPlugin/{client_id}
Azure Identity-Plug-Ins
Ab @azure/identity
Version 2.0.0 enthält die Identitätsclientbibliothek für JavaScript eine Plug-In-API. Dieses Paket (@azure/identity-broker
) exportiert ein Plug-In-Objekt, das Sie als Argument an die Funktion der obersten Ebene useIdentityPlugin
aus dem @azure/identity
-Paket übergeben müssen. Aktivieren Sie den nativen Broker in Ihrem Programm wie folgt:
import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";
useIdentityPlugin(nativeBrokerPlugin);
const credential = new InteractiveBrowserCredential({
brokerOptions: {
enabled: true,
parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
},
});
Nach dem Aufrufen von useIdentityPlugin
wird das native Broker-Plug-In für das @azure/identity
-Paket registriert und ist auf dem InteractiveBrowserCredential
verfügbar, der die WAM-Brokerauthentifizierung unterstützt. Diese Anmeldeinformationen haben brokerOptions
in den Konstruktoroptionen.
Beispiele
Nachdem das Plug-In registriert wurde, können Sie die WAM-Brokerauthentifizierung aktivieren, indem Sie brokerOptions
mit einer enabled
-Eigenschaft übergeben, die auf true
an einen Anmeldeinformationskonstruktor festgelegt ist. Im folgenden Beispiel wird die InteractiveBrowserCredential
verwendet.
import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";
useIdentityPlugin(nativeBrokerPlugin);
const credential = new InteractiveBrowserCredential({
brokerOptions: {
enabled: true,
parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
},
});
// We'll use the Microsoft Graph scope as an example
const scope = "https://graph.microsoft.com/.default";
// Print out part of the access token
console.log((await credential.getToken(scope)).token.substring(0, 10), "...");
Ein vollständiges Beispiel für die Verwendung einer Electron-App zum Abrufen eines Fensterziehpunkts finden Sie in diesem Beispiel.
Verwenden des Standardkontos für die Anmeldung
Wenn die option useDefaultBrokerAccount
auf true
festgelegt ist, versucht die Anmeldeinformationen, das Standardbrokerkonto automatisch zu verwenden. Wenn die Verwendung des Standardkontos fehlschlägt, fallen die Anmeldeinformationen auf die interaktive Authentifizierung zurück.
import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";
useIdentityPlugin(nativeBrokerPlugin);
const credential = new InteractiveBrowserCredential({
brokerOptions: {
enabled: true,
useDefaultBrokerAccount: true,
parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
},
});
// We'll use the Microsoft Graph scope as an example
const scope = "https://graph.microsoft.com/.default";
// Print out part of the access token
console.log((await credential.getToken(scope)).token.substr(0, 10), "...");
Fehlerbehebung
Weitere Informationen zum Diagnostizieren verschiedener Fehlerszenarien finden Sie im Azure Identity [Problembehandlungshandbuch][https://github.com/Azure/azure-sdk-for-js/blob/@azure/identity-broker_1.1.0/sdk/identity/identity/TROUBLESHOOTING.md]
Protokollierung
Das Aktivieren der Protokollierung kann hilfreiche Informationen zu Fehlern aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die AZURE_LOG_LEVEL
Umgebungsvariable auf info
fest. Alternativ kann die Protokollierung zur Laufzeit durch Aufrufen von setLogLevel
im @azure/logger
aktiviert werden:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Nächste Schritte
Feedback geben
Wenn Fehler auftreten oder Vorschläge vorliegen, öffnen Sie ein Problemöffnen.
Beitragend
Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie den leitfaden mitwirkenden, um mehr über das Erstellen und Testen des Codes zu erfahren.
Azure SDK for JavaScript