このページでは、組み込みの SafetyNet プロバイダーを使用して、Android アプリで App Check を有効にする方法を示します。 App Check を有効にすると、アプリのみがプロジェクトの Firebase リソースにアクセスできるようになります。この機能の概要を参照してください。
独自のカスタム プロバイダーで App Check を使用する場合は、「カスタム App Check プロバイダーを実装する」を参照してください。
1. Firebase プロジェクトをセットアップする
まだ行っていない場合は、Firebase を Android プロジェクトに追加します。
Firebase コンソールのApp Checkセクションで、App Check を使用するアプリを SafetyNet プロバイダに登録します。アプリの署名証明書の SHA-256 フィンガープリントを提供する必要があります。
通常、プロジェクトのすべてのアプリを登録する必要があります。これは、Firebase プロダクトの適用を有効にすると、登録されたアプリのみがプロダクトのバックエンド リソースにアクセスできるようになるためです。
オプション: アプリの登録設定で、プロバイダーによって発行された App Check トークンのカスタム Time-to-Live (TTL) を設定します。 TTL は 30 分から 7 日間の任意の値に設定できます。この値を変更するときは、次のトレードオフに注意してください。
- セキュリティ: TTL を短くすると、漏洩または傍受されたトークンが攻撃者によって悪用される可能性があるウィンドウが減少するため、セキュリティが強化されます。
- パフォーマンス: TTL が短いほど、アプリはより頻繁に構成証明を実行します。アプリの構成証明プロセスは、実行されるたびにネットワーク リクエストに待機時間を追加するため、短い TTL はアプリのパフォーマンスに影響を与える可能性があります。
- クォータとコスト: TTL を短くし、再認証を頻繁に行うと、クォータがより早く枯渇します。また、有料サービスの場合は、より多くのコストがかかる可能性があります。割り当てと制限を参照してください。
デフォルトの TTL である1 時間は、ほとんどのアプリにとって妥当です。 App Check ライブラリは、TTL 期間の約半分でトークンを更新することに注意してください。
2. App Check ライブラリをアプリに追加する
モジュール (アプリ レベル) の Gradle ファイル (通常はapp/build.gradle
) で、App Check Android ライブラリの依存関係を宣言します。
Kotlin+KTX
dependencies {
implementation 'com.google.firebase:firebase-appcheck-safetynet:16.1.1'
}
Java
dependencies {
implementation 'com.google.firebase:firebase-appcheck-safetynet:16.1.1'
}
3.アプリチェックの初期化
次の初期化コードをアプリに追加して、他の Firebase SDK を使用する前にアプリが実行されるようにします。
Kotlin+KTX
FirebaseApp.initializeApp(/*context=*/this) val firebaseAppCheck = FirebaseAppCheck.getInstance() firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance() )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance());
次のステップ
App Check ライブラリがアプリにインストールされたら、更新されたアプリのユーザーへの配布を開始します。
更新されたクライアント アプリは、Firebase へのすべてのリクエストとともに App Check トークンの送信を開始しますが、Firebase コンソールの App Check セクションで適用を有効にするまで、Firebase 製品ではトークンが有効である必要はありません。
メトリックを監視し、適用を有効にする
ただし、強制を有効にする前に、それによって既存の正当なユーザーが混乱しないことを確認する必要があります。一方、アプリ リソースの不審な使用が見られる場合は、すぐに適用を有効にすることをお勧めします。
この決定を行うために、使用しているサービスの App Check 指標を確認できます。
- Realtime Database、Cloud Firestore、Cloud Storage のApp Check リクエスト メトリックを監視します。
- Cloud Functions の App Check リクエスト メトリックをモニタリングします。
App Check の実施を有効にする
App Check がユーザーにどのように影響するかを理解し、続行する準備ができたら、App Check の適用を有効にできます。
- Realtime Database、Cloud Firestore、Cloud Storage に対してApp Checkの適用を有効にします。
- Cloud Functions の App Check 適用を有効にします。
デバッグ環境で App Check を使用する
アプリを App Check に登録した後、開発中のエミュレーターや継続的インテグレーション (CI) 環境など、App Check が通常は有効と分類しない環境でアプリを実行する場合は、次のことができます。実際の構成証明プロバイダーの代わりに App Check デバッグ プロバイダーを使用するアプリのデバッグ ビルドを作成します。
Android のデバッグ プロバイダで App Check を使用する を参照してください。