Как начать использовать Проверку приложений с reCAPTCHA Enterprise в приложениях Flutter

Выберите платформу: iOS+ Android Веб Flutter


На этой странице рассказывается, как настроить App Check в приложении Flutter с помощью поставщика reCAPTCHA Enterprise. App Check помогает обеспечить доступ к ресурсам серверной части проекта только для вашего приложения. Чтобы узнать больше, ознакомьтесь с обзором App Check.

App Check требует использования ключей на основе оценок reCAPTCHA, которые не видны пользователям. Это означает, что поставщик reCAPTCHA Enterprise не будет требовать от пользователей решения задачи в любое время.

Если вам нужны функции reCAPTCHA Enterprise, которые не реализованы в App Check, или вы хотите использовать App Check со своим поставщиком, ознакомьтесь с разделом Как реализовать собственного поставщика App Check.

1. Как настроить проект Firebase

  1. Если вы ещё этого не сделали, установите и инициализируйте Firebase в проекте Flutter.

  2. В консоли Google Cloud перейдите на страницу Защита от мошенничества и выполните следующие действия для поставщика reCAPTCHA Enterprise:

    1. Убедитесь, что вы находитесь в нужном проекте (выбрать его можно в раскрывающемся списке в верхней части экрана).

    2. Если появится запрос, включите API reCAPTCHA Enterprise.

    3. Создайте ключ на основе целевой платформы:

      iOS+

      Создайте ключ типа iOS и укажите идентификатор пакета приложения (например, com.example.my_app).

      • Убедитесь, что вы указали тот же идентификатор пакета, который использовали при создании приложения Apple в проекте Firebase. В значении идентификатора пакета учитывается регистр.

      • Для тега App Check каждый идентификатор пакета может соответствовать только одному ключу reCAPTCHA.

      Android

      Создайте ключ типа Android и укажите название пакета приложения (например, com.example.my_app).

      • Убедитесь, что вы указали то же название пакета, что и при создании приложения Firebase для Android в проекте Firebase. В значении названия пакета учитывается регистр.

      • Для App Check каждому названию пакета может соответствовать только один reCAPTCHA ключ.

      Веб-приложение

      Создайте ключ типа Веб и укажите все домены для своих веб-приложений.

      • App Check не поддерживает веб-приложения, которые работают более чем в 250 доменах.

      • Никогда не добавляйте localhost в качестве домена к ключу reCAPTCHA, который развернут или будет развернут в рабочей среде.

      • Оставьте флажок "Использовать проверку с помощью флажка" снятым.

      Подробные инструкции приведены в статье Как создать ключи reCAPTCHA на основе оценки.

    4. Запишите каждый ключ. Вам нужно будет добавить их в процесс регистрации в консоли Firebase.

  3. В консоли Firebase выберите Безопасность > Проверка приложений.

  4. На вкладке Приложения зарегистрируйте каждое приложение для целевой платформы, чтобы использовать App Check с поставщиком reCAPTCHA Enterprise. Вам нужно будет указать ключ, полученный в консоли Google Cloud.

  5. Необязательно. Установите время жизни токена (TTL).

    В настройках регистрации приложения задайте собственное время жизни (TTL) для токенов App Check, выпущенных поставщиком. Вы можете задать любое значение TTL в диапазоне от 30 минут до 7 дней. При изменении этого значения учитывайте следующие компромиссы:

    • Безопасность. Чем меньше срок жизни, тем выше уровень безопасности, поскольку злоумышленник не сможет долго использовать украденный или перехваченный токен.
    • Производительность. Чем меньше значение TTL, тем чаще приложение будет выполнять аттестацию. Поскольку процесс подтверждения приложения добавляет задержку к сетевым запросам каждый раз, когда он выполняется, короткий срок жизни может повлиять на производительность приложения.
    • Квота и стоимость. Более короткие значения TTL и частая повторная аттестация быстрее исчерпывают квоту, а для платных сервисов могут привести к дополнительным расходам. Подробнее о квотах и лимитах…

    Для большинства приложений подходит значение TTL по умолчанию – 1 час. Обратите внимание, что библиотека App Check обновляет токены примерно за половину срока жизни.

  6. Необязательно. Настройте дополнительные параметры.

  7. Нажмите Сохранить.

(Необязательно.) Настройте дополнительные параметры

Когда пользователь открывает ваше приложение, reCAPTCHA Enterprise оценивает уровень риска, связанного с взаимодействием пользователя с ключом, и возвращает оценку от 0,0 до 1,0 с шагом 0,1.

  • Оценка 0,0 означает, что взаимодействие представляет высокий риск и может быть мошенническим.
  • Оценка 1,0 означает, что взаимодействие несет низкий риск и, скорее всего, является легитимным.

App Check позволяет настроить пороговое значение риска для приложений, чтобы вы могли задать допустимый уровень риска.

В большинстве случаев рекомендуется использовать пороговое значение по умолчанию – 0, 5. Если вам нужно изменить это значение, вы можете сделать это для каждого приложения в Firebase (Безопасность > App Check). Обязательно разверните и изучите важные сведения о настройке порога риска для приложений ниже.

2. Как добавить плагин App Check в приложение

Чтобы использовать поставщика reCAPTCHA Enterprise, необходимо добавить соответствующий плагин App Check.

  1. Чтобы установить плагин, выполните следующую команду в корневом каталоге проекта Flutter:

    flutter pub add firebase_app_check
    
  2. После этого пересоберите проект Flutter:

    flutter run
    

3. Инициализация App Check

В приложении необходимо инициализировать App Check, прежде чем использовать другие сервисы Firebase.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  await FirebaseAppCheck.instance.activate(
    providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
    providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
    providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
  );
  runApp(App());
}

4. Отслеживание показателей и включение принудительного применения

После того как вы настроите App Check в приложении, начните распространять обновленную версию среди пользователей.

Обновленное клиентское приложение начнет отправлять токены App Check вместе с каждым запросом к Firebase. Однако App Check не будет блокировать запросы с недействительными токенами до тех пор, пока не будет применено правило App Check.

Отслеживание показателей

Прежде чем включить принудительное применение, убедитесь, что это не помешает работе ваших существующих законных пользователей. Однако если вы заметили подозрительное использование ресурсов приложения, то можете включить принудительное применение правил раньше.

Чтобы принять решение, изучите показатели App Check для сервисов, которыми вы пользуетесь:

Как включить принудительное применение App Check

Когда вы поймете, как App Check повлияет на ваших пользователей, и будете готовы к переходу, вы можете включить принудительное применение App Check:

Используйте App Check в среде отладки

App Check классифицирует некоторые среды как недопустимые, например запросы от эмулятора или симулятора, localhost во время разработки или из среды непрерывной интеграции (CI).

Чтобы ваше приложение работало в таких средах после того, как App Check станет обязательным, вам нужно создать отладочную сборку приложения, в которой вместо рабочего поставщика аттестации используется App Check отладочный поставщик.

Подробнее о том, как использовать App Check с поставщиком отладки в приложениях Flutter…

Цены

App Check создает оценку от вашего имени, чтобы проверять токен ответа пользователя каждый раз, когда ваше приложение обновляет токен App Check. За каждое созданное сверх бесплатной квоты исследование с вашего проекта Firebase будет взиматься плата. Подробнее о ценах на reCAPTCHA…

По умолчанию приложение будет обновлять этот токен дважды в час. Чтобы контролировать, как часто приложение обновляет токены App Check (и, следовательно, как часто создаются новые оценки), вы можете настроить время жизни токена.