1

OAuth 2プロバイダーを構築しようとしていますが、Webサーバーのフローは非常に単純ですが、インストールされたアプリケーションフローを実装するための最良の方法がわかりません。

見られるほとんどの例は、基本的にモバイルアプリケーションの埋め込みブラウザ内のWebサーバーフローに従います。これは、一般的に、FacebookとGoogleがサードパーティのアプリがAPIを使用する方法を示す方法でもあります。

しかし、FacebookやGoogle独自のモバイルアプリケーションは実際にそのフローを使用していますか、それともモバイル認証を実装するためのより良い方法がありますか

私の主な問題は主にクライアントIDとクライアントシークレットに起因します。インストールされているすべてのバージョンのモバイルアプリに埋め込まれていると、簡単に盗聴できるため本質的に役に立たなくなります。また、アプリケーションごとに2つの明確なoauthの例はありません。クライアントシークレット

したがって、oauth2を使用して自分のモバイルアプリを保護するための最良の方法は何ですか

4

1 に答える 1

0

おそらくユーザーベースの認証が必要であり、クライアント側でユーザー名/パスワードを処理したくないため、これにより、ImplicitGrantフローまたはAuthorizationCode Grantフロー(いわゆるWebサーバーフロー)を使用する選択肢が残ります。 。

次に、OAuth2仕様の[インストールされているアプリケーション]セクションを確認してください。そこで彼らは述べています:

暗黙的な許可タイプと認証コード許可タイプのどちらかを選択するときは、次のことを考慮する必要があります。

  • 承認コード付与タイプを使用するネイティブアプリケーションは、クライアントクレデンシャルを機密に保つことができないため、クライアントクレデンシャルを使用せずに使用する必要があります。
  • 暗黙の許可タイプフローを使用する場合、更新トークンは返されません。これには、アクセストークンの有効期限が切れたら、承認プロセスを繰り返す必要があります。

組み込みまたは外部のユーザーエージェントを使用するかどうかも、仕様で広くカバーされています。

これを安全に実装するには(少なくともオープンプラットフォームで技術的に可能な限り)、nativeという単語の仕様を検索し、その単語を含むセクション、特にクライアント認証クライアント偽装のセクションを複数回読みます。

于 2012-09-06T07:33:01.503 に答える