JSONデータを生成/消費するWebサービスをいくつか作成し、OAuth2とベアラートークンを使用してそれらを保護しました。これは正常に機能します。
ただし、JSONではなく画像(つまりJPEG / PNGデータ)を生成する同様のWebサービスを構築する必要があります。一貫性を保つために、OAuth2 / Bearerトークンでサービスを保護したいのですが、そうすると、<img>タグを使用して画像データを表示したいブラウザベースのアプリケーションでサービスを利用するのが難しくなります。<img>タグは必要なAuthorization: Bearer ...bearer-token...
HTTPヘッダーを送信しません。
私はこれを回避する2つの方法を見ることができます:
サービスのブラウザベースのクライアントは、XHRレベル2とHTML5からのBlobおよびBlob URLスキームを使用して画像データをBlobとして取得し、Blob URLスキームを使用してBlobのURLを生成し、参照するimgタグを動的に作成します。ブロブURL。画像を表示するだけでも大変!
OAuth2インフラストラクチャを変更して、ベアラートークンに加えてHttpCookieを生成します。サービスAuthorirzationを変更して、Authorization:Bearer...OAuth2ヘッダーまたはCookieのいずれかをIDの証明として受け入れるようにします。ベアラトークン、httpOnlyなどと同じ有効期間を持つCookie。ブラウザベースのクライアントは、ブラウザのCookieサポートに依存してサービスにアクセスでき、通常どおり<img>タグを介して画像データを区別できます。ブラウザクライアントには使いやすいですが、標準ではありません。セキュリティリスクプロファイルは、ベアラートークンとCookieのどちらでも同じようです。
後者のアプローチでセキュリティの問題を見落としていますか?
OAuth2で画像/メディアリソースを保護するための代替アプローチはありますか?