Instance IDとは何?



  • この記事は、Instance IDに関する記事を和訳したものです。
  • 原文: What is Instance ID?
  • 元記事のライセンスは CC-BYで、この和訳記事のライセンスは CC-BYです。
  • 自己責任でご利用ください。
  • 和訳した時期は 2017年8月ころです。

Instance IDは、あなたのアプリのインスタンスごとにユニークな IDを提供します。 Androidおよび iOSと同様に、Chrome apps/extensionsのための Instance IDを実装することができます。

主な機能

認証のためにユニークな IDを提供するだけでなく、Instance IDは、他のサービスを伴って使用するためのセキュリティトークンを生成することができます。 他の機能は次のとおりです:

セキュリティトークンを生成する

Instance IDは、サードパーティが、あなたのアプリのサーバーサイドで管理されたリソースにアクセスすることを承認するセキュリティトークンを生成するための、シンプルな APIを提供します。 Google Cloud Messagingを経由してあなたのアプリのためのプッシュメッセージを承認するために、これらのトークンを使用します。

アプリの真偽を検証する

あなたのサーバに Instance IDトークンを渡し、アプリのパッケージ名を検証するために Instance IDのサービスを使用し、それが妥当な署名を持っているかどうかをチェックします。 Instance IDクラウドサービスを用いてトークンを検証することは、既知のアプリを識別することに役立ちます。 コストおよび冗長な往復通信を減少させるには、あなたのサーバがこれらのトークンを格納するよう構成します、そうすれば、チェックは 1度だけ必要とされます。 セキュリティ上の懸念イベントにて、あなたのアプリは、`deleteTokens` 、あるいは、Instance ID自身を削除し、新しいものを生成することができます。 さらには、Instance IDサーバは、もしそれがバグあるいはセキュリティの問題を検出したならば、トークンあるいは Instance IDのリフレッシュを開始します。

アプリの端末がアクティブであることを確認する

Instance IDサーバは、インストールされたあなたのアプリの端末が最後に使用された時を伝えます。 あなたのアプリからのデータを保持するか、あるいは、あなたのユーザと再交渉するためにプッシュメッセージを送信するかどうかを決定するために、これを使用します。

アプリを識別し、トラッキングする

Instance IDは、全世界のすべてのアプリのインスタンスでユニークです、したがって、あなたのデータベースは、アプリのインスタンスを識別し、トラッキングするために、それを使用することができます。 あなたのサーバ側のコードは、Instance IDクラウドサービスを経由して、Instance IDは本物で、あなたのサーバに登録されたオリジナルのアプリと同じ IDであることを検証することができます。 プライバシーのために、あなたのアプリは Instance IDを削除することができるので、データベース内の任意の履歴に関連付けられなくなります。 次にあなたのアプリが Instance IDを呼び出すとき、それは、その以前のものとは関係のないまったく新しい Instance IDを取得するでしょう。

Instance IDのライフサイクル

  1. Instance IDサービスは、あなたのアプリがオンラインになったとき、InstanceIDを発行します。 InstanceIDは、ローカル端末上に格納された秘密鍵、および Instance IDサービスに登録された公開鍵とともに、公開/秘密鍵の組によってバックアップされます。
  2. あなたのアプリは、 必要に応じて getID()メソッドを使用して、新鮮な InstanceIDをリクエストすることができます。 あなたのアプリは、もしあなたのアプリをサポートするものがあれば、それをあなたのサーバ上に格納することができます。
  3. あなたのアプリは、必要に応じて getToken()メソッドを使用して、Instance IDサービスからトークンをリクエストすることができます、そして、InstanceIDのように、あなたのアプリは独自のサーバ上にトークンを格納することもできます。 あなたのアプリのすべてのトークンは、アプリの InstanceIDに所属しています。
  4. トークンはユニークでセキュアです、しかし、あなたのアプリあるいは Instance IDサービスは、セキュリティの問題が発生したとき、あるいは、端末の復元中に、あなたのアプリをアンインストールし再インストールしたとき、トークンをリフレッシュする必要があるかもしれません。 あなたのアプリは、Instance IDサービスからのトークンリフレッシュリクエストに応答するためのリスナを実装しなければなりません。

Instance ID Lifecycle

クライアントの実装

Instance IDは、Android および iOSの両方で動作します。 それぞれは、あなたのクライアントアプリにて適切なライブラリをインクルードさせることを必要とします。 Androidは、Google Play Servicesを必要とします。 もしトークンを生成するつもりならば、Google Developers Consoleによって生成された Project IDを必要とするでしょう。

詳細な手順については、Androidおよび iOSの実装ガイドを参照してください。