Как начать использовать Проверку приложений с 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. Если появится запрос, включите reCAPTCHA Enterprise API.

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

      iOS+

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

      • Убедитесь, что вы ввели тот же идентификатор пакета, который указали при создании приложения Firebase 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 и частая повторная аттестация быстрее расходуют квоту и могут повысить стоимость платных сервисов. Подробнее о квотах и лимитах…

    Значение 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

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

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 классифицирует некоторые среды как недопустимые, например запросы от эмулятора / симулятора или локального хоста во время разработки или из среды непрерывной интеграции (CI).

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

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

Цены

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

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