1

現在、Web サービス (Imgur) のデスクトップ アプリケーションで OAuth1 から OAuth2 に移行する過程にあり、OAuth2 の仕様に困惑しています。このドキュメントhttp://aaronparecki.com/articles/2012/07/29/1/oauth2-simplifiedによると、OAuth2に関するさまざまなサービスドキュメントを見ると、OAuth1が提供するすべてのセキュリティが壊れているようです。

OAuth1 を使用すると、ユーザーがアクセスを許可するサービスへの URL を使用でき、PIN が表示されてアプリにコピー/貼り付けできます。これは、ユーザーがログイン/パスワードをアプリに決して許可しないという意味で、非常に優れたセキュリティでした。また、サービスの Web サイトからいつでもアクセス権を取り消すことができます。

現在、OAuth2 ではこのシナリオを省略し、アプリがアクセスを許可した後にサービスからトークンを受け取るために Web サイトで独自のスクリプトを作成しない限り、アプリにユーザーのログイン/パスワードを要求するように強制しました (その後、ユーザーにそれをコピーして貼り付けてもらいます)。あなたのウェブサイト)

ここで何か不足していますか?

4

2 に答える 2

0

ネイティブ アプリケーションが最適です。OAuth 2.0 RFC の [「ネイティブ アプリケーション」][1] セクションを参照してください。ネイティブ アプリケーションは、パスワードを保存するためのものではありません。アプリに (ブラウザー コントロール内であっても) 資格情報を直接入力したくない場合は、OAuth 2.0 ネイティブ アプリケーションから次の操作を行うことができます。

  1. 認証エンドポイントでデフォルトのブラウザーを起動します。
  2. 承認コードを選択してユーザーに表示する、リダイレクト URI 用の単純な Web ページを実装します。
  3. ユーザーに、コードをコピーしてネイティブ アプリケーションに貼り付けるように依頼します。

または、仕様では、ネイティブ プラットフォームの URL リダイレクト スキームを利用して、元のアプリケーションに戻すことを提案しています。iOS および Android の「URL スキーム」機能を確認できます。残念ながら、これらのプラットフォームはいずれも URL スキームの一意性を保証していないため、同じ URL でアクティブ化された別の不正なアプリによって認証コードが乗っ取られる可能性があります。そのためのiOSバグを提出しました。[1]: https://www.rfc-editor.org/rfc/rfc6749#page-52

于 2014-03-15T05:34:51.330 に答える
0

デスクトップ アプリケーションは、ユーザー エージェント (ブラウザー) を使用して OAuth を実行できますし、使用する必要があります。これについては、OAuth 2 仕様の「ネイティブ アプリケーション」で説明されています。あなたが説明したフローは、ゲーム機、プリンター、カメラなど、入力機能が制限されたデバイス向けです。

私の知る限り、デバイス フローは OAuth 2 の初期の仕様にありましたが、ある時点で省略されました。Google などの一部の API プロバイダーは、制限付きのサポートを実装しています。

于 2012-12-20T21:07:18.687 に答える