IdentityServer Bearer Token Authentication / Access Token Validation で保護された Web API 2 OData v3 サービスがあります。クライアントは SPA アプリケーションです。oidc-token-manager.js ライブラリを使用して認証し、Authorization http ヘッダーのアクセス トークンを XMLHttpRequest を使用して通常の odata crud 操作に渡すことに成功しました。
私の odata サービスは、ファイルのアップロードとダウンロードのストリーミングもサポートしています。ここでも、ファイルをアップロードするために、XMLHttpRequest を使用して Authorization http ヘッダーでアクセス トークンを渡すことができます。
ただし、ファイルをダウンロードするには、href を含むアンカー タグを使用したいと考えています (odata ファイルのダウンロード URL は通常、/odata/myfiles(1)/$value の形式です)。ユーザーがリンクをクリックすると、ファイルがダウンロードされます (odata サービスは content-disposition 添付ヘッダーを応答に追加します)。
ただし、この GET 要求はブラウザーによって作成されるため、この GET 要求の Authorization ヘッダーにアクセス トークンを追加する方法はありません。代わりに、アクセス トークンをクエリ文字列として href の URL に追加することはできますか (いわゆる署名付き URL)。これは良い(安全な)アイデアですか?サーバーでは、Startup.cs で app.UseIdentityServerBearerTokenAuthentication を使用していますが、クエリ文字列と Authorization http ヘッダーでアクセス トークンを検索できますか?
どうもありがとう
レムコ