0

OAuth2 とモバイル アプリケーションで保護された REST バックエンドがあります。

Resource Owner Credentials フローを使用して、モバイル アプリケーションからユーザーを認証したいと考えています。

認証を要求しているアプリケーションを識別するために client_id を提供する必要があるため、ハッカーがモバイル アプリケーションのソース コードから client_id を盗むのを防ぐにはどうすればよいですか? また、それを取り消すにはどうすればよいですか?

たとえば、公式の Twitter Android アプリケーションがこの種のことをどのように処理しているかを知りたいです。

4

1 に答える 1

0

これは非常に古い投稿であることは承知していますが、関連のない検索で偶然見つけたところ、回答がないことがわかりました。

OAuth 2.0仕様から引用するには、

クライアント ID はシークレットではありません。リソース所有者に公開され、クライアント認証に単独で使用してはなりません。

つまり、client_id はユーザー名や電子メールに非常に似ています。ログインして電子メールを表示するために必要なデータの半分は、私の電子メール アドレスが誰かに知られても、まったく気にしません。その考えを維持するために、client_secret は、ソース コードを保護し、エンドポイントPOSTにのみ要求を送信することによって非公開にする必要があるパスワードです。HTTPS

これらの資格情報を介してクライアントに付与された特権を取り消すことに関しては、ほとんどの (すべてではないにしても) 主要な OAuth プロバイダーは、OAuth ポータルを介して何かを行うことを許可します。Twitter の例に従うと、API キーのページに「API キーを再生成する」ボタンがあります。あなたがサービス プロバイダーであり (リソース所有者の資格情報へのアクセス許可があると述べたので、これを言います)、パブリックに面した OAuth ポータルが設定されていない場合は、データ ストアの文字列を変更するだけで済みます。サーバー側を使用してから、クライアントのソース コードに同じ変更を加えます。

于 2014-04-04T23:24:23.547 に答える