Angular.JS SPA 内で Adal.JS を使用する際に問題があります。ユーザーが認証された後 (通常の AAD リダイレクト フロー)、Bearer Token が Authorization-Header にそのまま追加されます。
ここで注意が必要なのは、特定の状況で、許可されたユーザーのみがアクセスできるサーバーからファイルをダウンロードする必要があることです。残念ながら、そのシナリオに対する適切な解決策はまだありません。新しいウィンドウでファイルのダウンロードをトリガーするために使用 $window.open('domain.com/api/getSecretFile?id=1');
すると(Angularインスタンスを維持するために)、ブラウザはBearer-TokenをAuthorization-Headerに追加しません(Angularの外側にあるため)->サーバーは不正な呼び出し - これは 100% 論理的です。では、どうすればこの問題を解決できますか?
私の考え: ウィンドウを開く呼び出しを次のように変更して$window.open('domain.com/api/getSecretFile?id=1&token=mybearertoken');
、API がこの追加のパラメーターを何らかの方法でチェックできるようにします。そのため、Angular 内のどこかで利用できるベアラー トークンを取得する必要があります。しかしここで?ベアラー トークンにアクセスするにはどうすればよいですか? 何か案は?
私の場合、サーバー側の部分は ASP.Net によって実現されています。この部分については、利用可能なソリューションがあります: .NET Web API 2 OWIN Bearer Token Authentication direct call
しかし、まずトークンにアクセスする必要があります。それとも、問題を解決するための別の適切な方法がありますか? 前もって感謝します!