На этой странице показано, как включить App Check в приложении Flutter, используя поставщиков по умолчанию: Play Integrity на Android, Device Check на платформах Apple и reCAPTCHA v3 в сети. Когда вы включаете App Check, вы помогаете гарантировать, что только ваше приложение может получить доступ к ресурсам Firebase вашего проекта. См. Обзор этой функции.
1. Настройте свой проект Firebase
Установите и инициализируйте FlutterFire, если вы еще этого не сделали.
Зарегистрируйте свои приложения для использования проверки приложений с помощью поставщиков Play Integrity, Device Check и reCAPTCHA в разделе «Настройки проекта» > «Проверка приложений» консоли Firebase.
Обычно вам необходимо зарегистрировать все приложения вашего проекта, поскольку после включения принудительного применения для продукта Firebase только зарегистрированные приложения смогут получить доступ к внутренним ресурсам продукта.
Необязательно : в настройках регистрации приложения установите пользовательское время жизни (TTL) для токенов App Check, выпущенных поставщиком. Вы можете установить TTL на любое значение от 30 минут до 7 дней. При изменении этого значения помните о следующих компромиссах:
- Безопасность: Более короткие значения TTL обеспечивают более высокую безопасность, поскольку сокращают период времени, в течение которого злоумышленник может злоупотребить утечкой или перехватом токена.
- Производительность: Более короткие TTL означают, что ваше приложение будет выполнять аттестацию чаще. Поскольку процесс аттестации приложения добавляет задержку к сетевым запросам каждый раз, когда он выполняется, короткий TTL может повлиять на производительность вашего приложения.
- Квота и стоимость: Более короткие TTL и частая повторная аттестация быстрее исчерпывают вашу квоту, а для платных услуг, возможно, стоят дороже. См. Квоты и ограничения .
Значение TTL по умолчанию является разумным для большинства приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину продолжительности TTL.
2. Добавьте библиотеку App Check в свое приложение.
Из корня вашего проекта Flutter выполните следующую команду для установки плагина:
flutter pub add firebase_app_check
После завершения перестройте приложение Flutter:
flutter run
3. Инициализация проверки приложения
Добавьте следующий код инициализации в свое приложение, чтобы оно запускалось до использования любых служб Firebase, таких как Storage, но после вызова 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(
// You can also use a `ReCaptchaEnterpriseProvider` provider instance as an
// argument for `webProvider`
webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
// Default provider for Android is the Play Integrity provider. You can use the "AndroidProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Safety Net provider
// 3. Play Integrity provider
androidProvider: AndroidProvider.debug,
// Default provider for iOS/macOS is the Device Check provider. You can use the "AppleProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Device Check provider
// 3. App Attest provider
// 4. App Attest provider with fallback to Device Check provider (App Attest provider is only available on iOS 14.0+, macOS 14.0+)
appleProvider: AppleProvider.appAttest,
);
runApp(App());
}
Следующие шаги
После установки библиотеки App Check в ваше приложение начните распространять обновленное приложение среди пользователей.
Обновленное клиентское приложение начнет отправлять токены проверки приложений вместе с каждым запросом, который оно делает в Firebase, но продукты Firebase не будут требовать, чтобы токены были действительными, пока вы не включите принудительное применение в разделе проверки приложений в консоли Firebase.
Мониторинг показателей и обеспечение соблюдения
Однако перед включением принудительного применения следует убедиться, что это не помешает вашим существующим законным пользователям. С другой стороны, если вы видите подозрительное использование ресурсов вашего приложения, вы можете включить принудительное применение раньше.
Чтобы принять решение, вы можете изучить показатели App Check для используемых вами сервисов:
- Отслеживайте метрики запросов App Check для Realtime Database, Cloud Firestore, Cloud Storage и аутентификации.
- Отслеживайте метрики запросов App Check для облачных функций .
Включить принудительное выполнение проверки приложений
Когда вы поймете, как проверка приложений повлияет на ваших пользователей, и будете готовы продолжить, вы можете включить принудительное выполнение проверки приложений:
- Включите принудительное выполнение проверки приложений для базы данных в реальном времени, Cloud Firestore, облачного хранилища и аутентификации.
- Включите принудительное выполнение проверки приложений для облачных функций .
Используйте App Check в отладочных средах
Если после регистрации приложения для App Check вы хотите запустить его в среде, которую App Check обычно не классифицирует как допустимую, например, в эмуляторе во время разработки или в среде непрерывной интеграции (CI), вы можете создать отладочную сборку своего приложения, которая использует поставщик отладки App Check вместо настоящего поставщика подтверждения подлинности.
См. раздел Использование проверки приложений с поставщиком отладки в приложениях Flutter .