Azure Identity-plugin-program för asynkron autentisering
Det här paketet innehåller ett plugin-program till Azure Identity-biblioteket för JavaScript (@azure/identity
) som möjliggör användning av en autentiseringskoordinator som WAM-.
En autentiseringskoordinator är ett program som körs på en användares dator som hanterar handskakningar för autentisering och tokenunderhåll för anslutna konton. För närvarande stöds endast Windows-autentiseringskoordinatorn, Web Account Manager (WAM).
Källkod | exempel | API-referensdokumentation | [Dokumentation om Microsoft Entra-ID] (https://learn.microsoft.com/entra/identity/)
Komma igång
import { useIdentityPlugin } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";
useIdentityPlugin(nativeBrokerPlugin);
Förutsättningar
Installera paketet
Det här paketet är utformat för att användas med Azure Identity för JavaScript. Installera både @azure/identity
och det här paketet med hjälp av npm
:
npm install --save @azure/identity
npm install --save @azure/identity-broker
Miljöer som stöds
Azure Identity-plugin-program för JavaScript stöder stabila (även numrerade) versioner av Node.js från och med v18. Plugin-program kan köras i andra Node.js versioner, men inget stöd garanteras.
@azure/identity-broker
stöder inte webbläsarmiljöer.
Viktiga begrepp
Om det här är första gången du använder @azure/identity
eller Microsoft Entra-ID rekommenderar vi att du läser Använda @azure/identity
med Microsoft Entra-ID först. Det här dokumentet ger dig en djupare förståelse för plattformen och hur du konfigurerar ditt Azure-konto korrekt.
Överordnade fönsterhandtag
När du autentiserar med asynkron meddelandekö via InteractiveBrowserCredential
krävs ett överordnat fönsterhandtag för att säkerställa att autentiseringsdialogrutan visas korrekt över det begärande fönstret. I samband med grafiska användargränssnitt på enheter är ett fönsterhandtag en unik identifierare som operativsystemet tilldelar varje fönster. För Windows-operativsystemet är det här handtaget ett heltalsvärde som fungerar som en referens till ett specifikt fönster.
Genomströmning för Microsoft-konto (MSA)
Microsoft-konton (MSA) är personliga konton som skapats av användare för åtkomst till Microsoft-tjänster. MSA-genomströmning är en äldre konfiguration som gör det möjligt för användare att hämta token till resurser som normalt inte accepterar MSA-inloggningar. Den här funktionen är endast tillgänglig för program från första part. Användare som autentiserar med ett program som är konfigurerat för att använda MSA-genomströmning kan ställa in legacyEnableMsaPassthrough
på true
inuti InteractiveBrowserCredentialNodeOptions.brokerOptions
så att dessa personliga konton kan visas av WAM.
Omdirigerings-URI:er
Microsoft Entra-program förlitar sig på omdirigerings-URI:er för att avgöra var autentiseringssvaret ska skickas när en användare har loggat in. För att aktivera asynkron autentisering via WAM bör en omdirigerings-URI som matchar följande mönster registreras i programmet:
ms-appx-web://Microsoft.AAD.BrokerPlugin/{client_id}
Azure Identity-plugin-program
Från och med @azure/identity
version 2.0.0 innehåller identitetsklientbiblioteket för JavaScript ett plugin-API. Det här paketet (@azure/identity-broker
) exporterar ett plugin-objekt som du måste skicka som ett argument till den översta useIdentityPlugin
-funktionen från @azure/identity
-paketet. Aktivera intern asynkron meddelandekö i ditt program på följande sätt:
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
},
});
När du har anropat useIdentityPlugin
registreras det inbyggda broker-plugin-programmet till @azure/identity
-paketet och kommer att vara tillgängligt på InteractiveBrowserCredential
som stöder WAM-autentisering med asynkron autentisering. Den här autentiseringsuppgiften har brokerOptions
i konstruktoralternativen.
Exempel
När plugin-programmet har registrerats kan du aktivera WAM-asynkron autentisering genom att skicka brokerOptions
med en enabled
egenskap inställd på true
till en konstruktor för autentiseringsuppgifter. I följande exempel använder vi InteractiveBrowserCredential
.
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), "...");
Ett fullständigt exempel på hur du använder en Electron-app för att hämta ett fönsterhandtag finns i det här exemplet.
Använda standardkontot för inloggning
När alternativet useDefaultBrokerAccount
är inställt på true
försöker autentiseringsuppgifterna att tyst använda standardkontot för koordinator. Om det inte går att använda standardkontot återgår autentiseringsuppgifterna till interaktiv autentisering.
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), "...");
Felsökning
Mer information om hur du diagnostiserar olika felscenarier finns i Azure Identity [felsökningsguiden][https://github.com/Azure/azure-sdk-for-js/blob/@azure/identity-broker_1.1.0/sdk/identity/identity/TROUBLESHOOTING.md] .
Skogsavverkning
Aktivering av loggning kan hjälpa dig att hitta användbar information om fel. Om du vill se en logg med HTTP-begäranden och svar anger du AZURE_LOG_LEVEL
miljövariabeln till info
. Du kan också aktivera loggning vid körning genom att anropa setLogLevel
i @azure/logger
:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Nästa steg
Ge feedback
Om du stöter på buggar eller har förslag kan du öppna ett problem.
Bidragande
Om du vill bidra till det här biblioteket kan du läsa bidragsguide för att lära dig mer om hur du skapar och testar koden.
Azure SDK for JavaScript