私が構築したMVCアプリケーションのタイプには固有の設計上の欠陥があり、私は実現するのが初めてではないと信じています。MVC AD Azureリフレッシュトークン(ADAL JavaScript AjaxとKnockoutJs)
私はユーザーが認証およびHome.cshtml
ロードされるとしたら、KnockoutJsはJavaScript AJAXを実行するために使用される
Developing ASP.NET Apps with Azure Active Directory
次の方法でアプリケーションに導入されたAD Azureの認証を利用してMVC 4アプリケーションを持っていますデータを読み書きするPOSTおよびGET要求
単なるページアプリケーションではなく、AJAXを介した認証とサービスのアセットおよび読み取り/書き込み操作の従来のポストバックが混在しています。
AJAXリクエスト中、認証トークンは失効し、ADはJavaScriptを通じてトークンを更新できません。
以下のブラウザエラーが観測され
XMLHttpRequestがhttps://login.windows.net/xxxをロードすることはできません。 要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーが存在しません。 したがって、 'xxx'はアクセスできません。
私はadal.jsと以下の投稿を調査しましたが、adal.jsが自分のタイプのアプリケーション の解決策であるかどうか、または自分のアプリケーションのタイプと連携させるにはどのように組み込むのがベストかを確認していません。
これまでの私の理解:
私はAngularJSを使用していません。
私はJavaScript経由で認証を開始しません。私の認証は、adal.jsの恩恵を受けるためにJavaScriptではありません。
認証はサーバー側で行われ、その後のOAuth2リフレッシュトークンメカニズムでは、全面ポストバックが必要です。
私はVittorio Bertocciの様々な関連記事を見つけましたが、このタイプの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)
今私の唯一のオプションは、ログインページへのクライアント側のリダイレクトを使用して、20分ごとにポストバックし、リフレッシュトークンエラーを処理するために非表示のHTML IFrameを使用することです。 – puri
これは数ヶ月ですしかし、私は今この同じ問題を経験しています。あなたの解決策は何ですか?どのようにクライアント側でトークンエラーをキャッチしていますか?ありがとう。 – Namrehs