Dela via


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 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 legacyEnableMsaPassthroughtrue 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.

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.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.

visningar