Bekannte Probleme in den Browsern Internet Explorer und Microsoft Edge (MSAL.js)

Probleme aufgrund von Sicherheitszonen

Es wurden mehrere Probleme bei der Authentifizierung in IE und Microsoft Edge gemeldet (nach dem Update von Microsoft Edge auf die Browserversion 40.15063.0.0). Wir verfolgen diese Fälle und haben das Microsoft Edge-Team informiert. Während das Microsoft Edge-Team an einer Lösung arbeitet, finden Sie hier eine Beschreibung der häufig auftretenden Probleme und der möglichen Problemumgehungen.

Ursache

Die meisten Probleme haben folgende Ursache. Der Sitzungsspeicher und lokale Speicher im Microsoft Edge-Browser sind durch Sicherheitszonen partitioniert. In dieser spezifischen Version von Microsoft Edge werden der Sitzungsspeicher und der lokale Speicher gelöscht, wenn die Anwendung zonenübergreifend umgeleitet wird. Insbesondere der Sitzungsspeicher wird bei der normalen Browsernavigation gelöscht, und sowohl der Sitzungs- als auch der lokale Speicher werden im InPrivate-Modus des Browsers gelöscht. MSAL.js speichert einen bestimmten Zustand im Sitzungsspeicher und nutzt diesen Zustand während der Authentifizierungsflows als Prüfkriterium. Wenn der Sitzungsspeicher gelöscht wird, gehen die Zustandsinformationen verloren, was zu einem Authentifizierungsfehler führt.

Probleme

  • Authentifizierung: Endlosschleifen bei der Umleitung und neu geladene Seiten: Wenn Benutzer*innen sich in Microsoft Edge bei der Anwendung anmelden, werden sie von der Microsoft Entra-Anmeldeseite zurückgeleitet. Dabei entsteht eine endlose Umleitungsschleife, die dazu führt, dass die Seite ständig neu geladen wird. Dieses Problem tritt in der Regel zusammen mit einem invalid_state-Fehler im Sitzungsspeicher auf.

  • Endlosschleifen beim Tokenabruf und AADSTS50058-Fehler: Wenn eine in Microsoft Edge ausgeführte Anwendung versucht, ein Token für eine Ressource abzurufen, kann es passieren, dass die Anwendung in einer Endlosschleife des Aufrufs zum Tokenabruf hängen bleibt. Der folgende Fehler wird von Microsoft Entra ID in Ihrer Netzwerkablaufverfolgung zurückgegeben:

    Error :login_required; Error description:AADSTS50058: A silent sign-in request was sent but no user is signed in. The cookies used to represent the user's session were not sent in the request to Azure AD. This can happen if the user is using Internet Explorer or Edge, and the web app sending the silent sign-in request is in different IE security zone than the Azure AD endpoint (login.microsoftonline.com)

  • Ein bei der Anmeldung für die Authentifizierung verwendetes Popupfenster wird nicht geschlossen oder bleibt hängen. Wenn sich ein Benutzer in Microsoft Edge oder IE (InPrivate) über ein Popupfenster authentifiziert, wird das Popupfenster nach der Eingabe der Anmeldeinformationen und der Anmeldung nicht geschlossen, wenn sich die Navigation über mehrere Domänen in unterschiedlichen Sicherheitszonen erstreckt. Dies liegt daran, dass MSAL.js das Handle für das Popupfenster verliert.

  • Mit der Umleitungs-URL mit dem Präfix „tauri“ kann keine Anmeldung ausgeführt werden. Die einzigen unterstützten Schemas für Umleitungs-URIs sind https: für Produktions-Apps und http://localhost für die lokale Entwicklung. Wenn Sie versuchen, ein anderes Schema zu verwenden, wie z. B. tauri://localhost für eine mobile oder Desktopanwendung, wird die folgende Fehlermeldung angezeigt. Dieser Fehler tritt als Folge des Entwurfs des Back-Ends der SPA auf.

    AADSTS90023: Cross-origin token redemption is permitted only for the 'Single-Page Application' client-type or 'Native' client-type with origin registered in AllowedOriginForNativeAppCorsRequestInOAuthToken allow list.

Aktualisieren: Fix in MSAL.js 0.2.3 verfügbar

In MSAL.js 0.2.3 wurden Fixes für die Umleitungsschleife bei der Authentifizierung veröffentlicht. Aktivieren Sie das Flag storeAuthStateInCookie in der Konfiguration von MSAL.js, um diesen Fix zu nutzen. Dieses Flag ist standardmäßig auf „false“ festgelegt.

Wenn das Flag storeAuthStateInCookie aktiviert ist, nutzt MSAL.js die Browsercookies, um den Anforderungszustand zu speichern, der für die Überprüfung der Authentifizierungsflows erforderlich ist.

Hinweis

Dieser Fix ist noch nicht für die Wrapper msal-angular und msal-angularjs verfügbar. Das Problem mit den Popupfenstern wird durch diesen Fix nicht behoben.

Weitere Problemumgehungen

Vergewissern Sie sich, dass das Problem nur in der spezifischen Version des Microsoft Edge-Browsers auftritt und dass die anderen Browser einwandfrei funktionieren, bevor Sie diese Problemumgehungen anwenden.

  1. Um diese Probleme zu umgehen, stellen Sie als Erstes sicher, dass die Anwendungsdomäne und alle anderen an den Umleitungen des Authentifizierungsflows beteiligten Websites in den Sicherheitseinstellungen des Browsers als vertrauenswürdige Websites hinzugefügt wurden. Dadurch wird sichergestellt, dass die Umleitungen zur gleichen Sicherheitszone gehören. Gehen Sie dazu folgendermaßen vor:

    • Öffnen Sie Internet Explorer, und klicken Sie in der oberen rechten Ecke auf Einstellungen (Zahnradsymbol).
    • Wählen Sie Internetoptionen aus.
    • Wählen Sie die Registerkarte Sicherheit aus.
    • Klicken Sie unter der Option Vertrauenswürdige Sites auf die Schaltfläche Sites, und fügen Sie im daraufhin geöffneten Dialogfeld die URLs hinzu.
  2. Wie bereits erwähnt, wird während der normalen Navigation nur der Sitzungsspeicher gelöscht. Daher können Sie MSAL.js stattdessen für die Verwendung des lokalen Speichers konfigurieren. Dazu können Sie während der Initialisierung von MSAL den Konfigurationsparameter cacheLocation verwenden.

Beachten Sie, dass diese Problemumgehungen das Problem für InPrivate-Browsen nicht lösen, da sowohl der Sitzungsspeicher als auch der lokale Speicher gelöscht werden.

Probleme durch Popupblocker

In manchen Fällen werden Popupfenster in Internet Explorer oder Microsoft Edge blockiert, beispielsweise wenn bei der mehrstufigen Authentifizierung ein zweites Popupfenster eingeblendet wird. Sie werden im Browser gefragt, ob Sie das Popupfenster einmalig oder dauerhaft zulassen möchten. Wenn Sie das Popupfenster zulassen möchten, wird es automatisch geöffnet, und der Browser gibt ein null-Handle dafür zurück. Dies führt dazu, dass die Bibliothek kein Handle für das Fenster hat, sodass es keine Möglichkeit gibt, das Popupfenster zu schließen. In Chrome tritt dieses Problem nicht auf, wenn Sie aufgefordert werden, Popupfenster zuzulassen, da der Browser Popupfenster nicht automatisch öffnet.

Zur Problemumgehung müssen Entwickler*innen Popupfenster in IE und Microsoft Edge zulassen, bevor sie ihre App verwenden. So wird das Problem vermieden.

Nächste Schritte

Erfahren Sie mehr über die Verwendung von MSAL.js in Internet Explorer.