Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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
För lokal utveckling med
@azure/identity-brokerkan du behöva installera ytterligare verktyg. node-gyp används för att kompilera tillägg för åtkomst till system-API:er. Installationskraven anges i node-gyp README.
På Linux används libsecret biblioteket så du kan behöva installera det. Beroende på din distribution måste du köra följande kommando:
- Debian/Ubuntu:
sudo apt-get install libsecret-1-dev - Red Hat-baserad:
sudo yum install libsecret-devel - Arch Linux:
sudo pacman -S libsecret
Anmärkning
Asynkron autentisering stöds för närvarande endast i Windows och Linux. macOS stöds inte ännu.
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 (jämna numrerade) versioner av Node.js från och med v20. 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 InteractiveBrowserCredentialkrä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 useIdentityPluginregistreras 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.
Anmärkningar: Från @azure/identity och med version 4.11.0-beta.1 har du DefaultAzureCredential stöd för att logga in via Windows Web Account Manager. Aktivera intern asynkron meddelandekö i ditt program på följande sätt:
import { useIdentityPlugin, DefaultAzureCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";
useIdentityPlugin(nativeBrokerPlugin);
const credential = new DefaultAzureCredential();
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å truefö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.3.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