6

カスタムトークンベース認証を使用してASP.NET Web APIを使用してRESTfulサービスを構築しています。クライアントは最初の呼び出しで資格情報を送信します。サービスはユーザーの詳細を使用して暗号化されたトークンを作成し、このトークンはこの時点以降の認証に使用されます。今サービスはこのトークンをクライアントに送り返す必要があります。最初は、クライアントがサービスから返されたデータとは独立した値を読み取れるように、HTTPカスタム応答ヘッダーにトークンを保存しました。これは、クライアントとサービスが同じドメインにあるがクロスドメインのシナリオで失敗した場合にうまく機能しました。私はCORSにサービスを有効にし、 "Access-Control-Expose-Headers"、 "Access-Control-Allow-Origin:*"などのあらゆる種類のヘッダーを追加しました。しかし、クロスドメインクライアントはカスタム応答ヘッダー私は "SecureToken:"を作成しました。私はいくつかの記事で、Webブラウザにはクロスドメインシナリオでカスタム応答ヘッダーを読む際にいくつかの問題があることがわかりました。だから私は、サービスから送信されたすべてのViewModel/dataオブジェクトの共通基底クラスを通して、安全なトークンを送信することを考えています。RESTfulサービスからセキュアトークンを送信するにはどうすればよいですか?

このような状況から、私が質問をいくつ持っている:

  1. カスタム安全なトークンを送信するのに最適な場所である何を。レスポンスヘッダにあるのか、ViewModel/dataクラスの基本クラスの共通のプロパティであるのでしょうか?

  2. トークンとカスタム情報を送信するために使用できる標準のHTTP応答ヘッダーがありますので、クロスドメインクライアントでも読むことができます。

ご協力いただきますようお願い申し上げます。ありがとう!

+0

こんにちはtpeczek - この質問に時間をかけていただきありがとうございます。私はこの記事を前に見ました:http://codebetter.com/johnvpetersen/2012/04/02/making-your-asp-net-web-apis-secure/。私はすでに秘密鍵の暗号化を使用しているトークンベースの認証を実装しています。問題は、ユーザーをログアウトせずに、更新されたトークンを送信する方法(セッションのタイムアウトが更新され、新しいトークンが生成される場合)です。特定の応答ヘッダーが最適なオプションでしたが、残念なことにクロスドメインクライアントは非標準応答ヘッダーを読むことができません – Whizkid747

答えて

2

Authorizationヘッダはこのためのものです。使用方法の詳細については、このリンクのsection 14.8を確認してください。

+1

is not Authorization request header?私はHTTPの "応答"ヘッダーについて質問していました。 – Whizkid747

+1

承認は、要求と応答の両方に有効なヘッダーです。トークンを返すためにカスタムスキームでAuthorizationヘッダーを確実に使用する必要があります –

関連する問題