Az Internet Explorer és a Microsoft Edge böngészők ismert problémái (MSAL.js)
Biztonsági zónák miatti problémák
Több jelentésünk is volt a hitelesítéssel kapcsolatos problémákról, azaz a Microsoft Edge-ben (a Microsoft Edge böngészőverziójának 40.15063.0.0-ra való frissítése óta). Ezeket nyomon követjük, és tájékoztattuk a Microsoft Edge csapatát. Bár a Microsoft Edge egy megoldáson dolgozik, az alábbiakban bemutatjuk a gyakran előforduló problémákat és a megvalósítható lehetséges kerülő megoldásokat.
Ok
A legtöbb ilyen probléma oka a következő. A munkamenet-tárolót és a helyi tárolót biztonsági zónák particionálják a Microsoft Edge böngészőben. A Microsoft Edge ezen adott verziójában, amikor az alkalmazást a rendszer zónákra irányítja át, a munkamenet-tárterület és a helyi tárterület törlődik. A munkamenet tárterülete a böngésző szokásos navigációs sávjában törlődik, és a munkamenet és a helyi tárterület is törlődik a böngésző InPrivate módban. MSAL.js ment bizonyos állapotokat a munkamenet-tárolóban, és az állapot ellenőrzésére támaszkodik a hitelesítési folyamatok során. A munkamenet-tárterület törlésekor ez az állapot elveszik, és emiatt megszakadnak a felhasználói élmények.
Problémák
A hitelesítés során végtelen átirányítási hurkok és lapbetöltések futnak. Amikor a felhasználók bejelentkeznek az alkalmazásba a Microsoft Edge-en, a rendszer visszairányítja őket a Microsoft Entra bejelentkezési oldaláról, és egy végtelen átirányítási ciklusban ragadnak, ami ismétlődő oldalbetöltéseket eredményez. Ezt általában egy
invalid_state
hiba kíséri a munkamenet-tárolóban.Végtelen jogkivonat-hurkok és AADSTS50058 hiba. Amikor egy Microsoft Edge-en futó alkalmazás megpróbál jogkivonatot szerezni egy erőforráshoz, előfordulhat, hogy az alkalmazás elakad a jogkivonat-hívás végtelen ciklusában. A rendszer a következő hibát adja vissza a Microsoft Entra-azonosítótól a hálózati nyomkövetésben:
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)
Az előugró ablak nem záródik be, vagy elakad, amikor bejelentkezést használ az előugró ablakban a hitelesítéshez. Amikor a Microsoft Edge-ben vagy az Internet Explorerben (InPrivate) egy előugró ablakban hitelesít, a hitelesítő adatok megadása és a bejelentkezés után, ha több tartomány is részt vesz a navigációban, az előugró ablak nem záródik be, mert
MSAL.js
elveszíti a leírót az előugró ablakban.A tauri előtaggal ellátott átirányítási URL-címmel nem lehet bejelentkezni. Az átirányítási URI-k egyetlen támogatott sémája az
https:
éles alkalmazások éshttp://localhost
a helyi fejlesztés. Ha egy másik sémát próbál használni, példáultauri://localhost
egy mobil- vagy asztali alkalmazáshoz, az alábbi hibaüzenet jelenik meg. Ez a hiba az SPA háttérrendszerének kialakításából ered.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.
Frissítés: A 0.2.3-MSAL.js elérhető javítás
A hitelesítési átirányítási ciklus problémáinak javításai a 0.2.3-MSAL.js jelentek meg. Engedélyezze a jelölőt storeAuthStateInCookie
a MSAL.js konfigurációban a javítás előnyeinek kihasználásához. Alapértelmezés szerint ez a jelző hamis értékre van állítva.
Ha a storeAuthStateInCookie
jelző engedélyezve van, MSAL.js a böngésző cookie-kkal tárolja a hitelesítési folyamatok érvényesítéséhez szükséges kérési állapotot.
Feljegyzés
Ez a javítás még nem érhető el a burkoló msal-angularjs
és a msal-angular
burkoló számára. Ez a javítás nem oldja meg az előugró ablakokkal kapcsolatos problémát.
Egyéb áthidaló megoldások
A kerülő megoldások bevezetése előtt győződjön meg arról, hogy a probléma csak a Microsoft Edge böngésző adott verziójában jelentkezik, és a többi böngészőben is működik.
A problémák megoldásának első lépéseként győződjön meg arról, hogy az alkalmazástartomány és a hitelesítési folyamat átirányításaiban részt vevő egyéb webhelyek megbízható helyekként lesznek hozzáadva a böngésző biztonsági beállításaiban. Ez biztosítja, hogy az átirányítások ugyanahhoz a biztonsági zónához tartoznak. Ehhez kövesse az alábbi lépéseket:
- Nyissa meg az Internet Explorert , és kattintson a beállításokra (fogaskerék ikon) a jobb felső sarokban
- Internetbeállítások kiválasztása
- A Biztonság lap kiválasztása
- A Megbízható helyek beállításnál kattintson a Webhelyek gombra, és adja hozzá az URL-címeket a megnyíló párbeszédpanelen.
Ahogy korábban említettük, mivel a normál navigáció során csak a munkamenet-tárterület törlődik, a MSAL.js konfigurálhatja inkább a helyi tároló használatára. Ez konfigurációs paraméterként állítható be az
cacheLocation
MSAL inicializálása során.
Vegye figyelembe, hogy ezek a kerülő megoldások nem oldják meg az InPrivate-böngészéssel kapcsolatos problémát, mivel a munkamenet és a helyi tárterület is törlődik.
Előugró ablakok blokkolása miatti problémák
Vannak olyan esetek, amikor az előugró ablakok le vannak tiltva, vagyis a Microsoft Edge-ben, például amikor egy második előugró ablak jelenik meg a többtényezős hitelesítés során. Ekkor megjelenik egy értesítés a böngészőben, amely egyszer vagy mindig engedélyezi az előugró ablakot. Ha engedélyezi, a böngésző automatikusan megnyitja az előugró ablakot, és visszaad egy leírót null
. Ennek eredményeképpen a kódtár nem rendelkezik az ablakhoz tartozó fogópontokkal, és nem lehet bezárni az előugró ablakot. Ugyanez a probléma nem fordul elő a Chrome-ban, amikor arra kéri, hogy engedélyezze az előugró ablakokat, mert nem nyit meg automatikusan előugró ablakot.
Áthidaló megoldásként a fejlesztőknek engedélyezniük kell az előugró ablakokat, vagyis a Microsoft Edge-et, mielőtt használatba kezdenék az alkalmazásukat a probléma elkerülése érdekében.
Következő lépések
További információ a MSAL.js az Internet Explorerben való használatáról.