2011-08-12 15 views
1

JavaScriptでOAuthクエリーストリングを生成するプロジェクトに取り組んでいます.HTTPSと内部アプリケーションを使用しているため、セキュリティは今のところ大きな問題ではありません。DotNetOpenAuthを使用してJavaScript OAuthSimpleクエリーストリングを確認する

JavaScriptクエリ文字列は、基本的に内部アプリケーションのデータをC#アプリケーションに渡すために、別のサーバーとドメイン上のC#スクリプトを呼び出すために使用され、a)クエリが正しいソース、b)クエリが有効で有効期限が切れていないなど

OAuthSimpleは次のような署名済みURLを返します: http://www.myremotesite.com/mycodepath/mycodefile.aspx?firstname=Kevin&lastname=Blount&oauth_consumer_key=ThisIsTheConsumerKey&oauth_nonce=nuOoM&oauth_signature=DAoaSxD5SvVFTTDNSxiTbANzGlc%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1313162452

私の質問は、物事のC#側です。私は次に何をしますか?私は2つの考えをしましたが、私は探求する必要が出て作業することはできません。

  1. C#を使用して新しい署名URLを生成し、両者を比較する(あるいは単にoauth_signatureの値を比較)
  2. クエリ文字列を取りますそれを何らかの方法で解読/解読し、それを検証する。

DotNetOpenAuthは標準であると言われていますが、私はそれを使用して次のステップを理解することはできません。

私は何を調べる必要があるか、どのように進めるべきかを説明する記事をいくつかアドバイスできますか?

答えて

1

DotNetOpenAuthの手順をよく読んで理解してください。以前は使っていませんでしたが、良いことを聞いてきました。あなたは

  • 検証タイムスタンプを処理するためのOAuthの正しいバージョンを使用してクライアントである - - すべてのタイムスタンプを避けるために、UTCでなければなりませんタイムゾーン

    1. 検証バージョン:

      のOAuthサーバーは、いくつかの手順を行います問題

    2. Nonceの検証 - 以前に使用した時間範囲
    3. 署名の検証 - コンシューマキーから秘密キーを取得し、パラメータで渡された値を使用して署名を計算し、実際の署名と比較します。
    4. メッセージはすべてのチェックを通過した後は、サーバはメッセージ
  • +0

    こんにちはマークによって要求されたリソースを返します - 応答に感謝。私はDNOAサイトを読んでいて、それを理解していないので、私は質問を掲示しています;)私はサイト上で指示を見つけられませんでした。 OAuthSimple(JavaScript)URLが有効であることを確認するために必要なことを説明するものは何も見つかりません。あなたの踏み台は理にかなっていますが、DNOAがこれをどのように手助けしてくれるかを理解できればです。 OAuth.netのOAuthBase.csを使用していますが、正確な検証を行うことができません。 – QMKevin

    +0

    DotNetOpenAuthの[Service Provider Sample Code](http://sourceforge.net/projects/dnoa/files/releases/v3.4/v3.4.7/)を見てきましたか? Samples/OAuthServiceProviderを見てください。 OAuthサーバーを実装することで、これを手助けする必要があります。 私はもっと助けてくれないことをお詫びしますが、以前はそのコードを使用していませんでした。 –

    +0

    返信いただき、ありがとうございました。私はDotNetOpenAuthを使用しないことに決め、oauth.netのOAuthBase.csクラスを使用しました.OAuth.netでは、JavaScript OAuthライブラリも使用されています。私はJavaScriptを使用して、同じソースからのC#コードを使用すると、DNOAを見つけようとするよりも(私の場合は)意味があると考えました。検証のためのステップは、C#OAuthライブラリを使用しているかどうかにかかわらず、非常に便利なので、最初の回答を答えとしてマークしています。乾杯! – QMKevin