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
Začínáme
import { useIdentityPlugin } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";
useIdentityPlugin(nativeBrokerPlugin);
Požadavky
- Předplatné Azure.
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 InteractiveBrowserCredential
se 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í useIdentityPlugin
se 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.
Azure SDK for JavaScript