Esiste un difetto di progettazione intrinseco nel tipo di applicazione MVC che ho creato e credo di non essere il primo a realizzare.MVC AD Azure Aggiorna token tramite ADAL JavaScript Ajax e KnockoutJs
Ho un MVC 4 Applicazione che utilizza AD Azure di autenticazione che è stato introdotto per l'applicazione nel modo seguente
Developing ASP.NET Apps with Azure Active Directory
volta come utente è autenticato e Home.cshtml
carichi, KnockoutJs viene utilizzato per eseguire JavaScript AJAX Richieste POST e GET per leggere e scrivere dati.
Quindi non esattamente una singola app di pagina, ma piuttosto un mix di postback tradizionali per le risorse di autenticazione e di servizio e operazioni di lettura/scrittura tramite AJAX.
Durante le richieste AJAX, il token di autenticazione scade e AD non è in grado di aggiornare il token tramite JavaScript. si osserva
il seguente errore del browser
XMLHttpRequest non può caricare https://login.windows.net/xxx. Nessuna intestazione 'Access-Control-Allow-Origin' è presente sulla risorsa richiesta. L'origine 'xxx' non è quindi consentita l'accesso.
Ho ricercato adal.js e nei seguenti post ma non sono sicuro se adal.js sia la soluzione al mio tipo di applicazione o il modo migliore per incorporarlo per farlo funzionare con il mio tipo di applicazione.
mia comprensione finora:
non sto usando AngularJS.
Non avvio l'autenticazione tramite JavaScript e la mia autenticazione non è guidata da JavaScript per poter trarre vantaggio da adal.js.
L'autenticazione viene eseguita sul lato server e il successivo meccanismo di aggiornamento dei token OAuth2 richiede i postback di pagine complete.
Sono inciampato in vari post relitti di Vittorio Bertocci, ma nessuno affronta le particolarità di questo tipo di progettazione dell'applicazione MVC.
ADAL, Windows Azure AD and Multi-Resource Refresh Tokens
WAAD doesn't refresh access token from javascript
Combining ADAL.Net and ADAL.js
AngularJS + ADAL.JS set Resource ID (Audience)
La mia unica opzione per ora è usare un IFrame HTML nascosto per postback ogni 20 minuti e gestire l'errore del token di aggiornamento usando un reindirizzamento lato client per accedere alla pagina – puri
Mi rendo conto che questo è di diversi mesi , ma ora sto riscontrando lo stesso problema. Qual è stata la tua soluzione? Come stai riscontrando l'errore del token sul lato client? Grazie. – Namrehs