Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

Android で Play Integrity を使用した App Check の使用を開始する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このページでは、組み込みの Play Integrity プロバイダーを使用して、Android アプリで App Check を有効にする方法について説明します。 App Check を有効にすると、アプリのみがプロジェクトの Firebase リソースにアクセスできるようになります。この機能の概要を参照してください。

現在、組み込みの Play Integrity プロバイダーは、Google Play が配布する Android アプリのみをサポートしています。 Play Integrity のオフプレイ機能を使用するか、独自のカスタム プロバイダーで App Check を使用するには、カスタム App Check プロバイダーを実装するを参照してください。

1. Firebase プロジェクトをセットアップする

  1. まだ行っていない場合は、Firebase を Android プロジェクトに追加します

  2. Play Integrity API を有効にします。

    1. Google Play Consoleでアプリを選択するか、まだ追加していない場合は追加します。

    2. [リリース] セクションで、[設定] > [アプリの整合性] をクリックします。

    3. Integrity APIページで [ Link project ] をクリックし、Google Cloud プロジェクトのリストから Firebase プロジェクトを選択します。

      ここで選択するプロジェクトは、アプリを登録するプロジェクトと同じ Firebase プロジェクトである必要があります (次の手順を参照してください)。

  3. Firebase コンソールのApp Checkセクションで、App Check を使用するアプリを Play Integrity プロバイダに登録します。アプリの署名証明書の SHA-256 フィンガープリントを提供する必要があります。

    通常、プロジェクトのすべてのアプリを登録する必要があります。これは、Firebase プロダクトの適用を有効にすると、登録されたアプリのみがプロダクトのバックエンド リソースにアクセスできるようになるためです。

  4. オプション: アプリの登録設定で、プロバイダーによって発行された App Check トークンのカスタム Time-to-Live (TTL) を設定します。 TTL は 30 分から 7 日間の任意の値に設定できます。この値を変更するときは、次のトレードオフに注意してください。

    • セキュリティ: TTL を短くすると、漏洩または傍受されたトークンが攻撃者によって悪用される可能性があるウィンドウが減少するため、セキュリティが強化されます。
    • パフォーマンス: TTL が短いほど、アプリはより頻繁に構成証明を実行します。アプリの構成証明プロセスは、実行されるたびにネットワーク リクエストに待機時間を追加するため、短い TTL はアプリのパフォーマンスに影響を与える可能性があります。
    • クォータとコスト: TTL を短くし、再認証を頻繁に行うと、クォータがより早く枯渇します。また、有料サービスの場合は、より多くのコストがかかる可能性があります。割り当てと制限を参照してください。

    デフォルトの TTL である1 時間は、ほとんどのアプリにとって妥当です。 App Check ライブラリは、TTL 期間の約半分でトークンを更新することに注意してください。

2. App Check ライブラリをアプリに追加する

モジュール (アプリ レベル) の Gradle ファイル(通常は<project>/<app-module>/build.gradle ) で、App Check Android ライブラリの依存関係を追加します。ライブラリのバージョン管理には、 Firebase Android BoMを使用することをお勧めします。

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.0')

    // Add the dependency for the App Check library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity'
}

Firebase Android BoMを使用すると、アプリは常に互換性のあるバージョンの Firebase Android ライブラリを使用します。

(代替) BoM を使用せずに Firebase ライブラリの依存関係を追加する

Firebase BoM を使用しないことを選択した場合は、依存関係の行で各 Firebase ライブラリ バージョンを指定する必要があります。

アプリで複数のFirebase ライブラリを使用する場合は、BoM を使用してライブラリ バージョンを管理することを強くお勧めします。これにより、すべてのバージョンに互換性が確保されます。

dependencies {
    // Add the dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.1.0'
}

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.0')

    // Add the dependency for the App Check library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity'
}

Firebase Android BoMを使用すると、アプリは常に互換性のあるバージョンの Firebase Android ライブラリを使用します。

(代替) BoM を使用せずに Firebase ライブラリの依存関係を追加する

Firebase BoM を使用しないことを選択した場合は、依存関係の行で各 Firebase ライブラリ バージョンを指定する必要があります。

アプリで複数のFirebase ライブラリを使用する場合は、BoM を使用してライブラリ バージョンを管理することを強くお勧めします。これにより、すべてのバージョンに互換性が確保されます。

dependencies {
    // Add the dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.1.0'
}

3.アプリチェックの初期化

次の初期化コードをアプリに追加して、他の Firebase SDK を使用する前にアプリが実行されるようにします。

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance());

Kotlin+KTX

FirebaseApp.initializeApp(/*context=*/this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
    PlayIntegrityAppCheckProviderFactory.getInstance()
)

次のステップ

App Check ライブラリがアプリにインストールされたら、更新されたアプリのユーザーへの配布を開始します。

更新されたクライアント アプリは、Firebase へのすべてのリクエストとともに App Check トークンの送信を開始しますが、Firebase コンソールの App Check セクションで適用を有効にするまで、Firebase 製品ではトークンが有効である必要はありません。

メトリックを監視し、適用を有効にする

ただし、強制を有効にする前に、それによって既存の正当なユーザーが混乱しないことを確認する必要があります。一方、アプリ リソースの不審な使用が見られる場合は、すぐに適用を有効にすることをお勧めします。

この決定を行うために、使用しているサービスの App Check 指標を確認できます。

App Check の実施を有効にする

App Check がユーザーにどのように影響するかを理解し、続行する準備ができたら、App Check の適用を有効にできます。

デバッグ環境で App Check を使用する

アプリを App Check に登録した後、開発中のエミュレーターや継続的インテグレーション (CI) 環境など、App Check が通常は有効と分類しない環境でアプリを実行する場合は、次のことができます。実際の構成証明プロバイダーの代わりに App Check デバッグ プロバイダーを使用するアプリのデバッグ ビルドを作成します。

Android のデバッグ プロバイダで App Check を使用する を参照してください。