Delen via


Azure Identity-invoegtoepassing voor brokered-verificatie

Dit pakket biedt een invoegtoepassing voor de Azure Identity-bibliotheek voor JavaScript (@azure/identity) die het gebruik van een verificatiebroker zoals WAM-mogelijk maakt.

Een verificatiebroker is een toepassing die wordt uitgevoerd op de computer van een gebruiker die de verificatiehanddruk- en tokenonderhoud voor verbonden accounts beheert. Momenteel wordt alleen de Windows Authentication Broker, Web Account Manager (WAM) ondersteund.

broncode | voorbeelden | API-referentiedocumentatie | [Documentatie voor Microsoft Entra ID] (https://learn.microsoft.com/entra/identity/)

Slag

import { useIdentityPlugin } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

Voorwaarden

Het pakket installeren

Dit pakket is ontworpen voor gebruik met Azure Identity voor JavaScript. Installeer zowel @azure/identity als dit pakket met behulp van npm:

npm install --save @azure/identity
npm install --save @azure/identity-broker

Ondersteunde omgevingen

Azure Identity-invoegtoepassingen voor JavaScript bieden ondersteuning voor stabiele (even genummerde) versies van Node.js vanaf v18. Hoewel de invoegtoepassingen kunnen worden uitgevoerd in andere Node.js versies, wordt er geen ondersteuning gegarandeerd. @azure/identity-broker biedt geen ondersteuning voor browseromgevingen.

Sleutelbegrippen

Als dit de eerste keer is dat u @azure/identity of Microsoft Entra-id gebruikt, raden we u aan eerst @azure/identity te gebruiken met Microsoft Entra ID. In dit document krijgt u meer inzicht in het platform en hoe u uw Azure-account correct configureert.

Bovenliggende venstergrepen

Bij verificatie met de broker via InteractiveBrowserCredentialis een bovenliggende venstergreep vereist om ervoor te zorgen dat het verificatiedialoogvenster correct wordt weergegeven via het aanvraagvenster. In de context van grafische gebruikersinterfaces op apparaten is een venstergreep een unieke id die het besturingssysteem aan elk venster toewijst. Voor het Windows-besturingssysteem is deze ingang een geheel getal dat fungeert als verwijzing naar een specifiek venster.

Passthrough voor Microsoft-account (MSA)

Microsoft-accounts (MSA) zijn persoonlijke accounts die zijn gemaakt door gebruikers voor toegang tot Microsoft-services. MSA passthrough is een verouderde configuratie waarmee gebruikers tokens kunnen ophalen naar resources die normaal gesproken geen MSA-aanmeldingen accepteren. Deze functie is alleen beschikbaar voor toepassingen van derden. Gebruikers die verifiëren met een toepassing die is geconfigureerd voor het gebruik van MSA Passthrough, kunnen legacyEnableMsaPassthrough instellen op true binnen InteractiveBrowserCredentialNodeOptions.brokerOptions om toe te staan dat deze persoonlijke accounts worden vermeld door WAM.

Omleidings-URI's

Microsoft Entra-toepassingen zijn afhankelijk van omleidings-URI's om te bepalen waar het verificatieantwoord moet worden verzonden nadat een gebruiker zich heeft aangemeld. Als u brokered verificatie via WAM wilt inschakelen, moet een omleidings-URI die overeenkomt met het volgende patroon, worden geregistreerd bij de toepassing:

ms-appx-web://Microsoft.AAD.BrokerPlugin/{client_id}

Azure Identity-invoegtoepassingen

Vanaf @azure/identity versie 2.0.0 bevat de identiteitsclientbibliotheek voor JavaScript een invoegtoepassings-API. Met dit pakket (@azure/identity-broker) exporteert u een invoegtoepassingsobject dat u als argument moet doorgeven aan de functie op het hoogste niveau useIdentityPlugin uit het @azure/identity-pakket. Schakel systeemeigen broker in uw programma als volgt in:

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
  },
});

Nadat useIdentityPluginis aangeroepen, wordt de native broker-invoegtoepassing geregistreerd bij het @azure/identity-pakket en is deze beschikbaar op de InteractiveBrowserCredential die WAM-brokerverificatie ondersteunt. Deze referentie bevat brokerOptions in de constructoropties.

Voorbeelden

Zodra de invoegtoepassing is geregistreerd, kunt u WAM-brokerverificatie inschakelen door brokerOptions door te geven met een eigenschap enabled ingesteld op true aan een referentieconstructor. In het volgende voorbeeld gebruiken we de 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), "...");

Zie dit voorbeeldvoor een volledig voorbeeld van het gebruik van een Electron-app voor het ophalen van een venstergreep.

Het standaardaccount gebruiken voor aanmelding

Wanneer de optie useDefaultBrokerAccount is ingesteld op true, probeert de referentie op de achtergrond het standaardbrokeraccount te gebruiken. Als het gebruik van het standaardaccount mislukt, valt de referentie terug op interactieve verificatie.

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), "...");

Probleemoplossing

Zie de Handleiding voor het oplossen van problemen met Azure Identity[https://github.com/Azure/azure-sdk-for-js/blob/@azure/identity-broker_1.1.0/sdk/identity/identity/TROUBLESHOOTING.md] voor meer informatie over het diagnosticeren van verschillende foutscenario's.

Logboekregistratie

Het inschakelen van logboekregistratie kan helpen nuttige informatie over fouten te ontdekken. Als u een logboek met HTTP-aanvragen en -antwoorden wilt zien, stelt u de omgevingsvariabele AZURE_LOG_LEVEL in op info. U kunt logboekregistratie ook tijdens runtime inschakelen door setLogLevel aan te roepen in de @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Volgende stappen

Feedback

Als u fouten tegenkomt of suggesties hebt, u een probleemopenen.

Bijdragen

Als u een bijdrage wilt leveren aan deze bibliotheek, raadpleegt u de gids voor bijdragen voor meer informatie over het bouwen en testen van de code.

indrukken