На этой странице показано, как включить 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 for 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 for 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 .