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

Используйте App Check для защиты вашего ключа API

Firebase App Check обеспечивает защиту вызовов из вашего приложения к платформе Google Карт, блокируя трафик, поступающий из источников, отличных от легитимных приложений. Это достигается путем проверки наличия токена от поставщика аттестации, например, Play Integrity . Интеграция приложений с App Check помогает защититься от вредоносных запросов, поэтому с вас не взимается плата за несанкционированные вызовы API.

Подходит ли мне App Check?

В большинстве случаев рекомендуется использовать проверку приложений, однако в следующих случаях проверка приложений не требуется или не поддерживается:

  • Вы используете оригинальный Places SDK. Проверка приложений поддерживается только для Places SDK (новый) .
  • Частные или экспериментальные приложения. Если ваше приложение не находится в открытом доступе, проверка приложений не требуется.
  • Если ваше приложение используется только для взаимодействия сервер-сервер, App Check не требуется. Однако, если сервер, взаимодействующий с GMP, используется публичными клиентами (например, мобильными приложениями), рассмотрите возможность использования App Check для защиты этого сервера вместо GMP.
  • Рекомендованные App Check поставщики аттестации не будут работать на устройствах, которые ваш поставщик аттестации считает скомпрометированными или ненадёжными. Если вам требуется поддержка таких устройств, вы можете развернуть собственную службу аттестации. Подробнее см. в инструкциях .

Обзор этапов внедрения

На самом деле, для интеграции вашего приложения с App Check вам необходимо выполнить следующие шаги:

  1. Добавьте Firebase в свое приложение.
  2. Добавьте и инициализируйте библиотеку App Check.
  3. Добавьте поставщика токенов.
  4. Включить отладку.
  5. Контролируйте запросы приложений и принимайте решения о применении мер пресечения.

После интеграции с App Check вы сможете просматривать метрики бэкэнд-трафика в консоли Firebase. Эти метрики позволяют разбить запросы по наличию или отсутствию действительного токена App Check. Подробнее см. в документации Firebase App Check .

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

Соображения при планировании интеграции App Check

Вот некоторые моменты, которые следует учитывать при планировании интеграции:

  • Рекомендуемый нами поставщик аттестации, Play Integrity , устанавливает дневной лимит вызовов для уровня использования стандартного API. Подробнее об ограничениях вызовов см. на странице «Настройка» в документации разработчика Google Play Integrity.

    Вы также можете использовать собственный поставщик аттестации, хотя это уже более сложный вариант. Подробнее см. в статье «Реализация собственного поставщика проверки приложений» .

  • Пользователи вашего приложения будут испытывать некоторую задержку при запуске. Однако впоследствии периодическая повторная аттестация будет выполняться в фоновом режиме, и пользователи больше не будут испытывать задержку. Точная величина задержки при запуске зависит от выбранного вами поставщика аттестации.

    Срок действия токена App Check ( время жизни , или TTL) определяет частоту повторных аттестаций. Эту продолжительность можно настроить в консоли Firebase. Повторная аттестация выполняется по истечении примерно половины срока TTL. Подробнее см. в документации Firebase для вашего поставщика аттестации.

Интегрируйте свое приложение с App Check

Предпосылки и требования

  • Приложение с интегрированным Places SDK версии 4.1 или более поздней.
  • Отпечаток SHA-256 для вашего приложения.
  • Имя пакета вашего приложения.
  • Вы должны быть владельцем приложения в Cloud Console.
  • Вам понадобится идентификатор проекта приложения из Cloud Console.

Шаг 1: Добавьте Firebase в свое приложение

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

Шаг 2: Добавьте библиотеку App Check и инициализируйте App Check.

Информацию об использовании Play Integrity, поставщика подтверждения по умолчанию, см. в разделе Начало работы с проверкой приложений с помощью Play Integrity на Android .

  1. Если вы еще этого не сделали, интегрируйте Places SDK в свое приложение .
  2. Затем инициализируйте App Check и клиент Places .

    // Initialize App Check
    FirebaseApp.initializeApp(/* context= */ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            PlayIntegrityAppCheckProviderFactory.getInstance());
      
    // Initialize Places SDK
    Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
    PlacesClient client = Places.createClient(context);.

Шаг 3: Добавьте поставщика токенов

После инициализации API Places вызовите setPlacesAppCheckTokenProvider() чтобы установить PlacesAppCheckTokenProvider .

Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
Places.setPlacesAppCheckTokenProvider(new TokenProvider());
PlacesClient client = Places.createClient(context);.

Вот пример реализации интерфейса сборщика токенов:

  /** Sample client implementation of App Check token fetcher interface. */
  static class TokenProvider implements PlacesAppCheckTokenProvider {
    @Override
    public ListenableFuture<String> fetchAppCheckToken() {
      SettableFuture<String> future = SettableFuture.create();
      FirebaseAppCheck.getInstance()
          .getAppCheckToken(false)
          .addOnSuccessListener(
              appCheckToken -> {
                future.set(appCheckToken.getToken());
              })
          .addOnFailureListener(
              ex -> {
                future.setException(ex);
              });

      return future;
    }
  }

Шаг 4: Включите отладку (необязательно)

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

Чтобы запустить приложение в эмуляторе или на тестовом устройстве:

  • Добавьте библиотеку App Check в файл build.gradle .
  • Настройте App Check для использования фабрики поставщиков отладки в вашей отладочной сборке.
  • Запустите приложение, которое создаст локальный токен отладки. Добавьте этот токен в консоль Firebase.
  • Дополнительную информацию и инструкции см. в документации App Check .

Чтобы запустить приложение в среде непрерывной интеграции:

  • Создайте токен отладки в консоли Firebase и добавьте его в защищенное хранилище ключей вашей системы CI.
  • Добавьте библиотеку App Check в файл build.gradle .
  • Настройте вариант сборки CI для использования отладочного токена.
  • Оберните код в тестовых классах, для которого требуется токен App Check, с помощью DebugAppCheckTestHelper .
  • Дополнительную информацию и инструкции см. в документации App Check .

Шаг 5: Отслеживайте запросы приложений и принимайте решение о применении мер принудительного характера

Прежде чем начать принудительное применение, убедитесь, что это не будет мешать легальным пользователям вашего приложения. Для этого откройте экран показателей проверки приложений, чтобы узнать, какой процент трафика вашего приложения проверен, устарел или является нелегитимным. Как только вы увидите, что большая часть трафика проверена, вы можете включить принудительное применение.

Дополнительную информацию и инструкции см. в документации по Firebase App Check .