MVC AD Azure-Aktualisierungstoken über ADAL JavaScript Ajax und KnockoutJs

Die Art der von mir erstellten MVC-Anwendung weist einen inhärenten Konstruktionsfehler auf, und ich glaube, ich bin nicht der Erste, der dies erkennt.

Ich habe eine MVC 4-Anwendung, die die AD Azure-Authentifizierung verwendet und auf folgende Weise in die Anwendung eingeführt wurde.

Entwicklung von ASP.NET-Apps mit Azure Active Directory

Einmal als Benutzer ist authentifiziert undHome.cshtml wird geladen, KnockoutJs wird verwendet, um JavaScript-AJAX-POST- und GET-Anforderungen zum Lesen und Schreiben von Daten auszuführen.

So keine Single Page App, sondern eine Mischung aus herkömmlichen Postbacks für Authentifizierung und Serving Assets sowie Lese- / Schreibvorgängen über AJAX.

Während AJAX-Anforderungen läuft das Authentifizierungstoken ab und AD kann das Token nicht über JavaScript aktualisieren.

Der folgende Browserfehler wird beobachtet

XMLHttpRequest kann nicht geladen werdenhttps: //login.windows.net/xx. In der angeforderten Ressource ist kein 'Access-Control-Allow-Origin'-Header vorhanden. Origin 'xxx' ist daher nicht zugänglich.

Ich habe adal.js und die folgenden Posts recherchiert, bin mir aber nicht sicher, ob adal.js die Lösung für meine Art von Anwendung ist oder wie ich sie am besten einbinden kann, damit sie mit meiner Art von Anwendung funktioniert.

Mein Verständnis bisher:

Ich benutze AngularJS nicht.

Ich beginne nicht mit der Authentifizierung über JavaScript und meine Authentifizierung erfolgt nicht über JavaScript, um von adal.js profitieren zu können.

Authentifizierung erfolgt serverseitig und der nachfolgende OAuth2-Aktualisierungstoken-Mechanismus erfordert vollständige Seiten-Postbacks.

Ich bin auf verschiedene wiederverwendete Posts von Vittorio Bertocci gestoßen, aber keine befasst sich mit den Besonderheiten dieser Art von MVC-Anwendungsdesign.

ADAL, Windows Azure AD und Aktualisierungstoken für mehrere Ressourcen

WAAD aktualisiert kein Zugriffstoken von Javascript

Combining ADAL.Net und ADAL.js

AngularJS + ADAL.JS Ressourcen-ID (Zielgruppe) festlegen

Antworten auf die Frage(2)

Ihre Antwort auf die Frage