私はMVC用のOAuth2.0を使用しています。これは次の場所にあります。
http://community.codesmithtools.com/CodeSmith_Community/b/tdupont/archive/2011/03/18/oauth-2-0-for-mvc-two-legged-implementation.aspx#comments(これはいくつかへのリンクですプロジェクトのダウンロードへのリンクがある簡単なドキュメント)。
フローがどのように機能するかを理解しようとしています。次のようになります。
- RequestTokenコントローラーメソッドからRequestTokenを取得します
- 次に、コントローラーは要求トークンをOAuthServiceBase.Instance.AccessTokenに渡します。これは、抽象OAuthServiceBaseクラスを継承するDemoServiceクラスに移動することになります。このメソッドは、ソルトのRequestTokenを使用してユーザー名をハッシュし、それをパスワードと比較します(これも、RequestTokenでハッシュおよびソルトされています)。それらが一致する場合、AccessTokenを発行します。これはサンプルロジックです。実際のアプリケーションでは、ユーザーの資格情報を取得することになっているというメモがここにあります。
これにより、次の点でかなり混乱したように感じます。
- RequestTokenの目的がわかりません。RequestTokenは5分後に期限切れになります。そのため、サンプルロジックでは、ユーザー名とパスワードのハッシュをソルトしていますが、ユーザーのハッシュされたパスワードをソルトする方法はわかりません。
- 上記にかかわらず、このアプリにはパスワードハッシュをソルトするメカニズムはありません。私は何かが足りないのですか?ソルトをクライアント側に永続的に保存したくないので、暗号化されていないパスワードをデータベースに保存する必要はありませんか?永続的なソルトがある場合は、ハッシュ化されたソルト化されたパスワードをデータベースに保存し、ソルトをクライアント側に保存してから、ハッシュ化されたパスワードを認証に渡すことができます。
おそらくお分かりのように、私は一般的に認証コードを書くのは初めてです。私はここで何かが欠けていることを知っています、私はそれが何であるかを知らないだけです:)