現在、クライアントサイドのC#アプリケーションでOAuth 2.0ユーザーエージェントフローを使用しようとしていますが、リダイレクトURIに関するいくつかの混乱が生じています。C#デスクトップアプリケーションを使用したOAuthユーザーエージェントフロー
私はclientsideアプリケーションを使用しているため、標準のリダイレクトURLをWebサーバーに提供することはできません。しかし、私が(Salesforce、この例では)認証しようとしている人によると、User-Agent Flowはクライアントサイドアプリケーションに使用する正しいものです。
私の質問は、この状況でアクセストークンをキャッチするにはどうすればよいですか?どうやら私は "クライアントにアクセスできるローカルリソース"を作成することができますが、私はこれの背後にある仕組みには慣れていませんし、そのトピックに関するリソースも見つけられません。
私がどこから見始めなければならないかについての指針は非常に高く評価されます。
編集:私はいくつかは、より多くの彼らが提案するもので調査やっているが、任意の他の提案も同様に素晴らしいことだ
How do I develop against OAuth locally?
:いくつかのより多くの掘削は、次のstackoverflowの質問を明らかにしました。
編集:いくつかは、より多くの検索この記事を明らかにした:私は暗闇の中でチャンスをうかがってるよう
http://sarangasl.blogspot.com/2010/09/create-simple-web-service-in-visual.html
はまだ大きな画像を理解せずに感じているが、私は私がする必要があると考えていますlocalhostを使用してローカルWebサービスを設定し、そこでリダイレクトURIをポイントします。次に、Webサービスを使用してOAuthサーバーからの応答をアンラップし、アプリケーションが適切に応答するようにします。さらなるアップデートが来る
Ooookay。だから、私が集めることができたことから、OAuthのコールバックとして提供するローカルWebサービスを設定する必要があります。私は自分自身で言ったWebサービスを聞いてコールバックをキャッチして、それを私のアプリケーションに渡す必要があります。しかし、VS2010が提供するデフォルトのASP.NET WebサービスはURLパラメータをサポートしていないので、WCF Restスターターキットを使用する必要があります。
私はこのすべてに対して完全に外国人です。だから、この時点ではどんなヒントも神の贈りものになるでしょう。一般的には、ローカルのWCF Restサービスを設定し、そのローカルURIをコールバックとしてOAuthに提供し、Restサービスを使用してコールバックURLを取得すると考えています。次に、URLを解析してアクセストークンを抽出します。この時点で、私のアプリケーションはアクセストークンを要求するのですか、私のWebサービスがトークンを私のアプリケーションに "与える"ことはできますか?コントロールの場所はどこにあるべきですか?
これはオプションになります。ただし、ブラウザの履歴、ページの更新、タイムアウト、ネットワークの停止などの前進や後退など、ユーザーはWebブラウザでいくつかのトリックを使用することができます。すべてのHTTPエラーコード+すべての組み込みブラウザの不快なトリックを処理する必要があります。幸運:) –
あなたのアプリのUIは、おそらく、Salesforceが提案したものとは違っていると思われます。あなたがコントロールできないため、デフォルトを変更することはできません。 –
ああ、そうです。次に、組み込みのブラウザセキュリティを見ていく必要があります。私のアプリは、特定のイベントでポップアップを生成するバックグラウンドプロセスなので、認証はアプリの起動ごとに1回(通常は1日に1回、午前中にのみ)必要です。しかし、ヒントをお寄せいただきありがとうございます。私は埋め込まれたIEインスタンスで開かれる可能性のあるセキュリティホールについて忘れていました。 – sichinumi