На этой странице рассказывается, как включить 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.
Включите Play Integrity API:
В Google Play Console выберите приложение или добавьте его, если вы ещё этого не сделали.
В разделе Выпуск нажмите Целостность приложения.
Перейдите в раздел Play Integrity API, нажмите Установить связь с облачным проектом и выберите проект Firebase из списка проектов Google Cloud. Выбранный проект должен совпадать с проектом Firebase, в котором вы регистрируете приложение (см. следующий шаг).
В консоли Firebase выберите Security (Безопасность) > App Check (Проверка приложений).
На вкладке Приложения зарегистрируйте приложения, чтобы использовать App Check с поставщиком Play Integrity. Вам нужно будет предоставить цифровой отпечаток SHA-256 сертификата подписи приложения.
Обычно требуется зарегистрировать все приложения проекта, поскольку после включения принудительного применения для продукта Firebase доступ к его внутренним ресурсам смогут получить только зарегистрированные приложения.
Необязательно. Установите время жизни токена (TTL).
В настройках регистрации приложения задайте пользовательское время жизни (TTL) для токенов App Check, выпущенных поставщиком. Вы можете задать любое значение TTL в диапазоне от 30 минут до 7 дней. При изменении этого значения учитывайте следующее:
- Безопасность. Более короткие TTL обеспечивают более надежную защиту, поскольку они сокращают окно, в котором злоумышленник может использовать утекший или перехваченный токен.
- Производительность. Чем меньше TTL, тем чаще приложение будет выполнять проверку. Поскольку процесс проверки приложения добавляет задержку к сетевым запросам при каждом выполнении, короткий TTL может повлиять на производительность вашего приложения.
- Квота и стоимость. Короткие TTL и частая повторная аттестация быстрее расходуют квоту и могут повысить стоимость платных сервисов. Подробнее о квотах и лимитах…
Значение TTL по умолчанию (1 час) подходит для большинства приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину времени TTL.
Как задать расширенные настройки (необязательно)
App Check предлагает ряд настроек для расширенных сценариев использования, включая распространение приложения за пределами Google Play. Для каждого зарегистрированного приложения Android эти настройки можно задать на вкладке App Check > Приложения в консоли Firebase. Рекомендуем задать эти настройки в соответствии с таблицей ниже при регистрации приложения.
| Канал распространения приложения | PLAY_RECOGNIZED | LICENSED | Минимальный допустимый уровень целостности устройства |
|---|---|---|---|
| Только в Google Play | Обязательно | Обязательно | Не проверять уровень целостности устройства |
| Только за пределами Google Play | Необязательно | Необязательно | Целостность устройства |
| В Google Play и за его пределами | Обязательно | Необязательно | Не проверять уровень целостности устройства |
Сведения
Каждая расширенная настройка соответствует пометке в оценке Play Integrity. Дополнительную информацию можно найти в документации Play Integrity API.
- По умолчанию для App Check требуется ярлык распознавания приложений
PLAY_RECOGNIZED. Приложения, не опубликованные в Google Play, не могут получить этот ярлык. - По умолчанию для App Check не требуется ярлык лицензирования приложений
LICENSED. Этот ярлык могут получить только пользователи, которые установили или обновили ваше приложение напрямую из Google Play. По умолчанию App Check не проверяет оценку целостности данных на устройстве. App Check поддерживает явную проверку следующих трех уровней целостности устройства, перечисленных в порядке возрастания целостности устройства.
Базовая целостность. App Check требует ярлык распознавания устройства
MEETS_BASIC_INTEGRITY. Чтобы получить этот необязательный ярлык, сначала нужно включить его в Google Play Console.Целостность устройства. App Check требует ярлык распознавания устройства
MEETS_DEVICE_INTEGRITY. Все приложения автоматически получают право на этот ярлык.Надежная защита целостности. App Check требует ярлык распознавания устройства
MEETS_STRONG_INTEGRITY. Чтобы получить этот необязательный ярлык, сначала нужно включить его в Google Play Console.
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:35.0.2")) // 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:20.0.0") }
3. Инициализация App Check
Добавьте в приложение следующий код инициализации, чтобы он выполнялся до использования других Firebase SDK:
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, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity для iOS, Maps JavaScript API и Places API (New).
- Отслеживайте показатели запросов App Check для Cloud Functions.
Включить меры App Check
Когда вы поймете, как App Check повлияет на пользователей, и будете готовы продолжить, вы сможете включить принудительное применение App Check:
- Включите принудительное применение App Check для Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity для iOS, Maps JavaScript API и Places API (New).
- Включите принудительное применение App Check для Cloud Functions.
Используйте App Check в средах отладки
Если после регистрации приложения в App Check вы хотите запустить его в среде, которую App Check обычно не классифицирует как действительную, например в эмуляторе во время разработки или в среде непрерывной интеграции, вы можете создать отладочную сборку приложения, которая использует отладочный поставщик App Check вместо реального поставщика аттестации.
Подробнее о том, как использовать App Check с отладочным поставщиком на Android…