2

認証済みの暗号化された JWT トークンを使用して、ASP.NET Web API アプリケーションへのアクセスを認証/承認することを検討しています。

これまで読んだ内容に基づいて、トークン サービスから JWT トークンを生成し、http 認証ヘッダーを介して Web API に渡すオプションのように思えます。

JWT の作成と消費を実装するための優れたコード例をいくつか見つけました (Badrinarayanan Lakshmiraghavan による Pro ASP.NET Web API Security)。

これをサポートするために完全な OAuth 実装が必要かどうか、または単に認証ヘッダーでトークンを渡すことができるかどうかを理解しようとしています。

トークンが適切に暗号化および署名されていると仮定すると、OAuth を使用せずに物事をシンプルに保つことに固有のセキュリティ上の欠陥はありますか?

セキュリティを損なうことなく、自分のニーズに合わせて物事をできるだけシンプルにしようとしています。

4

2 に答える 2

6

トークンを使用するときに常に OAuth を使用する必要があるわけではありません。しかし、アプリケーションが JavaScript アプリであることを考えると、3-legged 認証を実装した方がよいでしょう。Thinktecture ID サーバーは暗黙的な許可をサポートしています. ただし、クライアント アプリケーションがユーザー資格情報にアクセスすることが問題にならない場合、JavaScript アプリはユーザーからユーザー ID とパスワードを取得し、トークン発行者からトークン要求を行い、ユーザー ID とパスワードが保存されないようにすることができます。 JavaScript アプリ内の場所 (DOM を含む)。このトークンのリクエストは単純な HTTP POST にすることもでき、OAuth に関連するものである必要はありません。エンド ユーザーがクライアント アプリケーションで資格情報を入力しない場合は、OAuth の暗黙的な付与が有効です。ところで、JWT を暗号化する必要はありません。TIS は署名付き JWT を発行し、トークンの整合性を保証します。ただし、機密性が心配な場合は、HTTPS を使用してトークンを取得するだけでなく、トークンを提示することもできます。

于 2013-06-05T04:38:28.857 に答える
0

OAuth によって提供されるものとして、認証委任は本当に必要ないようです。あなたのシナリオには HMAC 認証で十分ではありませんか?. HMAC を使用すると、JWT を扱う必要がまったくなくなります。これは、.NET の HMAC 認証用に作成した実装です。

https://github.com/pcibraro/hawknet

パブロ。

于 2013-06-04T17:31:00.957 に答える