0

私はOAuthを初めて使用し、OAuthの動作の背後にあるプロセスを視覚化するのに苦労しています。

私が理解していることから、OAuthを介して資格情報を確認しようとすると、ログインサーバーにリクエストを送信します。ログインサーバーが引き継ぎ、ユーザーがサイト自体にログインします。資格情報が有効な場合は、OAuthリクエストのコールバックURLにアクセスし、トークンがコールバックURLに添付されます。このトークンは、今後のすべてのHTTPリクエストとともにサーバーに渡される必要があり、ユーザーの資格情報の検証として機能します。

私が混乱しているのは、サーバーのないデスクトップアプリケーションにこのプロセスをどのように適応させるのですか?コールバックURLには何を使用しますか?デスクトップで.NETアプリケーションを実行しているだけの場合、トークンを取得するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

2

サポートするサービス プロバイダーによって異なります。

Google には、「インストールされたアプリケーション」で OAuth 2.0 を使用する方法がよく説明されています: https://developers.google.com/accounts/docs/OAuth2InstalledApp

一般に、いくつかの異なる戦略があります。

  1. 上記の OAuth フローを実行します。つまり、標準の URL ハンドラーを使用してブラウザーをポップアップしますが、ブラウザーからアプリケーションに承認コードをコピーして貼り付けるようにユーザーに依頼します。これには、urn:ietf:wg:oauth:2.0:oob の redirect_url に対するプロバイダーのサポートが必要です。
  2. ブラウザー ウィンドウを開き、コピー/貼り付けを要求する代わりに、ブラウザーのタイトル ウィンドウからサーバーから返された認証コードを自動的に取得します。これには、OOB の redirect_url のサポートも必要です。
  3. アプリ内で埋め込みブラウザー ウィンドウとして OAuth 要求を実行し、#2 のように認証コードを取得します。

OAuth 2.0 プロバイダーが OOB をサポートしていない場合は、所有する Web サーバーにリダイレクトして、同様のタスクを実行することもできます。

最大の問題は、認証 (ユーザーの ID を取得する) または承認 (Web API を介してユーザーのデータへのアクセスを取得する) のためにこれを行っているかどうかです。ユーザーを認証しようとしている場合は、検証のために認証コードまたはアクセス トークンを渡すために、信頼できるサーバー側のロジックが必要になります。

于 2012-05-15T18:59:13.760 に答える