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

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

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

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

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

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

Обзор этапов реализации

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

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

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

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

Что следует учитывать при планировании интеграции с App Check

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

  • Один из рекомендуемых нами поставщиков услуг аттестации, reCAPTCHA Enterprise, взимает плату за более чем 10 000 проверок в месяц.

    Другой рекомендуемый нами поставщик аттестации, reCAPTCHA v3, имеет квоту, после превышения которой трафик не будет оцениваться.

    Вы можете использовать собственный поставщик аттестации, хотя это более сложный вариант использования. Дополнительную информацию см. в документации App Check .

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

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

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

Предварительные условия и требования

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

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

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

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

Шаг 3: Загрузка библиотек Maps JS API

  1. Загрузите основную библиотеку и библиотеку Maps, как показано в следующем фрагменте кода. Для получения дополнительной информации и инструкций см. документацию по JavaScript API библиотеки Maps .

    async function init() {
      const {Settings} = await google.maps.importLibrary('core');
      const {Map} = await google.maps.importLibrary('maps');
    }  

Шаг 4: Инициализация API карт и проверки приложений.

  1. Инициализируйте проверку приложения, используя конфигурацию, предоставленную консолью Firebase.
  2. Убедитесь, что запросы к API Maps JS сопровождаются токенами App Check:
      import {initializeApp} from 'firebase/app';
      import {
        getToken,
        initializeAppCheck,
        ReCaptchaEnterpriseProvider,
      } from 'firebase/app-check';
        
      async function init() {
        const {Settings} = await google.maps.importLibrary('core');
        const {Map} = await google.maps.importLibrary('maps');
      
        const app = initializeApp({
          // Your firebase configuration object
        });
      
        // Pass your reCAPTCHA Enterprise site key to initializeAppCheck().
        const appCheck = initializeAppCheck(app, {
          provider: new ReCaptchaEnterpriseProvider(
            'abcdefghijklmnopqrstuvwxy-1234567890abcd',
          ),
      
          // Optional argument. If true, the SDK automatically refreshes App Check
          // tokens as needed.
          isTokenAutoRefreshEnabled: true,
        });
      
        Settings.getInstance().fetchAppCheckToken = () =>
            getToken(appCheck, /* forceRefresh = */ false);
      
        // Load a map
        map = new Map(document.getElementById("map"), {
          center: { lat: 37.4161493, lng: -122.0812166 },
          zoom: 8,
        });
      }  
      

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

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

Для локального тестирования вашего приложения:

  • Активируйте отладочный провайдер для целей разработки.
  • Вы получите автоматически сгенерированный случайный UUID4 (называемый в документации App Check отладочным токеном) из журналов отладки SDK. Добавьте этот токен в консоль Firebase.
  • Для получения дополнительной информации и инструкций см. документацию по проверке приложений .

Для запуска вашего приложения в среде непрерывной интеграции (CI):

  • Сгенерируйте случайный UUID4 в консоли Firebase.
  • Добавьте UUID4 в качестве отладочного токена, а затем скопируйте его в хранилище секретов, к которому CI-тесты будут обращаться при каждом запуске теста.
  • Для получения дополнительной информации и инструкций см. документацию по проверке приложений .

Шаг 6: Отслеживайте запросы вашего приложения и принимайте решения о применении мер принуждения.

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

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