Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ogólne
Kiedy jest używany węzeł MSAL?
Biblioteka MSAL Node obsługuje uwierzytelnianie oparte na serwerze dla aplikacji publicznych/poufnych. Dotyczy to bardziej scenariuszy uwierzytelniania opartego na serwerze/internetowych interfejsów API, które wymagają uwierzytelniania. Pełną listę obsługiwanych scenariuszy można znaleźć tutaj , a obsługiwane przepływy są wymienione tutaj
Jaki jest stan ADAL Node? Czy dostępny jest przewodnik migracji?
ADAL Node jest obecnie w fazie konserwacji i zalecamy wszystkim użytkownikom przejście na MSAL Node. Biblioteka MSAL Node została zaprojektowana, aby całkowicie zastąpić bibliotekę ADAL Node. W przypadku osób, które chcą przeprowadzić migrację z biblioteki ADAL do biblioteki MSAL, udostępniliśmy dokument migracji , który pomoże w migracji. Należy pamiętać, że wszystkie aplikacje mogą nie mieć bezproblemowej migracji, ponieważ jest to kompletny przegląd starych funkcji.
Jakie usługi są obsługiwane?
MSAL Node obsługuje Microsoft Entra ID, MSA, ADFS i B2C. Nasze przykłady pokazują użycie tutaj. Biblioteka MSAL Node obsługuje również pojedyncze i wielodostępne aplikacje.
Uwaga: usługa ADFS jest obecnie obsługiwana, a autonomiczny przykład nie został jeszcze opublikowany. Prosimy wkrótce sprawdzić tę stronę ponownie, aby zobaczyć aktualizację.
Co to jest publiczna aplikacja lub aplikacja poufne? Co muszę wiedzieć podczas rejestracji aplikacji?
Można to znaleźć w podstawach MSAL
Jaką wartość domyślną przyjmuje ciąg „authority”, jeśli podam „authority” i „azureCloudOptions”?
Jeśli deweloper poda azureCloudOptions, MSAL.js zastąpi każdą wartość podaną w elemencie authority. MSAL.js będzie również nadawać pierwszeństwo parametrom podanym w request zamiast w configuration. Należy pamiętać, że jeśli azureCloudOptions są ustawione w konfiguracji, będą miały pierwszeństwo przed authority w pliku request. Jeśli programista musi to nadpisać, musi ustawić azureCloudOptions w pliku request.
Jakie będą okresy istnienia tokenu?
- Microsoft Entra: znajdź najnowsze informacje dotyczące Microsoft Entra tutaj. Należy pamiętać, że kilka konfigurowalnych funkcji dla określonych typów tokenów jest ostatnio wycofanych.
- B2C: Zapoznaj się ze wskazówkami dotyczącymi okresu istnienia tokenu B2C tutaj
Jak uzyskać token odświeżania?
MSAL Node nie udostępnia tokenów odświeżania ze względów bezpieczeństwa. Zamiast tego zarządzamy tokenem odświeżania w pamięci podręcznej i aktualizujemy go w razie potrzeby, aby pobrać odpowiedni token ID i token dostępu dewelopera. Użyj odpowiedniego interfejsu API acquireToken*, aby uzyskać tokeny dostępu, a biblioteka MSAL zapewni ich odnowienie w razie potrzeby. Jeśli masz token odświeżania pozyskany w inny sposób, możesz użyć interfejsu API acquireTokenByRefreshToken (zobacz też: przykład użycia tokenu odświeżania). Więcej informacji na temat tokenów Microsoft Entra można znaleźć tutaj
Czy Electron jest obsługiwany?
Yes. Zapoznaj się z przykładami biblioteki MSAL Node.
Czy przepływ interaktywny jest obsługiwany?
Yes. Biblioteka MSAL Node udostępnia interfejs API acquireTokenInteractive() w elemencie PublicClientApplication, który obsługuje oba etapy przepływu kodu autoryzacyjnego. Otwiera okno przeglądarki, aby użytkownik mógł się zalogować, i zwraca element AuthenticationResult. Zapoznaj się z dokumentacją żądań uzyskania tokenu, aby uzyskać więcej szczegółów, oraz z przykładem auth-code-cli-app, aby zobaczyć przykład implementacji.
Czy umowy SPA są obsługiwane przez węzeł MSAL?
Zapoznaj się z MSAL Browser w przypadku scenariuszy użycia opartych na SPA. Węzeł MSAL powinien być wyborem dla aplikacji klasycznych, aplikacji internetowych, internetowych interfejsów API lub scenariuszy uwierzytelniania po stronie serwera.
Co to są rozszerzenia biblioteki MSAL Node? Co to jest wtyczka pamięci podręcznej?
Rozszerzenia MSAL Node to biblioteka pomocnicza dla MSAL Node, która oferuje bezpieczne mechanizmy umożliwiające aplikacjom klienckim międzyplatformową serializację i trwałe przechowywanie pamięci podręcznej tokenów. Zapoznaj się z użyciem, przykładami i więcej informacji na ten temat tutaj
Czy wtyczka pamięci podręcznej udostępniona w rozszerzeniach biblioteki MSAL Node może być używana w aplikacjach Electron?
Tak, może. Jeśli napotkasz problemy związane z wersją węzła, zapoznaj się z tą uwagą , która zawiera kroki rozwiązywania problemów.
Jakie wersje Node.js są obsługiwane? Jak pominąć błąd instalacji, jeśli chcę użyć aktywnej wersji dewelopera Node.js?
MSAL Node oficjalnie obsługuje stabilne wydania LTS o parzystych numerach, zgodnie z informacjami podanymi tutaj.
Jeśli chcesz obejść ten proces, pamiętaj:
-
Yarn: przekaż flagę
--ignore-enginesdo poleceniayarn. -
npm: dodaj
engine-strict=falsedo pliku npmrc.
Ważna
MSAL Node w wersji 5 wymaga Node.js w wersji 20 lub nowszej. Node.js 16 i 18 nie są już obsługiwane.
Jak zaimplementować rejestrację samoobsługową za pomocą biblioteki MSAL Node?
Biblioteka MSAL Node obsługuje rejestrację samoobsługową w przepływie kodu uwierzytelniania. Zapoznaj się z naszą dokumentacją tutaj, aby sprawdzić obsługiwane wartości parametru prompt w żądaniu i oczekiwane wyniki ich użycia, a tutaj, aby zapoznać się z omówieniem rejestracji samoobsługowej oraz zmian konfiguracji, które należy wprowadzić w dzierżawie platformy Azure. Pamiętaj, że rejestracja samoobsługowa nie jest dostępna w środowiskach B2C i testowych.
Dlaczego moja aplikacja nie działa prawidłowo, gdy działa za serwerem proxy?
Od środowiska MSAL Node v5 konfiguracja serwera proxy jest obsługiwana za pośrednictwem niestandardowego klienta HTTP. Zaimplementuj własnego klienta sieciowego, instancjonując moduł INetworkModule z obsługą proxy i podając go jako networkClient w opcjach konfiguracji systemu. Zobacz przykładowy przykład niestandardowego modułu INetworkModule .
Jak zaimplementować niestandardowego agenta http(s) w środowisku MSAL Node?
Począwszy od wersji MSAL Node v5 parametr customAgentOptions został usunięty. Aby użyć niestandardowego agenta HTTP(S), zaimplementuj własnego klienta sieciowego, tworząc instancję INetworkModule i konfigurując w niej agenta. Podaj niestandardowego klienta sieci jako networkClientw opcjach konfiguracji systemu. Zobacz przykładowy przykład niestandardowego modułu INetworkModule .
B2C
Jak mogę zarządzać ścieżką użytkownika resetowania hasła?
Nowe środowisko resetowania hasła jest teraz częścią zasad rejestracji lub logowania. Gdy użytkownik kliknie link Nie pamiętasz hasła? zostanie natychmiast wysłany do środowiska Nie pamiętam hasła.
Zalecamy przejście na nowy sposób resetowania hasła, ponieważ upraszcza on stan aplikacji i ogranicza konieczność obsługi błędów po stronie użytkownika. Jeśli z jakiegoś powodu musisz użyć starszego przepływu użytkownika do resetowania hasła, musisz obsłużyć kod błędu AADB2C90118, zwracany przez usługę B2C, gdy użytkownik wybierze link Nie pamiętasz hasła? Aby zobaczyć, jak to zrobić, zapoznaj się z przykładową aplikacją internetową MSAL Node B2C (przy użyciu kodu uwierzytelniania)
Compatibility
Czy mogę używać biblioteki MSAL Node z zestawem SDK języka JavaScript Microsoft Graph?
Tak, węzeł MSAL może służyć jako niestandardowy dostawca uwierzytelniania dla zestawu SDK języka JavaScript Microsoft Graph. Informacje o implementacji można znaleźć w przykładzie: aplikacja internetowa Express wywołująca interfejs Graph API.
Czy mogę obsługiwać aplikacje MSAL Node z poziomu wiersza polecenia?
Tak, w tym celu zalecamy użycie nowego zestawu SDK programu PowerShell Graph . Na przykład poniższy skrypt tworzy aplikację Microsoft Entra z niestandardowym adresem URI przekierowania typu Aplikacje mobilne i klasyczne (aka InstalledClient) oraz uprawnieniem User.Read do Microsoft Graph w dzierżawie określonej przez użytkownika, a następnie inicjuje obsługę jednostki usługi w tej samej dzierżawie na podstawie tego obiektu aplikacji:
Import-Module Microsoft.Graph.Applications
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Connect-MgGraph -TenantId "ENTER_TENANT_ID_HERE" -Scopes "Application.ReadWrite.All"
# User.Read delegated permission for Microsoft Graph
$mgUserReadScope = @{
"Id" = "e1fe6dd8-ba31-4d61-89e7-88639da4683d" # permission Id
"Type" = "Scope"
}
# Add additional permissions to array below
$mgResourceAccess = @($mgUserReadScope)
[object[]]$requiredResourceAccess = @{
"ResourceAppId" = "00000003-0000-0000-c000-000000000000" # MS Graph App Id
"ResourceAccess" = $mgResourceAccess
}
# Create the application
$msalApplication = New-MgApplication -displayName myMsalDesktopApp `
-SignInAudience AzureADMyOrg `
-PublicClient @{RedirectUris = "msal://redirect"} `
-RequiredResourceAccess $requiredResourceAccess
# Provision the service principal
New-MgServicePrincipal -AppId $msalApplication.AppId