Wtyczka tożsamości platformy Azure na potrzeby uwierzytelniania obsługiwanego przez brokera
Ten pakiet udostępnia wtyczkę do biblioteki tożsamości platformy Azure dla języka JavaScript (@azure/identity
), która umożliwia korzystanie z brokera uwierzytelniania, takiego jak WAM.
Broker uwierzytelniania to aplikacja uruchamiana na komputerze użytkownika, która zarządza uzgadnianiami uwierzytelniania i konserwacją tokenów dla połączonych kont. Obecnie obsługiwany jest tylko broker uwierzytelniania systemu Windows, Menedżer kont sieci Web (WAM).
Dokumentacja referencyjna interfejsu API kodu źródłowego | przykłady | API | [Dokumentacja identyfikatora Entra firmy Microsoft] (https://learn.microsoft.com/entra/identity/)
Wprowadzenie
import { useIdentityPlugin } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";
useIdentityPlugin(nativeBrokerPlugin);
Warunki wstępne
Instalowanie pakietu
Ten pakiet jest przeznaczony do użycia z usługą Azure Identity for JavaScript. Zainstaluj zarówno @azure/identity
, jak i ten pakiet przy użyciu npm
:
npm install --save @azure/identity
npm install --save @azure/identity-broker
Obsługiwane środowiska
Wtyczki tożsamości platformy Azure dla języka JavaScript obsługują stabilne (parzysty) wersje Node.js począwszy od wersji 18. Chociaż wtyczki mogą działać w innych wersjach Node.js, nie ma gwarantowanej obsługi.
@azure/identity-broker
nie obsługuje środowisk przeglądarki.
Kluczowe pojęcia
Jeśli używasz @azure/identity
lub identyfikatora Entra firmy Microsoft po raz pierwszy, zalecamy przeczytanie Używanie @azure/identity
z identyfikatorem Entra firmy Microsoft. Ten dokument zawiera bardziej szczegółowe informacje na temat platformy i sposobu prawidłowego konfigurowania konta platformy Azure.
Uchwyty okien nadrzędnych
Podczas uwierzytelniania za pomocą brokera za pośrednictwem InteractiveBrowserCredential
wymagane jest dojście okna nadrzędnego, aby upewnić się, że okno dialogowe uwierzytelniania jest wyświetlane poprawnie w oknie żądania. W kontekście graficznych interfejsów użytkownika na urządzeniach uchwyt okna jest unikatowym identyfikatorem przypisywanym przez system operacyjny do każdego okna. W przypadku systemu operacyjnego Windows ta obsługa jest wartością całkowitą, która służy jako odwołanie do określonego okna.
Przekazywanie konta Microsoft (MSA)
Konta Microsoft (MSA) to konta osobiste utworzone przez użytkowników w celu uzyskania dostępu do usług firmy Microsoft. Przekazywanie msA jest starszą konfiguracją, która umożliwia użytkownikom uzyskiwanie tokenów do zasobów, które zwykle nie akceptują logowań MSA. Ta funkcja jest dostępna tylko dla aplikacji innych firm. Użytkownicy uwierzytelnieni za pomocą aplikacji skonfigurowanej do korzystania z przekazywania MSA mogą ustawić legacyEnableMsaPassthrough
na true
wewnątrz InteractiveBrowserCredentialNodeOptions.brokerOptions
, aby zezwolić na wyświetlanie tych kont osobistych przez WAM.
Identyfikatory URI przekierowania
Aplikacje Firmy Microsoft Entra korzystają z identyfikatorów URI przekierowania, aby określić, gdzie wysłać odpowiedź uwierzytelniania po zalogowaniu użytkownika. Aby włączyć uwierzytelnianie obsługiwane przez brokera za pośrednictwem WAM, identyfikator URI przekierowania zgodny z następującym wzorcem powinien zostać zarejestrowany w aplikacji:
ms-appx-web://Microsoft.AAD.BrokerPlugin/{client_id}
Wtyczki tożsamości platformy Azure
Od wersji @azure/identity
2.0.0 biblioteka klienta identity dla języka JavaScript zawiera interfejs API wtyczki. Ten pakiet (@azure/identity-broker
) eksportuje obiekt wtyczki, który należy przekazać jako argument do funkcji useIdentityPlugin
najwyższego poziomu z pakietu @azure/identity
. Włącz brokera natywnego w programie w następujący sposób:
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 wywołaniu useIdentityPlugin
wtyczka brokera natywnego jest zarejestrowana w pakiecie @azure/identity
i będzie dostępna w InteractiveBrowserCredential
, która obsługuje uwierzytelnianie brokera WAM. To poświadczenie ma brokerOptions
w opcjach konstruktora.
Przykłady
Po zarejestrowaniu wtyczki można włączyć uwierzytelnianie brokera WAM, przekazując brokerOptions
z właściwością enabled
ustawioną na true
konstruktora poświadczeń. W poniższym przykładzie użyjemy 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), "...");
Aby zapoznać się z kompletnym przykładem użycia aplikacji Electron do pobierania uchwytu okna, zobacz tym przykładzie.
Użyj domyślnego konta do logowania
Gdy opcja useDefaultBrokerAccount
jest ustawiona na true
, poświadczenie spróbuje dyskretnie użyć domyślnego konta brokera. Jeśli użycie konta domyślnego zakończy się niepowodzeniem, poświadczenie wróci do uwierzytelniania interakcyjnego.
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), "...");
Rozwiązywanie problemów
Aby uzyskać szczegółowe informacje na temat diagnozowania różnych scenariuszy awarii, zobacz Azure Identity [przewodnik rozwiązywania problemów][https://github.com/Azure/azure-sdk-for-js/blob/@azure/identity-broker_1.1.0/sdk/identity/identity/TROUBLESHOOTING.md].
Wyrąb
Włączenie rejestrowania może pomóc odkryć przydatne informacje o błędach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną środowiskową AZURE_LOG_LEVEL
na info
. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel
w @azure/logger
:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Następne kroki
Prześlij opinię
Jeśli napotkasz usterki lub masz sugestie, otworzyć problem.
Przyczyniając się
Jeśli chcesz współtworzyć tę bibliotekę, zobacz przewodnik współtworzenia, aby dowiedzieć się więcej na temat tworzenia i testowania kodu.
Azure SDK for JavaScript