Share via


Kända problem i Internet Explorer och Microsoft Edge-webbläsare (MSAL.js)

Problem på grund av säkerhetszoner

Vi hade flera rapporter om problem med autentisering i IE och Microsoft Edge (sedan uppdateringen av Microsoft Edge-webbläsarversionen till 40.15063.0.0). Vi spårar dessa och har informerat Microsoft Edge-teamet. Microsoft Edge fungerar på en lösning, men här är en beskrivning av de vanliga problemen och möjliga lösningar som kan implementeras.

Orsak

Orsaken till de flesta av dessa problem är följande. Sessionslagringen och den lokala lagringen partitioneras av säkerhetszoner i Microsoft Edge-webbläsaren. I den här versionen av Microsoft Edge rensas sessionslagringen och den lokala lagringen när programmet omdirigeras mellan zoner. Mer specifikt rensas sessionslagringen i den vanliga webbläsarnavigering, och både sessionen och den lokala lagringen rensas i InPrivate-läget i webbläsaren. MSAL.js sparar visst tillstånd i sessionslagringen och förlitar sig på att kontrollera det här tillståndet under autentiseringsflödena. När sessionslagringen rensas går det här tillståndet förlorat och resulterar därför i brutna upplevelser.

Problem

  • Oändliga omdirigeringsslingor och sidåterladdningar under autentiseringen. När användare loggar in på programmet på Microsoft Edge omdirigeras de tillbaka från Microsoft Entra-inloggningssidan och fastnar i en oändlig omdirigeringsloop som resulterar i upprepade sidinläsningar. Detta åtföljs vanligtvis av ett invalid_state fel i sessionslagringen.

  • Oändligt hämtar tokenslingor och AADSTS50058 fel. När ett program som körs på Microsoft Edge försöker hämta en token för en resurs kan programmet fastna i en oändlig loop i anropet för att hämta token. Följande fel returneras från Microsoft Entra-ID i nätverksspårningen:

    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)

  • Popup-fönstret stängs inte eller fastnar när du använder inloggning via popup-fönstret för att autentisera. När du autentiserar via ett popup-fönster i Microsoft Edge eller IE (InPrivate), efter att ha angett autentiseringsuppgifter och loggat in, om flera domäner mellan säkerhetszoner är inblandade i navigeringen, stängs inte popup-fönstret eftersom MSAL.js det förlorar handtaget i popup-fönstret.

  • Det går inte att logga in med omdirigerings-URL:en med prefixet tauri. De enda scheman som stöds för omdirigerings-URI:er är https: för produktionsappar och http://localhost för lokal utveckling. Om du försöker använda ett annat schema, till exempel tauri://localhost, för ett mobil- eller skrivbordsprogram visas felmeddelandet nedan. Det här felet uppstår som ett resultat av hur serverdelen i SPA är utformad.

    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.

Uppdatering: Korrigering finns i MSAL.js 0.2.3

Korrigeringar för problem med omdirigeringsloopen för autentisering har släppts i MSAL.js 0.2.3. Aktivera flaggan storeAuthStateInCookie i MSAL.js-konfigurationen för att dra nytta av den här korrigeringen. Som standard är den här flaggan inställd på false.

storeAuthStateInCookie När flaggan är aktiverad använder MSAL.js webbläsarcookies för att lagra det begärandetillstånd som krävs för validering av autentiseringsflödena.

Kommentar

Den här korrigeringen är ännu inte tillgänglig för omslutningarna msal-angular och msal-angularjs . Den här korrigeringen åtgärdar inte problemet med popup-fönster.

Andra lösningar

Kontrollera att problemet endast inträffar på den specifika versionen av Microsoft Edge-webbläsaren och fungerar på de andra webbläsarna innan du antar de här lösningarna.

  1. Som ett första steg för att komma runt dessa problem ska du se till att programdomänen och andra webbplatser som är inblandade i omdirigeringarna av autentiseringsflödet läggs till som betrodda platser i webbläsarens säkerhetsinställningar. Detta säkerställer att omdirigeringarna tillhör samma säkerhetszon. Följ stegen nedan:

    • Öppna Internet Explorer och klicka på inställningarna (kugghjulsikonen) i det övre högra hörnet
    • Välj Internetalternativ
    • Välj fliken Säkerhet
    • Under alternativet Betrodda platser klickar du på knappen Webbplatser och lägger till URL:erna i dialogrutan som öppnas.
  2. Som tidigare nämnts kan du konfigurera MSAL.js att använda den lokala lagringen i stället, eftersom endast sessionslagringen rensas under den vanliga navigeringen. Detta kan anges som cacheLocation konfigurationsparameter när MSAL initieras.

Observera att dessa lösningar inte löser problemet för InPrivate-surfning eftersom både session och lokal lagring rensas.

Problem på grund av popup-blockerare

Det finns fall då popup-fönster blockeras i IE eller Microsoft Edge, till exempel när ett andra popup-fönster inträffar under multifaktorautentisering. Du får en avisering i webbläsaren för att tillåta popup-fönstret en gång eller alltid. Om du väljer att tillåta öppnar webbläsaren popup-fönstret automatiskt och returnerar ett null handtag för det. Det innebär att biblioteket inte har något handtag för fönstret och det går inte att stänga popup-fönstret. Samma problem uppstår inte i Chrome när du uppmanas att tillåta popup-fönster eftersom det inte automatiskt öppnar ett popup-fönster.

Som en lösning måste utvecklare tillåta popup-fönster i IE och Microsoft Edge innan de börjar använda sin app för att undvika det här problemet.

Nästa steg

Läs mer om hur du använder MSAL.js i Internet Explorer.