主な機能
Instance ID は、認証用の一意の ID を提供するだけでなく、他のサービスで使用するセキュリティ トークンを生成することもできます。その他の機能は次のとおりです。
セキュリティ トークンを生成する
- Instance ID には、サードパーティがアプリのサーバーサイドで管理されるリソースにアクセスすることを承認するセキュリティ トークンを生成するためのシンプルな API が用意されています。
アプリの信頼性を確認する
- Instance ID トークンをサーバーに渡し、Instance ID サービスを使用してアプリ パッケージ名を確認し、有効な署名があるかどうかを確認します。Instance ID Cloud Service でトークンを検証すると、既知のアプリを識別できます。コストと冗長な往復通信を削減するため、サーバーを構成してこれらのトークンを保存し、チェックを 1 回だけ行うようにします。セキュリティ上の懸念がある場合は、アプリでトークンまたは Instance ID 自体を削除して、新しいトークンを生成できます。また、Instance ID サーバーは、バグやセキュリティの問題を検出すると、トークンまたは Instance ID の更新を開始します。
アプリのデバイスがアクティブであることを確認する
- Instance ID サーバーは、アプリがインストールされているデバイスが最後に使用された日時を通知できます。 これを使用して、アプリのデータを保持するか、プッシュ メッセージを送信してユーザーに再エンゲージするかを決定します。
アプリを識別して追跡する
- Instance ID は、世界中のすべてのアプリ インスタンスで一意であるため、データベースを使用してアプリ インスタンスを一意に識別して追跡できます。サーバーサイド コードは、Instance ID Cloud Service を介して、Instance ID が本物であり、サーバーに登録された元のアプリと同じ ID であることを確認できます。プライバシー保護のため、アプリは Instance ID を削除して、データベース内の履歴に関連付けられないようにすることができます。次回アプリが Instance ID を呼び出すと、以前の ID とは関係のないまったく新しい Instance ID が取得されます。
Instance ID のライフサイクル
- アプリがオンラインになると、Instance ID サービスは
InstanceIDを発行します。InstanceIDは、秘密鍵がローカル デバイスに保存され、公開鍵が Instance ID サービスに登録された公開鍵/秘密鍵ペアによってバックアップされます。 - アプリは、
getID()メソッドを使用して、必要に応じて新しいInstanceIDをリクエストできます。アプリをサポートするサーバーがある場合は、そのサーバーに保存できます。 - アプリは、
getToken()メソッドを使用して、必要に応じて Instance ID サービスからトークンをリクエストできます。InstanceIDと同様に、アプリは独自のサーバーにトークンを保存することもできます。アプリに発行されたすべてのトークンは、アプリのInstanceIDに属します。 - トークンは一意で安全ですが、セキュリティ上の問題が発生した場合や、デバイスの復元中にユーザーがアプリをアンインストールして再インストールした場合に、アプリまたは Instance ID サービスでトークンの更新が必要になることがあります。アプリは、Instance ID サービスからのトークン更新リクエストに応答するリスナーを実装する必要があります。
クライアントの実装
Instance ID は Android と iOS の両方で実行されます。それぞれ、クライアント アプリに 適切なライブラリを含める必要があります。Android には Google Play 開発者サービスが必要です。トークンを生成する場合は、 Google Developers Consoleで生成されたプロジェクト ID が必要になります。