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

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


В этой статье рассказывается, как настроить App Check в приложении для платформ Apple с помощью поставщика reCAPTCHA Enterprise. App Check помогает обеспечить доступ к внутренним ресурсам проекта только для вашего приложения. Подробнее о App Check…

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

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

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

  1. Если вы ещё этого не сделали, добавьте Firebase в проект Apple.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  6. Необязательно. Задайте расширенные настройки.

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

(Необязательно) Задайте расширенные настройки

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

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

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

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

2. Добавьте в приложение App Check SDK

Для установки зависимостей Firebase и управления ими используйте Swift Package Manager (SPM). Если вы уже используете Firebase, убедитесь, что у вас установлена версия 12.17.0 или более поздняя.

  1. Откройте проект приложения в Xcode.

  2. Добавьте библиотеку Firebase:

    1. Перейдите в меню File (Файл) > Add Packages (Добавить пакеты).

    2. Когда появится запрос, добавьте хранилище Firebase SDK для платформ Apple:

      https://github.com/firebase/firebase-ios-sdk
      
    3. Выберите последнюю версию SDK (12.17.0 или более позднюю).

    4. Выберите библиотеку FirebaseAppCheck.

    5. Нажмите Добавить пакет. Xcode распознает и скачает зависимости.

    6. Когда появится запрос, добавьте библиотеку в целевой объект приложения.

  3. Добавьте библиотеку reCAPTCHA Enterprise:

    1. Вернитесь в меню File (Файл) > Add Packages (Добавить пакеты).

    2. Когда появится запрос, добавьте хранилище reCAPTCHA Enterprise SDK:

      https://github.com/GoogleCloudPlatform/recaptcha-enterprise-mobile-sdk
      
    3. Выберите библиотеку RecaptchaEnterprise.

    4. Нажмите Добавить пакет. При появлении запроса добавьте библиотеку в целевой объект приложения.

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

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

Создайте экземпляр RecaptchaProviderFactory, передав ключ reCAPTCHA, а затем настройте App Check для его использования:

let providerFactory = RecaptchaProviderFactory(siteKey: "SITE_KEY")
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

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

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

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

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

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

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

Включить меры App Check

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

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

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

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

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

Цены

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

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