Share via


Problemi noti dei browser Internet Explorer e Microsoft Edge (MSAL.js)

Problemi causati da aree di sicurezza

Sono stati rilevati più report di problemi con l'autenticazione in Internet Explorer e Microsoft Edge (dall'aggiornamento del browser Microsoft Edge alla versione 40.15063.0.0). Stiamo monitorando questi elementi e abbiamo informato il team di Microsoft Edge. Anche se Microsoft Edge funziona su una risoluzione, ecco una descrizione dei problemi che si verificano di frequente e delle possibili soluzioni alternative che possono essere implementate.

Causa

La causa della maggior parte di questi problemi è la seguente. L'archiviazione della sessione e l'archiviazione locale vengono partizionate in base alle aree di sicurezza nel browser Microsoft Edge. In questa particolare versione di Microsoft Edge, quando l'applicazione viene reindirizzata tra le zone, l'archiviazione della sessione e l'archiviazione locale vengono cancellate. In particolare, l'archiviazione della sessione viene cancellata nella normale navigazione del browser e l'archiviazione della sessione e l'archiviazione locale vengono cancellate nella modalità InPrivate del browser. MSAL.js salva un determinato stato nell'archiviazione della sessione e si basa sul controllo di questo stato durante i flussi di autenticazione. Quando l'archiviazione della sessione viene deselezionata, questo stato viene perso e pertanto comporta l'interruzione delle esperienze.

Problemi

  • Cicli di reindirizzamento infinito e ricaricamenti di pagine durante l'autenticazione. Quando gli utenti accedono all'applicazione in Microsoft Edge, vengono reindirizzati dalla pagina di accesso di Microsoft Entra e sono bloccati in un ciclo di reindirizzamento infinito, con conseguente ricaricamento ripetuto della pagina. Questo è in genere accompagnato da un errore di invalid_state nell'archiviazione della sessione.

  • Cicli di acquisizione del token infiniti ed errore AADSTS50058. Quando un'applicazione eseguita in Microsoft Edge tenta di acquisire un token per una risorsa, l'applicazione potrebbe rimanere bloccata in un ciclo infinito della chiamata al token di acquisizione. Nell'analisi di rete viene restituito l'errore seguente:

    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)

  • La finestra popup non si chiude o si blocca quando si usa l'accesso tramite la finestra popup per l'autenticazione. Quando si esegue l'autenticazione tramite una finestra popup in Microsoft Edge o Internet Explorer (InPrivate), dopo aver immesso le credenziali e aver eseguito l'accesso, se sono coinvolti più domini nelle zone di sicurezza, la finestra popup non si chiude perché MSAL.js perde l'handle per la finestra popup.

  • Impossibile accedere usando l'URL di reindirizzamento preceduto da tauri. Gli unici schemi supportati per gli URI di reindirizzamento sono https: per le app di produzione e http://localhost per lo sviluppo locale. Se si tenta di usare uno schema diverso, ad esempio tauri://localhost, per un'applicazione per dispositivi mobili o desktop, viene visualizzato il messaggio di errore seguente. Questo errore si verifica in seguito alla progettazione del back-end dell'applicazione a pagina singola.

    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.

Aggiornamento: correzione disponibile in MSAL.js 0.2.3

Le correzioni per i problemi del ciclo di reindirizzamento dell'autenticazione sono state rilasciate in MSAL.js 0.2.3. Abilitare il flag storeAuthStateInCookie nella configurazione MSAL.js per sfruttare i vantaggi di questo aggiornamento. Per impostazione predefinita, questo flag è impostato su False.

Quando il storeAuthStateInCookie flag è abilitato, MSAL.js usa i cookie del browser per archiviare lo stato della richiesta necessario per la convalida dei flussi di autenticazione.

Nota

Questa correzione non è ancora disponibile per i msal-angular wrapper e msal-angularjs . Questa correzione non risolve il problema relativo alle finestre popup.

Altre soluzioni alternative

Verificare che il problema si verifichi solo nella versione specifica del browser Microsoft Edge e funzioni negli altri browser prima di adottare queste soluzioni alternative.

  1. Come primo passaggio per risolvere questi problemi, assicurarsi che il dominio applicazione e tutti gli altri siti coinvolti nei reindirizzamenti del flusso di autenticazione vengano aggiunti come siti attendibili nelle impostazioni di sicurezza del browser. In questo modo, i reindirizzamenti appartengono alla stessa zona di sicurezza. A tale scopo, effettuare i passaggi seguenti:

    • Aprire Internet Explorer e fare clic su Impostazioni (icona a forma di ingranaggio) nell'angolo superiore destro
    • Selezionare Opzioni Internet
    • Fare clic sulla scheda Sicurezza
    • Nell'opzione Siti attendibili fare clic sul pulsante Siti e aggiungere gli URL nella finestra di dialogo visualizzata.
  2. Come indicato in precedenza, poiché solo l'archiviazione della sessione viene cancellata durante la normale navigazione, è possibile configurare MSAL.js per usare invece l'archiviazione locale. Questa impostazione può essere impostata come parametro di configurazione cacheLocation durante l'inizializzazione di MSAL.

Si noti che queste soluzioni alternative non risolvono il problema relativo a InPrivate Browsing perché sia la sessione che l'archiviazione locale vengono cancellate.

Problemi causati da blocchi popup

In alcuni casi, i popup vengono bloccati in Internet Explorer o Microsoft Edge, ad esempio quando si verifica un secondo popup durante l'autenticazione a più fattori. Si riceverà un avviso nel browser per consentire la finestra popup una volta o sempre. Se si sceglie di consentire, il browser apre automaticamente la finestra popup e restituisce un null handle per esso. Di conseguenza, la libreria non ha un handle per la finestra e non è possibile chiudere la finestra popup. Lo stesso problema non si verifica in Chrome quando richiede di consentire finestre popup perché non apre automaticamente una finestra popup.

Come soluzione alternativa, gli sviluppatori devono consentire i popup in Internet Explorer e Microsoft Edge prima di iniziare a usare l'app per evitare questo problema.

Passaggi successivi

Altre informazioni su come Usare MSAL.js in Internet Explorer.