Sdílet prostřednictvím


Modul plug-in Azure Identity pro zprostředkované ověřování

Tento balíček poskytuje modul plug-in do knihovny Azure Identity pro JavaScript (@azure/identity), který umožňuje použití zprostředkovatele ověřování, jako je WAM.

Zprostředkovatel ověřování je aplikace, která běží na počítači uživatele, který spravuje ověřování handshakes a údržbu tokenů pro připojené účty. V současné době se podporuje pouze zprostředkovatel ověřování systému Windows, Správce webových účtů (WAM).

Referenční dokumentace k ukázkyukázkyrozhraní API | [Dokumentace k Microsoft Entra ID] ()

Začínáme

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

useIdentityPlugin(nativeBrokerPlugin);

Požadavky

Instalace balíčku

Tento balíček je navržený tak, aby se používal s Azure Identity pro JavaScript. Nainstalujte @azure/identity i tento balíček pomocí npm:

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

Podporovaná prostředí

Moduly plug-in Azure Identity pro JavaScript podporují stabilní (sudé číslo) verze Node.js od verze 18. Moduly plug-in sice můžou běžet v jiných verzích Node.js, ale není zaručena žádná podpora. @azure/identity-broker nepodporuje prostředí prohlížeče.

Klíčové koncepty

Pokud používáte @azure/identity nebo Microsoft Entra ID poprvé, doporučujeme nejprve přečíst Použití @azure/identity s ID Microsoft Entra. Tento dokument vám poskytne hlubší přehled o platformě a o tom, jak správně nakonfigurovat účet Azure.

Nadřazené úchyty oken

Při ověřování pomocí zprostředkovatele prostřednictvím InteractiveBrowserCredentialse vyžaduje popisovač nadřazeného okna, aby se zajistilo, že se ověřovací dialogové okno zobrazí správně v okně žádosti. V kontextu grafických uživatelských rozhraní na zařízeních je popisovač okna jedinečný identifikátor, který operační systém přiřadí každému oknu. Pro operační systém Windows je tento popisovač celočíselnou hodnotou, která slouží jako odkaz na konkrétní okno.

Předávání účtu Microsoft (MSA)

Účty Microsoft (MSA) jsou osobní účty vytvořené uživateli pro přístup ke službám Microsoftu. Předávání MSA je starší konfigurace, která uživatelům umožňuje získat tokeny k prostředkům, které obvykle nepřijímají přihlášení MSA. Tato funkce je dostupná jenom pro aplikace první strany. Uživatelé ověřující aplikaci, která je nakonfigurovaná tak, aby používala předávání MSA, můžou nastavit legacyEnableMsaPassthrough tak, aby true uvnitř InteractiveBrowserCredentialNodeOptions.brokerOptions, aby tyto osobní účty mohly být uvedené wam.

Identifikátory URI pro přesměrování

Aplikace Microsoft Entra spoléhají na identifikátory URI přesměrování k určení, kam se má po přihlášení uživatele odeslat ověřovací odpověď. Pokud chcete povolit zprostředkované ověřování prostřednictvím WAM, musí být do aplikace zaregistrovaný identifikátor URI přesměrování odpovídající následujícímu vzoru:

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

Moduly plug-in Azure Identity

Od @azure/identity verze 2.0.0 zahrnuje klientská knihovna identit pro JavaScript rozhraní API modulu plug-in. Tento balíček (@azure/identity-broker) exportuje objekt modulu plug-in, který musíte předat jako argument funkci useIdentityPlugin nejvyšší úrovně z balíčku @azure/identity. V programu povolte nativního zprostředkovatele následujícím způsobem:

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

Po volání useIdentityPluginse nativní zprostředkovatelský modul plug-in zaregistruje do balíčku @azure/identity a bude k dispozici v InteractiveBrowserCredential, který podporuje ověřování zprostředkovatele WAM. Tyto přihlašovací údaje mají brokerOptions v možnostech konstruktoru.

Příklady

Po registraci modulu plug-in můžete povolit ověřování zprostředkovatele WAM předáním brokerOptions s vlastností enabled nastavenou na true konstruktoru přihlašovacích údajů. V následujícím příkladu používáme 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), "...");

Úplný příklad použití aplikace Elektron pro načtení úchytu okna najdete v této ukázkové.

Použití výchozího účtu pro přihlášení

Pokud je možnost useDefaultBrokerAccount nastavená na true, přihlašovací údaje se pokusí bezobslužně použít výchozí účet zprostředkovatele. Pokud se použití výchozího účtu nezdaří, přihlašovací údaje se vrátí k interaktivnímu ověřování.

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

Řešení problémů

Podrobnosti o diagnostice různých scénářů selhání najdete v průvodci odstraňováním potíží se službou Azure Identity [průvodce odstraňováním potíží][https://github.com/Azure/azure-sdk-for-js/blob/@azure/identity-broker_1.1.0/sdk/identity/identity/TROUBLESHOOTING.md].

Protokolování

Povolení protokolování může pomoct odhalit užitečné informace o chybách. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou prostředí AZURE_LOG_LEVEL na info. Případně můžete protokolování povolit za běhu voláním setLogLevel v @azure/logger:

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

setLogLevel("info");

Další kroky

Poskytnutí zpětné vazby

Pokud narazíte na chyby nebo máte nějaké návrhy, otevřete problém.

Přispívající

Pokud chcete přispívat do této knihovny, přečtěte si průvodce přispívání další informace o tom, jak sestavit a otestovat kód.

imprese