3

これは「これは可能ですか?」です。質問。Android フォン用のアプリと、appengine プラットフォーム用の別のアプリケーションがあります。appengine のことは、実際には db のハイスコアにすぎず、電話アプリは実際には単なるゲームです。json/gson/httppost などを使用して、ゲームのスコアをデータベースに送信できます。今、私が集めたスコアがゲームから得られたものであることを確認したいと思います。プログラミングの才能があるかもしれませんが、あまりにも多くの時間を手にしている人ではありません。

これが質問です。Google OAuth 2.0 を使用して、取得しているスコアがゲームを実行している電話からのものであることを何らかの方法で認証できますか?

私はこれを行うと思った: OAuth を使用して Google から (電話から) ある種のトークンを取得し、そのトークンを (json レコードを使用して) appengine データベースに渡し、トークンを使用して情報を取得します。ユーザーのグーグル。これは、電子メールアドレスと同じくらい簡単です。それから私は自分に言い聞かせます。これは可能ですか?電話を使用して Google からトークンを取得すると、appengine プログラムでは使用できないように感じます。

appengine db に関連付けられている client_id と client_secret (およびその他必要なもの) を使用して電話からトークンを取得し、json 経由でトークンを添付プログラムに送信して電子メールを取得することを考えていました。アドレス、それらは appengine から動作します。これはどういうわけか、Google OAuth が私が電話からトークンを取得しようとしていることを認識し、すべてを拒否するようです。それならまたうまくいくかもしれません。彼らは、Android フォンは秘密を保持できないと言っています (client_secret を参照)。

最後に、appengine 側で記録していたスコアが本当に自分のゲームを実行している Android フォンからのものであることを確認する簡単な方法が他にあるのではないかと考えていました。独自の認証方式を設定できますか? これを行うのはどれくらい難しいですか?

4

2 に答える 2

2

良いタイミング; Google がリリースしたばかりの機能があなたの質問に対処します: http://android-developers.blogspot.ca/2013/01/verifying-back-end-calls-from-android.html

これは複数のステップからなるプロセスであり、その概要を簡単に説明します。Google Play サービスから入手できる GoogleAuthUtil クラスを使用して、「ID トークン」と呼ばれる文字列を取得します。トークンをバックエンドに送信すると、バックエンドはそれを使用して、どのアプリがトークンを送信し、誰がアプリを使用していたかを迅速かつ安価に確認できます。

于 2013-01-08T17:39:34.583 に答える
-1

OAuth 2.0 (Open ID Connect) を使用すると、ゲームを使用しているユーザーを識別できます。ただし、アプリを認証したいようです。これを行うには複数の方法がありますが、資格情報をアプリに埋め込むか、何らかの登録メカニズムを作成する必要があります。一般に、攻撃者 (熟練したユーザー) がアプリ コードとデバイス (root 化など) に完全にアクセスできる限り、できることはあまりありません。唯一の問題は、誰がそれを作りたいかということです。

または、 Parseなどのサードパーティ サービスを使用して、アプリの認証メカニズムを完成させるために時間を費やすこともできます。

于 2013-01-08T06:10:02.977 に答える