Sdílet prostřednictvím


Známé problémy v prohlížečích Internet Explorer a Microsoft Edge (MSAL.js)

Problémy způsobené zónami zabezpečení

Měli jsme několik zpráv o problémech s ověřováním a Microsoft Edge (od aktualizace verze prohlížeče Microsoft Edge na 40.15063.0.0). Sledujeme je a informovali jsme tým Microsoft Edge. I když Microsoft Edge funguje na řešení, tady je popis často se vyskytujících problémů a možných alternativních řešení, která je možné implementovat.

Příčina

Příčina většiny těchto problémů je následující. Úložiště relací a místní úložiště jsou rozdělené podle zón zabezpečení v prohlížeči Microsoft Edge. V této konkrétní verzi Microsoft Edge se při přesměrování aplikace napříč zónami vymaže úložiště relací a místní úložiště. Konkrétně se úložiště relace vymaže v běžné navigaci v prohlížeči a relace i místní úložiště se vymažou v režimu InPrivate prohlížeče. MSAL.js uloží určitý stav v úložišti relací a spoléhá na kontrolu tohoto stavu během ověřovacích toků. Když se vymaže úložiště relace, dojde ke ztrátě tohoto stavu, takže dojde k poškození.

Problémy

  • Nekonečné smyčky přesměrování a opětovné načtení stránky během ověřování. Když se uživatelé přihlásí k aplikaci v Microsoft Edgi, přesměrují se zpět z přihlašovací stránky Microsoft Entra a zablokují se ve smyčce nekonečného přesměrování, což vede k opakovanému načítání stránky. K tomu obvykle dochází v úložišti relací k invalid_state chybě.

  • Nekonečná smyčka získání tokenu a AADSTS50058 chyba. Když se aplikace spuštěná v Microsoft Edgi pokusí získat token pro prostředek, může se aplikace zaseknout v nekonečné smyčce volání tokenu získání. Následující chyba se vrátí z ID Microsoft Entra v trasování sítě:

    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)

  • Automaticky otevírané okno se nezavře nebo se zasekne při ověřování pomocí automaticky otevíraných oken. Při ověřování prostřednictvím automaticky otevíraného okna v Microsoft Edgi nebo Internet Exploreru (InPrivate) po zadání přihlašovacích údajů a přihlášení se při navigaci nezavře více domén napříč zónami zabezpečení, automaticky otevírané okno se nezavře, protože MSAL.js ztratí popisovač automaticky otevíraného okna.

  • Nelze se přihlásit pomocí adresy URL přesměrování s předponou tauri. Jediná podporovaná schémata pro identifikátory URI přesměrování jsou https: určená pro produkční aplikace a http://localhost místní vývoj. Pokud se pokusíte použít jiné schéma, například tauri://localhost, pro mobilní nebo desktopovou aplikaci, zobrazí se následující chybová zpráva. K této chybě dochází v důsledku toho, jak je navržen back-end spa.

    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.

Aktualizace: Oprava dostupná v MSAL.js 0.2.3

Opravy problémů s smyčkou přesměrování ověřování byly vydány v MSAL.js 0.2.3. Pokud chcete tuto opravu využít, povolte příznak storeAuthStateInCookie v konfiguraci MSAL.js. Ve výchozím nastavení je tento příznak nastaven na false.

storeAuthStateInCookie Pokud je příznak povolený, MSAL.js používá soubory cookie prohlížeče k uložení stavu požadavku požadovaného k ověření toků ověřování.

Poznámka:

Tato oprava ještě není k dispozici pro obálky msal-angular a msal-angularjs obálky. Tato oprava neřeší problém s automaticky otevíranými okny.

Další alternativní řešení

Než začnete používat tato alternativní řešení, nezapomeňte otestovat, že k vašemu problému dochází jenom v konkrétní verzi prohlížeče Microsoft Edge, a teprve potom tento problém funguje v jiných prohlížečích.

  1. Jako první krok k těmto problémům se ujistěte, že doména aplikace a všechny další weby zapojené do přesměrování toku ověřování se přidají jako důvěryhodné weby v nastavení zabezpečení prohlížeče. Tím se zajistí, že přesměrování patří do stejné zóny zabezpečení. Postup je následující:

    • Otevřete Internet Explorer a klikněte na nastavení (ikona ozubeného kola) v pravém horním rohu.
    • Výběr možností internetu
    • Výběr karty Zabezpečení
    • Pod možností Důvěryhodné weby klikněte na tlačítko Weby a přidejte adresy URL v dialogovém okně, které se otevře.
  2. Jak už bylo zmíněno dříve, protože během pravidelné navigace se vymaže jenom úložiště relací, můžete nakonfigurovat MSAL.js pro použití místního úložiště. Můžete ho cacheLocation nastavit jako parametr konfigurace při inicializaci knihovny MSAL.

Upozorňujeme, že tato alternativní řešení problém s procházením InPrivate nevyřeší, protože se vymažou relace i místní úložiště.

Problémy způsobené blokováním automaticky otevírané aplikace

Existují případy, kdy se automaticky otevírané okno zablokuje, tj. Microsoft Edge, například v případě, že během vícefaktorového ověřování dojde k druhému automaticky otevíraným oknu. V prohlížeči se zobrazí upozornění, které povolí automaticky otevírané okno jednou nebo vždy. Pokud se rozhodnete povolit, prohlížeč automaticky otevře automaticky otevírané okno a vrátí null popisovač. V důsledku toho knihovna nemá popisovač okna a neexistuje způsob, jak automaticky otevírané okno zavřít. Stejný problém se v Chromu nestane, když vás vyzve k povolení automaticky otevíraných oken, protože automaticky neotevře automaticky automaticky otevírané okno.

Jako alternativní řešení musí vývojáři povolit automaticky otevírané okno a Microsoft Edge, aby se tomuto problému vyhnuli.

Další kroky

Přečtěte si další informace o používání MSAL.js v Internet Exploreru.