このページでは、Play Integrity API を使用するようにアプリまたはゲームをセットアップする方法について説明します。具体的には、API からのレスポンスを有効にして、API をアプリに統合する必要があります。
また、レスポンスの暗号化管理方法を設定し、API がアプリに送信する一連のレスポンスを管理することもできます。
前提条件
Play Integrity API をアプリに統合するには、開発環境に応じて次のいずれかをインストールしてください。
- Kotlin または Java プログラミング言語を使用しているアプリの場合は、Google の Maven リポジトリ から Play Integrity API 用の最新の利用可能な Android ライブラリをインストールしてください。詳しくは、リリースノートをご覧ください。
- Unity ゲームの場合は、Google Play の Unity 向けプラグイン 1.7.0 以降をインストールしてください。2019.x、2020.x 以降のすべてのバージョンがサポートされています。Unity 2018.x を使用している場合は、バージョン 2018.4 以降をインストールしてください。Unity 2017.x を使用している場合は、バージョン 2017.4.40 以降をインストールしてください。Unity 5.x 以前のバージョンはサポートされていません。
- ネイティブのアプリとゲームの場合は、Play Core Native SDK 1.11.0 以降をインストールしてください。
Play Integrity レスポンスを有効にする
Play Integrity API を使用するには、アプリを Google Cloud プロジェクトにリンクすることにより、Play Integrity API のレスポンスを有効にする必要があります。レスポンスを有効にしたら、手順に沿って API をアプリに統合します。
Google Play のアプリ
Google Play Console で、左側のメニューの [リリース] に移動します。[設定] > [アプリの完全性] に移動します。[Integrity API] タブを選択して開始します。
Google Play 以外で独占配信されているアプリ
Google Play Console を使用せずに、アプリに対して Play Integrity API レスポンスを有効にすることができます。手順は次のとおりです。
- Google Cloud Console で、既存のプロジェクトを選択するか新しいプロジェクトを作成します。
- [API とサービス] に移動し、[API とサービスの有効化] を選択します。
- 「Play Integrity API」を検索して選択し、[有効にする] を選択します。
API が有効になったら、Play Integrity API をアプリに統合することができます。
Play Integrity API を使用する SDK
SDK で Play Integrity API を使用するには、次の条件を満たす必要があります。
- SDK を Google Cloud プロジェクトにリンクし、Play Integrity API を有効にする必要があります。
- Integrity API レスポンスを受け取って復号するには、リクエストに Cloud プロジェクト番号を含める必要があります。この番号は、Google Cloud Console の [プロジェクト情報] で確認できます。
- API を呼び出すリクエスト元のアプリで、アプリに対して Play Integrity API を有効にする必要があります。Google Play で公開されているアプリが SDK を使用している場合、Play Integrity API へのリクエストは、自動的にアプリの API 使用量にカウントされます。
Google Cloud Console でプロジェクトを選択したら、[API とサービス] に移動し、[API とサービスの有効化] を選択します。「Play Integrity API」を検索して選択し、[有効にする] を選択します。API が有効になったら、SDK で使用できるよう手順に沿って Play Integrity API をアプリに統合することができます。
レスポンスの暗号化方法と復号方法を設定する(省略可)
Play Integrity API を操作するときにアプリで使用するレスポンスの暗号化は、デフォルトでは Google Play のサーバーが管理します。このデフォルトの方法を使用することをおすすめしますが、ご自身でレスポンスの暗号鍵を管理、ダウンロードすることもできます。
レスポンスの暗号化を Google に任せる(デフォルト / 推奨)
アプリのセキュリティを保護するため、レスポンスの暗号鍵の生成と管理を Google で行えるようにすることをおすすめします。バックエンド サーバーが Google Play のサーバーを呼び出してレスポンスを復号します。
レスポンスの暗号鍵を自分で管理、ダウンロードする
独自の安全なサーバー環境内で、完全性判定の結果をローカルで復号する場合は、ご自身でレスポンスの暗号鍵を管理、ダウンロードできます。
受け取ったトークンをクライアント アプリ内で復号または検証しないでください。復号鍵は決してクライアント アプリに公開しないでください。レスポンスの暗号鍵の管理とダウンロードを行うには、Google Play Console を使用していることと、アプリが Google Play で公開されていることが必要です。
レスポンスの暗号鍵の Google 管理とセルフマネージドを切り替える
現在、Google がレスポンスの暗号化を管理している場合に、レスポンスの暗号鍵をご自身で管理、ダウンロードする方法に切り替えるには、次の手順を行います。
- Google Play Console にログインします。
- Play Integrity API を使用しているアプリを選択します。
- 左側のメニューの [リリース] セクションで、[設定] > [アプリの完全性] に移動します。
- [Integrity API] タブに移動します。
- ページの [設定] セクションで、[レスポンスの暗号鍵] の横にある [変更] をクリックします。
- 表示されたウィンドウで、[レスポンスの暗号鍵を自分で管理、ダウンロードする] をクリックします。
- 手順に沿って公開鍵をアップロードします。
- アップロードが正常に完了したことがウィンドウに表示されたら、[保存] をクリックします。これにより、暗号化された鍵が自動的にダウンロードされます。
- 独自の安全なサーバー環境で、レスポンスの暗号鍵を使用してローカルで完全性トークンの復号と検証を行うように、サーバーのロジックを変更します。
- (省略可)レスポンスの暗号鍵をご自身で管理する場合も、アプリは Google Play のサーバーにフォールバックしてレスポンスの復号と検証を行えます。
レスポンスの暗号鍵をご自身で管理している場合に、Google にレスポンスの暗号化の管理を任せる方法に切り替えるには、次の手順を行います。
- Google のサーバーのみで復号と検証を行うように、サーバーのロジックを変更します。
- Google Play Console にログインします。
- Play Integrity API を使用しているアプリを選択します。
- 左側のメニューの [リリース] セクションで、[設定] > [アプリの完全性] に移動します。
- [Integrity API] タブに移動します。
- ページの [設定] セクションで、[レスポンスの暗号鍵] の横にある [変更] をクリックします。
- 表示されたウィンドウで、[レスポンスの暗号化の管理を Google に任せる(推奨)] をクリックします。
- [変更を保存] をクリックします。
Google Play Console でレスポンスの暗号化管理方法を変更する前に、Google Play のサーバーで完全性トークンの複合と検証が行われるようサーバーが正しく設定されていることをご確認ください。
API レスポンスを設定する(省略可)
Play Integrity API は、完全性判定の結果で次の主要なシグナルを提供します。
- アプリの完全性
- アカウントの詳細
- デバイスの完全性
アプリが受け取るデバイスの完全性レスポンスのセットは編集できます。複数のラベルを受け取るようオプトインすることで、さまざまな信頼度に応じたデバイスへの対応戦略を実装できます。これを行うには、Google Play Console の手順に沿って操作します。このオプションは、Google Play で公開するアプリでのみ利用できます。
Play Core をアプリに統合する
Play Integrity API をアプリに統合するには、以下のセクションのいずれかに記載されているプラットフォーム固有の手順を実施します。
Kotlin または Java
ローカル Maven リポジトリを使用している場合は、次の依存関係をアプリの build.gradle
ファイルに追加します。
implementation 'com.google.android.play:integrity:1.1.0'
Unity
Unity 用の Google パッケージをインストールするをご覧ください。
ネイティブ
Play Core Native の開発環境セットアップ ガイドをご覧ください。