Android で SafetyNet を使用して App Check を使ってみる

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

独自のカスタム プロバイダで App Check を使用する場合は、App Check カスタム プロバイダを実装するをご覧ください。

1. Firebase プロジェクトを設定する

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

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

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

  3. 省略可: アプリの登録設定で、プロバイダが発行する App Check トークンにカスタム有効期間(TTL)を設定します。TTL は 30 分から 7 日までの任意の値に設定できます。この値を変更する場合は、次のトレードオフに注意してください。

    • セキュリティ: TTL が短いほど、漏えいしたトークンや傍受されたトークンが攻撃者によって悪用される可能性が低減するため、セキュリティが向上します。
    • パフォーマンス: TTL が短いほど、アプリで証明書の取得が頻繁に行われます。アプリで証明書が取得されるたびにネットワーク リクエストのレイテンシが増加するため、TTL が短いと、アプリのパフォーマンスに影響する可能性があります。
    • 割り当てとコスト: TTL を短くすると、証明書の取得が頻繁に発生し、割り当てが早く消費されます。有料サービスの場合は、費用が増加する可能性があります。割り当てと上限をご覧ください。

    通常は、デフォルトの TTL(1 時間)で十分です。App Check ライブラリは TTL の約半分でトークンを更新します。

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

モジュール(アプリレベル)の Gradle ファイル(通常は app/build.gradle)で、Android 用 App Check ライブラリの依存関係を宣言します。

dependencies {
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.1.2'
}

3. App Check を初期化する

他の Firebase SDK を使用する前に、以下の初期化コードをアプリに追加します。

Kotlin+KTX

Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
    SafetyNetAppCheckProviderFactory.getInstance()
)

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        SafetyNetAppCheckProviderFactory.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 を使用するをご覧ください。