Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
General
Wann wird MSAL Node verwendet?
MSAL Node unterstützt die serverbasierte Authentifizierung für öffentliche/vertrauliche Apps. Dies gilt für serverbasierte Authentifizierungsszenarien/Web-APIs, die Authentifizierung benötigen. Eine vollständige Liste der unterstützten Szenarien finden Sie hier, und unterstützte Flüsse sind hier aufgeführt.
Wie lautet der Status des ADAL-Knotens? Ist ein Migrationshandbuch verfügbar?
ADAL Node befindet sich derzeit im Wartungsmodus, und wir raten allen Benutzern, auf MSAL Node umzusteigen. MSAL Node wurde entwickelt, um den ADAL-Knoten vollständig zu ersetzen. Für diejenigen, die von ADAL zu MSAL migrieren möchten, haben wir ein Migrationsdokument zur Unterstützung bei der Migration bereitgestellt. Beachten Sie, dass alle Apps möglicherweise keine reibungslose Migration haben, da dies eine vollständige Überholung der alten Funktionalität ist.
Welche Dienste werden unterstützt?
MSAL Node unterstützt Microsoft Entra ID, MSA, ADFS und B2C. Unsere Beispiele veranschaulichen die Verwendung hier. MSAL Node unterstützt auch einzelne und mehrinstanzenfähige Apps.
Hinweis: ADFS wird derzeit unterstützt, ein eigenständiges Beispiel wird noch nicht veröffentlicht. Bitte schauen Sie bald wieder hier vorbei, um sich über Neuigkeiten zu informieren.
Was ist eine öffentliche App oder eine vertrauliche App? Was muss ich während der App-Registrierung wissen?
Dies finden Sie in den MSAL-Grundlagen
Wie sieht die Autoritätszeichenfolge standardmäßig aus, wenn ich "Authority" und "azureCloudOptions" bereitstellen?
Wenn der Entwickler bereitstellt azureCloudOptions, überschreibt MSAL.js alle in der authorityDatei bereitgestellten Werte. MSAL.js wird außerdem den in request angegebenen Parametern gegenüber configuration den Vorzug geben. Bitte beachten Sie, dass, wenn azureCloudOptions in der Konfiguration festgelegt sind, sie Vorrang vor authority in request haben. Wenn der Entwickler dies überschreiben muss, muss er azureCloudOptions in request festlegen.
Wie lang werden die Gültigkeitsdauern der Token sein?
- Microsoft Entra: Hier finden Sie die neueste Referenz für Microsoft Entra. Beachten Sie, dass einige der konfigurierbaren Features für bestimmte Tokentypen kürzlich eingestellt werden.
- B2C: Hier finden Sie den Leitfaden zur B2C-Tokenlebensdauer .
Wie erhalte ich das Aktualisierungstoken?
MSAL Node macht Aktualisierungstoken aus Sicherheitsgründen nicht verfügbar. Stattdessen verwalten wir das Aktualisierungstoken über den Cache und aktualisieren es nach Bedarf, um das entsprechende ID-Token und Zugriffstoken für den Entwickler abzurufen. Verwenden Sie die entsprechende acquireToken* API, um Zugriffstoken abzurufen, und MSAL stellt sicher, dass sie bei Bedarf erneuert werden. Wenn Sie ein Aktualisierungstoken mit anderen Mitteln erworben haben, können Sie die AcquireTokenByRefreshToken-API verwenden (siehe auch: Refresh Token-Beispiel). Weitere Details zu Microsoft Entra Token finden Sie hier
Wird Electron unterstützt?
Yes. Weitere Informationen finden Sie in den MSAL Node-Beispielen.
Wird ein interaktiver Ablauf unterstützt?
Yes. MSAL Node stellt die acquireTokenInteractive()-API auf PublicClientApplication bereit, die beide Teile des Autorisierungscodeflows verarbeitet. Es öffnet ein Browserfenster, in dem sich der Benutzer anmeldet, und gibt ein AuthenticationResult zurück. In der Dokumentation zum Abrufen von Tokenanforderungen finden Sie weitere Details und das Beispiel für die Authentifizierungscode-cli-App für ein Implementierungsbeispiel.
Werden SPAs von MSAL Node unterstützt?
Weitere Informationen finden Sie im MSAL-Browser für SPA-basierte Anwendungsfälle. MSAL Node sollte eine Auswahl für Desktop-Apps, Web-Apps, Web-APIs oder serverseitige Authentifizierungsszenarien sein.
Was sind die MSAL-Node-Erweiterungen? Was ist ein Cache-Plug-In?
MSAL Node-Erweiterungen ist eine Hilfsbibliothek für MSAL Node, die Clientanwendungen sichere Mechanismen bietet, mit denen sie Token-Caches plattformübergreifend serialisieren und dauerhaft speichern können. Hier finden Sie die Verwendung, Beispiele und mehr dazu.
Kann das in MSAL Node-Erweiterungen bereitgestellte Cache-Plug-In in Electron-Anwendungen verwendet werden?
Ja, kann es. Falls Probleme im Zusammenhang mit der Knotenversion auftreten, lesen Sie diesen Hinweis , der die Schritte zur Problembehandlung enthält.
Welche Versionen von Node.js werden unterstützt? Wie kann ich den Installationsfehler umgehen, wenn ich eine aktive Entwicklungsversion Node.js verwenden möchte?
MSAL Node unterstützt offiziell auch nummerierte stabile LTS-Versionen wie hier dokumentiert.
Wenn Sie dies umgehen möchten, beachten Sie Folgendes:
-
Yarn: Übergeben Sie das
--ignore-engines-Flag an den Befehlyarn. -
npm: Fügen Sie
engine-strict=falseIhrer .npmrc-Datei hinzu.
Important
MSAL Node v5 erfordert Node.js 20 oder höher. Node.js 16 und 18 werden nicht mehr unterstützt.
Wie implementiert ich die Self-Service-Registrierung mit MSAL Node?
MSAL Node unterstützt die Self-Service-Registrierung im Authentifizierungscodefluss. Informationen zu unterstützten Promptwerten in der Anforderung und zu den erwarteten Ergebnissen finden Sie in unserer Dokumentation hier sowie hier eine Übersicht über die Self-Service-Registrierung und die Konfigurationsänderungen, die an Ihrem Azure-Mandanten vorgenommen werden müssen. Beachten Sie, dass die Self-Service-Registrierung in B2C- und Testumgebungen nicht verfügbar ist.
Warum funktioniert meine App nicht ordnungsgemäß, wenn sie hinter einem Proxy ausgeführt wird?
Ab MSAL Node v5 wird die Proxykonfiguration über einen benutzerdefinierten HTTP-Client behandelt. Implementieren Sie Ihren eigenen Netzwerkclient, indem Sie ein INetworkModule mit Proxyunterstützung instanziieren und es als das networkClient in den Systemkonfigurationsoptionen bereitstellen. Ein Beispiel finden Sie im benutzerdefinierten INetworkModule-Beispiel .
Wie implementiert ich einen benutzerdefinierten HTTP(s)-Agent in MSAL Node?
Ab MSAL Node v5 wurde der customAgentOptions Parameter entfernt. Um einen benutzerdefinierten HTTP(S)-Agent zu verwenden, implementieren Sie Ihren eigenen Netzwerkclient, indem Sie ein INetworkModule instanziieren und den Agent darin konfigurieren. Geben Sie den benutzerdefinierten Netzwerkclient als networkClient in den Systemkonfigurationsoptionen an. Ein Beispiel finden Sie im benutzerdefinierten INetworkModule-Beispiel .
B2C
Wie verwalte ich den Benutzerablauf zum Zurücksetzen des Kennworts?
Die neue Benutzeroberfläche zum Zurücksetzen des Kennworts ist jetzt Teil der Richtlinie für die Registrierung oder Anmeldung. Wenn der Benutzer den Link Passwort vergessen? auswählt, wird er sofort zur Seite zum Zurücksetzen des Passworts weitergeleitet.
Unsere Empfehlung besteht darin, zur neuen Kennwortzurücksetzungsumgebung zu wechseln, da sie den App-Zustand vereinfacht und die Fehlerbehandlung am Benutzerende reduziert. Wenn Sie aus irgendeinem Grund den älteren Benutzerfluss zum Zurücksetzen von Kennwörtern verwenden müssen, müssen Sie den AADB2C90118 vom B2C-Dienst zurückgegebenen Fehlercode behandeln, wenn ein Benutzer den Link "Kennwort vergessen " auswählt. Informationen dazu finden Sie im Beispiel: MSAL Node B2C-Web-App-Beispiel (mit Authentifizierungscode)
Compatibility
Kann ich MSAL Node mit Microsoft Graph JavaScript SDK verwenden?
Ja, MSAL Node kann als benutzerdefinierter Authentifizierungsanbieter für das Microsoft Graph JavaScript SDK verwendet werden. Für eine Implementierung lesen Sie bitte das Beispiel: Express Web App, die die Graph-API aufruft.
Kann ich MSAL Node-Apps über die Befehlszeile bereitstellen?
Ja, wir empfehlen das neue Powershell Graph SDK dafür. Das folgende Skript erstellt beispielsweise eine Microsoft Entra Anwendung mit einem benutzerdefinierten Umleitungs-URI vom Typ Mobile- und Desktop-Apps (auch bekannt als InstalledClient) und User.Read-Berechtigung für Microsoft Graph in einem vom Benutzer angegebenen Mandanten und stellt dann einen Dienstprinzipal im selben Mandanten basierend auf diesem Anwendungsobjekt bereit:
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