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