私はAndroid App用の残りのAPIを作成しました。すべてのAPIはOAuth2(パスワードgrant_type)を使用して保護されています。信頼できるアプリケーション用の安全な残りのAPI
ユーザーはユーザー名&を提供し、サーバーは資格情報を確認し、access_tokenとrefresh_tokenを発行してAPIを呼び出すことができます。
ここでの問題は、APIが公開されており、誰にでも公開されていることです。マイアプリから生成されたコールだけが尊重されることを確認する方法を教えてください。
シナリオ: XYZはMy Appのユーザーであり、非常に優れた開発者です。彼は私のアプリとapiがどのようにやり取りしているかを知るのに十分興味がありました。今、彼は少し野心的(私は推測)で、自分のアンドロイドアプリを作成することに決め(私のアプリに似ています)、残りのAPIを使用します。この使用法に対してAPIを保護するにはどうすればよいですか?
私は他のいくつかの投稿を見ましたが、そのような使用から自分のAPIを保護するのに役立つものは何も見つかりませんでした。
サーバーがあなたの言うとおりにoauth2を実装している場合、アプリケーションにはクライアントIDとクライアントシークレットが必要です。 – akash93
私のAPIに基づいて他の人がアプリケーションを作成することを許可していません。私のAPPにはclientIdがあり、それはアプリケーションの検証に使用されますが、私のapkをソースコードに逆コンパイルするとclientIdが検出される可能性があります。今、誰かがclientIdを発見した場合、彼は私のアプリケーションが行うのと同じことをするためのアプリケーションを作成することができます。 – behinddwalls
あなたのクライアントを解体できないようにすることは不可能ですが、これを参照してより難しいものにする方法はいくつかあります。https://stackoverflow.com/questions/14570989/best-practice-for-storing-private-api-keys-in -アンドロイド – akash93