На этой странице показано, как включить App Check в веб-приложении с помощью поставщика reCAPTCHA Enterprise. Включение App Check гарантирует, что доступ к внутренним ресурсам проекта будет предоставлен только вашему приложению. См. обзор этой функции.
Обратите внимание, что App Check использует ключи сайта на основе оценок reCAPTCHA Enterprise, что делает его невидимым для пользователей. Провайдер reCAPTCHA Enterprise не требует от пользователей решения каких-либо задач.
Если в вашем случае требуются функции reCAPTCHA Enterprise, не реализованные в App Check , или вы хотите использовать App Check с собственным поставщиком, см . раздел Реализация поставщика App Check .
1. Настройте свой проект Firebase
Добавьте Firebase в свой проект JavaScript, если вы еще этого не сделали.
Откройте раздел reCAPTCHA Enterprise в консоли Cloud и выполните следующие действия:
- Если вам будет предложено включить API reCAPTCHA Enterprise, сделайте это.
- Создайте ключ типа «Веб-сайт» . Вам потребуется указать домены, на которых размещено ваше веб-приложение. Оставьте параметр «Использовать проверку по флажку» неактивным .
Зарегистрируйте свои приложения для использования App Check у поставщика reCAPTCHA Enterprise в разделе App Check консоли Firebase . Вам потребуется указать ключ сайта, полученный на предыдущем шаге.
Обычно вам необходимо зарегистрировать все приложения вашего проекта, поскольку после включения принудительного применения для продукта Firebase только зарегистрированные приложения смогут получить доступ к внутренним ресурсам продукта.
Необязательно : в настройках регистрации приложения задайте время жизни (TTL) для токенов App Check выдаваемых поставщиком. Вы можете установить любое значение TTL от 30 минут до 7 дней. При изменении этого значения учитывайте следующие компромиссы:
- Безопасность: Более короткие значения TTL обеспечивают более высокий уровень безопасности, поскольку уменьшают период, в течение которого злоумышленник может злоупотребить утечкой или перехватом токена.
- Производительность: Более короткие TTL означают, что ваше приложение будет чаще выполнять аттестацию. Поскольку процесс аттестации приложения увеличивает задержку сетевых запросов при каждом выполнении, короткий TTL может повлиять на производительность вашего приложения.
- Квота и стоимость: более короткие TTL и частая повторная аттестация быстрее исчерпывают вашу квоту, а платные услуги могут стоить дороже. См. раздел «Квоты и лимиты» .
Значение TTL по умолчанию, равное 1 часу , подходит большинству приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину срока TTL.
Настройте дополнительные параметры (необязательно)
Когда пользователь посещает ваше веб-приложение, reCAPTCHA Enterprise оценивает уровень риска взаимодействия с пользователем и возвращает оценку от 0,0 до 1,0 с шагом 0,1. Оценка 1,0 означает, что взаимодействие представляет низкий уровень риска и, скорее всего, является легитимным, тогда как 0,0 означает, что взаимодействие представляет высокий уровень риска и может быть мошенническим. App Check позволяет настроить пороговое значение риска для приложения , чтобы вы могли корректировать свою толерантность к этому риску.
Для большинства случаев использования рекомендуется пороговое значение по умолчанию — 0,5 . Если ваш случай требует корректировки, это можно сделать в разделе App Check консоли Firebase для каждого из ваших веб-приложений.
Подробности
App Check использует заданный вами порог риска приложения в качестве минимального балла reCAPTCHA Enterprise, необходимого для того, чтобы взаимодействие пользователя было признано легитимным. Все баллы reCAPTCHA Enterprise, значительно меньшие заданного вами порога, будут отклонены. При настройке порога риска приложения учитывайте следующее:
Из 11 возможных уровней оценки reCAPTCHA Enterprise до добавления аккаунта Google Cloud Billing в проект доступны только следующие четыре: 0,1, 0,3, 0,7 и 0,9. В течение этого времени App Check будет допускать только пороговые значения риска приложения 0,1, 0,3, 0,5, 0,7 и 0,9 соответственно. Для большинства случаев по-прежнему рекомендуется пороговое значение риска приложения 0,5.
Чтобы включить все 11 уровней оценки reCAPTCHA Enterprise, добавьте в свой проект аккаунт Google Cloud Billing. Один из способов сделать это — перейти на тарифный план Blaze . После этого App Check позволит вам настроить пороговые значения риска для любого приложения в диапазоне от 0,0 до 1,0 с шагом 0,1.
Чтобы отслеживать распределение высоких и низких оценок reCAPTCHA Enterprise для вашего веб-приложения, посетите страницу reCAPTCHA Enterprise в консоли Google Cloud и выберите ключ сайта, используемый вашим веб-приложением.
Если у вас низкий уровень толерантности к риску приложения, переместите ползунок влево, чтобы увеличить порог риска приложения.
- Значение 1,0 не рекомендуется использовать, поскольку этот параметр может также потенциально запретить доступ законным пользователям, которые не соответствуют этому высокому порогу доверия.
Если у вас высокая толерантность к риску приложения, переместите ползунок вправо, чтобы уменьшить порог риска приложения.
- Значение 0,0 не рекомендуется использовать, так как этот параметр отключает защиту от злоупотреблений.
Дополнительную информацию можно найти в документации reCAPTCHA Enterprise .
2. Добавьте библиотеку App Check в свое приложение.
Добавьте Firebase в своё веб-приложение, если вы ещё этого не сделали. Обязательно импортируйте библиотеку App Check .
3. Инициализируйте App Check
Добавьте следующий код инициализации в приложение, прежде чем обращаться к каким-либо службам Firebase. Вам потребуется передать ключ сайта reCAPTCHA Enterprise, созданный в консоли Cloud, для метода activate()
.
Web
import { initializeApp } from "firebase/app"; import { initializeAppCheck, ReCaptchaEnterpriseProvider } from "firebase/app-check"; const app = initializeApp({ // Your Firebase configuration object. }); // Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise // site key and pass it to initializeAppCheck(). const appCheck = initializeAppCheck(app, { provider: new ReCaptchaEnterpriseProvider(/* reCAPTCHA Enterprise site key */), isTokenAutoRefreshEnabled: true // Set to true to allow auto-refresh. });
Web
firebase.initializeApp({ // Your Firebase configuration object. }); // Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise // site key and pass it to activate(). const appCheck = firebase.appCheck(); appCheck.activate( new firebase.appCheck.ReCaptchaEnterpriseProvider( /* reCAPTCHA Enterprise site key */ ), true // Set to true to allow auto-refresh. );
Следующие шаги
После установки библиотеки App Check в ваше приложение разверните ее.
Обновленное клиентское приложение начнет отправлять токены App Check вместе с каждым запросом, который оно делает в Firebase, но продукты Firebase не будут требовать, чтобы токены были действительными, пока вы не включите принудительное применение в разделе App Check консоли Firebase.
Мониторинг показателей и обеспечение соблюдения правил
Однако, прежде чем включить принудительное применение, следует убедиться, что это не помешает работе ваших законных пользователей. С другой стороны, если вы замечаете подозрительное использование ресурсов вашего приложения, возможно, стоит включить принудительное применение раньше.
Чтобы принять решение, вы можете изучить показатели App Check для используемых вами сервисов:
- Отслеживайте метрики запросов App Check для Firebase AI Logic , Data Connect , Realtime Database , Cloud Firestore , Cloud Storage , Authentication , Google Identity для iOS, Maps JavaScript API и Places API (новое).
- Мониторинг метрик запросов App Check для Cloud Functions .
Включить принудительное выполнение App Check
Когда вы поймете, как App Check повлияет на ваших пользователей, и будете готовы продолжить, вы можете включить принудительное применение App Check :
- Включить принудительное App Check для Firebase AI Logic , Data Connect , Realtime Database , Cloud Firestore , Cloud Storage , Authentication , Google Identity для iOS, Maps JavaScript API и Places API (новое).
- Включить принудительное выполнение App Check для Cloud Functions .
Используйте App Check в средах отладки
Если после регистрации приложения для App Check вы хотите запустить его в среде, которую App Check обычно не классифицирует как допустимую, например локально во время разработки или в среде непрерывной интеграции (CI), вы можете создать отладочную сборку своего приложения, которая использует поставщик отладки App Check вместо настоящего поставщика аттестации.
См. раздел Использование App Check с поставщиком отладки в веб-приложениях .
Примечание о стоимости
App Check создаёт оценку от вашего имени для проверки токена ответа пользователя каждый раз, когда браузер, на котором запущено ваше веб-приложение, обновляет свой токен App Check . С вашего проекта будет взиматься плата за каждую оценку, созданную сверх бесплатной квоты. Подробнее см. в ценах на reCAPTCHA .
По умолчанию ваше веб-приложение будет обновлять этот токен дважды в час . Чтобы контролировать частоту обновления токенов App Check (и, следовательно, частоту создания новых оценок), настройте их TTL .