Share via


Bekende problemen in Internet Explorer- en Microsoft Edge-browsers (MSAL.js)

Problemen vanwege beveiligingszones

We hadden meerdere rapporten over problemen met verificatie in, dat wil gezegd, en Microsoft Edge (sinds de update van de Microsoft Edge-browserversie naar 40.15063.0.0). We volgen deze en hebben het Microsoft Edge-team geïnformeerd. Hoewel Microsoft Edge aan een oplossing werkt, vindt u hier een beschrijving van de veelvoorkomende problemen en de mogelijke tijdelijke oplossingen die kunnen worden geïmplementeerd.

Oorzaak

De oorzaak van de meeste van deze problemen is als volgt. De sessieopslag en lokale opslag worden gepartitioneerd door beveiligingszones in de Microsoft Edge-browser. In deze specifieke versie van Microsoft Edge, wanneer de toepassing wordt omgeleid naar meerdere zones, worden de sessieopslag en lokale opslag gewist. De sessieopslag wordt met name gewist in de normale browsernavigatie en zowel de sessie als de lokale opslag worden gewist in de InPrivate-modus van de browser. MSAL.js slaat bepaalde status op in de sessieopslag en is afhankelijk van het controleren van deze status tijdens de verificatiestromen. Wanneer de sessieopslag is gewist, gaat deze status verloren en leidt dit tot verbroken ervaringen.

Problemen

  • Oneindige omleidingslussen en pagina's worden opnieuw geladen tijdens verificatie. Wanneer gebruikers zich aanmelden bij de toepassing in Microsoft Edge, worden ze teruggeleid vanaf de aanmeldingspagina van Microsoft Entra en blijven ze hangen in een oneindige omleidingslus, wat resulteert in herhaalde pagina's opnieuw laden. Dit gaat meestal gepaard met een invalid_state fout in de sessieopslag.

  • Oneindige lussen voor het verkrijgen van tokens en AADSTS50058 fout. Wanneer een toepassing die wordt uitgevoerd op Microsoft Edge probeert een token voor een resource te verkrijgen, kan de toepassing vastlopen in een oneindige lus van de aanroep van het acquire-token. De volgende fout wordt geretourneerd vanuit de Microsoft Entra-id in uw netwerktracering:

    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)

  • Pop-upvenster wordt niet gesloten of blijft hangen wanneer u zich aanmeldt via pop-upvenster om te verifiëren. Bij verificatie via een pop-upvenster in Microsoft Edge of Internet Explorer (InPrivate) wordt het pop-upvenster niet gesloten nadat u referenties hebt ingevoerd en zich hebt aangemeld. Als er meerdere domeinen tussen beveiligingszones zijn betrokken bij de navigatie, wordt het pop-upvenster niet gesloten omdat MSAL.js de ingang voor het pop-upvenster verloren gaat.

  • Kan niet aanmelden met omleidings-URL die is voorafgegaan door tauri. De enige ondersteunde schema's voor omleidings-URI's zijn https: voor productie-apps en http://localhost voor lokale ontwikkeling. Als u probeert een ander schema te gebruiken, zoals tauri://localhostvoor een mobiele toepassing of desktoptoepassing, wordt het onderstaande foutbericht weergegeven. Deze fout ontstaat als gevolg van de wijze waarop de back-end van de beveiligd-WACHTWOORDVERIFICATIE is ontworpen.

    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.

Update: Oplossing beschikbaar in MSAL.js 0.2.3

Oplossingen voor problemen met de verificatieomleidingslus zijn uitgebracht in MSAL.js 0.2.3. Schakel de vlag storeAuthStateInCookie in de MSAL.js-configuratie in om te profiteren van deze oplossing. Deze vlag is standaard ingesteld op false.

Wanneer de storeAuthStateInCookie vlag is ingeschakeld, gebruikt MSAL.js de browsercookies om de aanvraagstatus op te slaan die is vereist voor validatie van de verificatiestromen.

Notitie

Deze oplossing is nog niet beschikbaar voor de msal-angular en msal-angularjs wrappers. Met deze oplossing wordt het probleem met pop-upvensters niet opgelost.

Andere tijdelijke oplossingen

Zorg ervoor dat u test of uw probleem alleen optreedt in de specifieke versie van de Microsoft Edge-browser en werkt in de andere browsers voordat u deze tijdelijke oplossingen gebruikt.

  1. Als eerste stap om deze problemen te omzeilen, moet u ervoor zorgen dat het toepassingsdomein en alle andere sites die betrokken zijn bij de omleidingen van de verificatiestroom, worden toegevoegd als vertrouwde sites in de beveiligingsinstellingen van de browser. Dit zorgt ervoor dat de omleidingen deel uitmaken van dezelfde beveiligingszone. Dit doet u als volgt:

    • Open Internet Explorer en klik op de instellingen (tandwielpictogram) in de rechterbovenhoek
    • Internetopties selecteren
    • Het tabblad Beveiliging selecteren
    • Klik onder de optie Vertrouwde sites op de knop Sites en voeg de URL's toe in het dialoogvenster dat wordt geopend.
  2. Zoals eerder vermeld, kunt u, aangezien alleen de sessieopslag tijdens de normale navigatie wordt gewist, MSAL.js configureren voor het gebruik van de lokale opslag. Dit kan worden ingesteld als de cacheLocation configuratieparameter tijdens het initialiseren van MSAL.

Met deze tijdelijke oplossingen wordt het probleem voor InPrivate-navigatie niet opgelost, omdat zowel de sessie als de lokale opslag zijn gewist.

Problemen vanwege pop-upblokkeringen

Er zijn gevallen waarin pop-ups worden geblokkeerd, dat wil gezegd, of Microsoft Edge, bijvoorbeeld wanneer er een tweede pop-up optreedt tijdens meervoudige verificatie. U ontvangt een waarschuwing in de browser om het pop-upvenster eenmalig of altijd toe te staan. Als u ervoor kiest om dit toe te staan, wordt het pop-upvenster automatisch geopend in de browser en wordt er een null ingang voor geretourneerd. Als gevolg hiervan heeft de bibliotheek geen ingang voor het venster en kan het pop-upvenster niet worden gesloten. Hetzelfde probleem treedt niet op in Chrome wanneer u wordt gevraagd pop-upvensters toe te staan, omdat er niet automatisch een pop-upvenster wordt geopend.

Als tijdelijke oplossing moeten ontwikkelaars pop-ups toestaan, dat wil gezegd, en Microsoft Edge voordat ze hun app gaan gebruiken om dit probleem te voorkomen.

Volgende stappen

Meer informatie over het gebruik van MSAL.js in Internet Explorer.