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
- Een Azure-abonnement.
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 InteractiveBrowserCredential
is 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 useIdentityPlugin
is 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.
Azure SDK for JavaScript