На этой странице показано, как включить App Check в Android-приложении, используя встроенный поставщик Play Integrity. Включив App Check , вы гарантируете, что доступ к ресурсам бэкэнда вашего проекта будет иметь только ваше приложение. См. обзор этой функции.
Поставщик Play Integrity поддерживает приложения Android, опубликованные в Google Play, вне Google Play или и там, и там. Если для вашего случая требуются функции Play Integrity, не реализованные в App Check , или если вы хотите использовать App Check со своим собственным пользовательским поставщиком, см. раздел «Реализация пользовательского поставщика App Check .
1. Настройте свой проект Firebase.
Добавьте Firebase в свой Android-проект, если вы еще этого не сделали.
Включите API проверки целостности воспроизведения:
В консоли Google Play выберите свое приложение или добавьте его, если вы еще этого не сделали.
В разделе «Выпуск» нажмите «Целостность приложения» .
Перейдите в раздел Play Integrity API на странице, нажмите «Привязать облачный проект» , затем выберите свой проект Firebase из списка проектов Google Cloud. Выбранный вами проект должен совпадать с проектом Firebase, в котором вы регистрируете свое приложение (см. следующий шаг).
Зарегистрируйте свои приложения для использования App Check с помощью поставщика Play Integrity в разделе App Check консоли Firebase . Вам потребуется указать отпечаток SHA-256 сертификата подписи вашего приложения.
Обычно необходимо зарегистрировать все приложения вашего проекта, поскольку после включения принудительного применения правил для продукта Firebase доступ к ресурсам бэкэнда этого продукта будет иметь только зарегистрированные приложения.
Необязательно : В настройках регистрации приложения установите пользовательское время жизни (TTL) для токенов App Check выданных провайдером. Вы можете установить TTL на любое значение от 30 минут до 7 дней. При изменении этого значения следует учитывать следующие компромиссы:
- Безопасность: Более короткие значения TTL обеспечивают более высокую безопасность, поскольку сокращают период времени, в течение которого утечка или перехват токена могут быть использованы злоумышленником в корыстных целях.
- Производительность: Более короткие значения TTL означают, что ваше приложение будет выполнять аттестацию чаще. Поскольку процесс аттестации приложения каждый раз добавляет задержку к сетевым запросам, короткий TTL может повлиять на производительность вашего приложения.
- Квота и стоимость: Более короткие сроки действия TTL и частая повторная аттестация быстрее истощают вашу квоту, а для платных услуг могут стоить дороже. См. раздел «Квоты и лимиты» .
Значение TTL по умолчанию, равное 1 часу, является разумным для большинства приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину времени TTL.
Настройка дополнительных параметров (необязательно)
App Check предлагает ряд настроек для поддержки сложных сценариев использования, включая распространение вашего приложения за пределами Google Play. Вы можете настроить эти параметры в разделе App Check консоли Firebase для каждого из ваших приложений Android. Мы рекомендуем настроить эти параметры в соответствии со следующей таблицей при первой регистрации вашего приложения .
| Канал распространения вашего приложения | PLAY_RECONIZED | ЛИЦЕНЗИРОВАННЫЙ | Минимально допустимый уровень целостности устройства |
|---|---|---|---|
| Эксклюзивно в Google Play | Необходимый | Необходимый | Не следует явно проверять уровень целостности устройства. |
| Эксклюзивно за пределами Google Play | Не требуется | Не требуется | целостность устройства |
| В Google Play и за пределами Google Play | Необходимый | Не требуется | Не следует явно проверять уровень целостности устройства. |
Подробности
Каждая расширенная настройка соответствует метке вердикта Play Integrity. Для получения дополнительной информации обратитесь к документации Play Integrity .
- По умолчанию App Check требует наличия метки распознавания приложений
PLAY_RECOGNIZED. Приложения, не опубликованные в Google Play, не имеют права на получение этой метки. - По умолчанию App Check не требует наличия лицензионной метки
LICENSEDдля вашего приложения. Эту метку могут получить только пользователи, которые установили или обновили ваше приложение непосредственно из Google Play. По умолчанию App Check не проверяет явно вердикт целостности устройства. App Check поддерживает явную проверку следующих трех уровней целостности устройства, перечисленных в порядке возрастания уровня целостности устройства.
Базовая целостность . Это приводит к тому, что App Check требует наличия метки распознавания устройства
MEETS_BASIC_INTEGRITY. Чтобы ваше приложение могло получить эту необязательную метку, необходимо сначала активировать её в консоли Google Play .Проверка целостности устройства . Приводит к тому, что App Check требует наличия метки распознавания устройства
MEETS_DEVICE_INTEGRITY. Все приложения автоматически получают эту метку.Строгая целостность . Это приводит к тому, что App Check требует наличия метки распознавания устройства
MEETS_STRONG_INTEGRITY. Чтобы ваше приложение могло получить эту необязательную метку, необходимо сначала активировать её в консоли Google Play .
2. Добавьте библиотеку App Check в свое приложение.
В файл Gradle вашего модуля (уровня приложения) (обычно<project>/<app-module>/build.gradle.kts или <project>/<app-module>/build.gradle ) добавьте зависимость от библиотеки App Check для Android. Мы рекомендуем использовать Firebase Android BoM для управления версиями библиотек.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.7.0")) // Add the dependencies for the App Check libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-playintegrity") }
Использование Firebase Android BoM , что ваше приложение всегда будет использовать совместимые версии библиотек Firebase Android.
(Альтернативный вариант) Добавление зависимостей библиотеки Firebase без использования BoM
Если вы решите не использовать Firebase BoM , вам необходимо указать версию каждой библиотеки Firebase в строке зависимости.
Обратите внимание, что если вы используете несколько библиотек Firebase в своем приложении, мы настоятельно рекомендуем использовать BoM для управления версиями библиотек, что гарантирует совместимость всех версий.
dependencies { // Add the dependencies for the App Check libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-playintegrity:19.0.1") }
3. Инициализация App Check
Добавьте в приложение следующий код инициализации, чтобы он запускался до использования любых других SDK Firebase:
Kotlin
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance());
Следующие шаги
После установки библиотеки 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 с помощью отладчика на Android» .