Google I/O 2022 で発表された Firebase の最新情報をご覧ください。詳細

Flutter アプリで App Check の使用を開始する

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

このページでは、Flutter アプリで App Check を有効にする方法について説明します。デフォルト プロバイダは Android の SafetyNet、Apple プラットフォームの Device Check、Web の reCAPTCHA v3 です。 App Check を有効にすると、アプリのみがプロジェクトの Firebase リソースにアクセスできるようになります。この機能の概要を参照してください。

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

  1. FlutterFire をまだインストールしていない場合は、インストールして初期化します。

  2. 構築するプラットフォームごとに、App Check を使用するアプリを SafetyNet (Android)、Device Check (Apple)、および reCAPTCHA v3 (Web) プロバイダーに登録します。これは、Firebase コンソールの[プロジェクト設定] > [アプリ チェック]セクションで行うことができます。

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

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

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

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

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

  1. Flutter プロジェクトのルートから、次のコマンドを実行してプラグインをインストールします。

    flutter pub add firebase_app_check
    
  2. 完了したら、Flutter アプリケーションを再構築します。

    flutter run
    

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

Storage などの Firebase サービスを使用する前に、ただしFirebase.initializeApp()を呼び出した後に実行されるように、次の初期化コードをアプリに追加します。

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';

// Import the firebase_app_check plugin
import 'package:firebase_app_check/firebase_app_check.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate(
    webRecaptchaSiteKey: 'recaptcha-v3-site-key',  // If you're building a web app.
  );
  runApp(App());
}

次のステップ

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 デバッグ プロバイダーを使用するアプリのデバッグ ビルドを作成します。

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