На этой странице показано, как включить проверку приложений (App Check) в iOS-приложении. Включив проверку приложений, вы гарантируете, что только ваше приложение сможет получить доступ к конечным точкам Google OAuth 2.0 от имени вашего проекта. См. обзор этой функции.
App Check использует App Attest для проверки подлинности запросов OAuth 2.0, поступающих от вашего приложения. App Check не использует App Attest для анализа риска мошенничества .
Прежде чем начать
Убедитесь, что у вас установлена версия Xcode 12.5 или новее.
Интегрируйте Google Sign-in в свое iOS-приложение, используя библиотеку Google Sign-in .
1. Настройте свой проект.
Функцию App Check можно включить в консоли Google API или в консоли Firebase . Включать её в обоих местах необязательно, достаточно одного варианта.
Консоль Google API
Для успешного включения функции App Check для вашего iOS-клиента необходимо выполнить следующие требования:- Для iOS-клиента необходимо указать идентификатор команды.
- В идентификаторе пакета нельзя использовать подстановочный знак, поскольку он может соответствовать более чем одному приложению. Это означает, что идентификатор пакета не должен содержать символ звездочки (*).
После включения проверки приложений (App Check) вы начнете видеть метрики, связанные с запросами OAuth от вашего клиента, в режиме редактирования клиента OAuth. Запросы из непроверенных источников не будут блокироваться, пока вы не включите проверку приложений . Информация на странице мониторинга метрик поможет вам определить, когда следует начать проверку.
При включении функции проверки приложений для вашего iOS-приложения могут возникать ошибки, связанные с этой функцией. Для их устранения попробуйте следующее:
- Убедитесь, что указанные вами идентификатор пакета и идентификатор команды действительны.
- Убедитесь, что вы не используете подстановочный знак для идентификатора пакета.
Консоль Firebase
Для использования функции App Check с авторизацией через Google необходимо иметь проект Firebase.
Если ваше приложение уже использует Firebase, используйте тот же проект.
Если ваше приложение использует Google Sign-in, но не Firebase, значит, у вас уже есть проект Google Cloud. Добавьте Firebase в свой проект Google Cloud, выбрав его при создании нового проекта в консоли Firebase.
См. также: Взаимосвязь между проектами Firebase и Google Cloud
Если вы еще этого не сделали, добавьте свои iOS-приложения в проект Firebase, используя страницу настроек проекта в консоли Firebase.
Зарегистрируйте свои приложения для использования App Check с помощью поставщика App Attest в разделе App Check консоли Firebase.
Убедитесь, что все клиенты OAuth вашего проекта связаны с приложением.
Если у вас есть неподключенные клиенты, в разделе Google Identity для iOS на странице проверки приложения вы увидите сообщение: «У вас есть n неподключенных клиентов OAuth, для которых требуется дополнительная настройка».
Кроме того, если вы удалили некоторые клиенты OAuth после их настройки в App Check, вы увидите сообщение: «У вас есть n переопределений, для которых нет подходящего клиента OAuth». Вы можете безопасно выполнить очистку, удалив эти переопределения.
На странице клиентов OAuth в консоли Firebase можно связать не связанные клиенты с существующим или новым приложением.
2. Добавьте библиотеку Google Sign-in в свое приложение.
В вашем проекте Xcode установите для зависимости Google Sign-in версию
8.0.0или выше:СПМ
Установите правило зависимости для
googlesignin-iosна версию8.0.0или выше.CocoaPods
Обновите свой
Podfile:source 'https://github.com/CocoaPods/Specs.git' source 'https://github.com/firebase/SpecsDev.git' target 'YourAppName' do use_frameworks! pod 'GoogleSignIn','~> 8.0' :git => 'https://github.com/google/GoogleSignIn-iOS.git' pod 'GoogleSignInSwiftSupport' # If you use SwiftUI. endЗатем выполните команду
pod installи откройте созданный файл.xcworkspace.В Xcode добавьте в своё приложение функцию App Attest .
В файле
.entitlementsвашего проекта установите среду тестирования приложения вproduction.
3. Инициализация проверки приложения
В методе didFinishLaunchingWithOptions вашего делегата приложения вызовите GIDSignIn.sharedInstance.configure(completion:) . Этот метод следует вызывать как можно раньше в жизненном цикле приложения, чтобы минимизировать задержку, воспринимаемую пользователем.
import SwiftUI
import GoogleSignIn
class AppDelegate: NSObject, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
#if targetEnvironment(simulator)
// Configure for debugging.
// See: https://developers.google.com/identity/sign-in/ios/appcheck/debug-provider
#else
GIDSignIn.sharedInstance.configure { error in
if let error {
print("Error configuring `GIDSignIn` for Firebase App Check: \(error)")
}
}
#endif
return true
}
}
@main
struct YourAppNameApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
// ...
}
Следующие шаги
После установки библиотеки App Check в ваше приложение, начните распространять обновленное приложение среди пользователей.
Обновленное клиентское приложение начнет отправлять токены App Check вместе с каждым запросом к точкам аутентификации Google, но эти точки не будут требовать подтверждения действительности токенов, пока вы не включите эту функцию в разделе App Check консоли Firebase.
Мониторинг метрик
Однако, прежде чем включать функцию принудительного применения, следует убедиться, что это не нарушит работу существующих законных пользователей. С другой стороны, если вы наблюдаете подозрительное использование ресурсов вашего приложения, возможно, стоит включить функцию принудительного применения раньше.
Чтобы помочь вам принять это решение, вы можете ознакомиться с показателями App Check для входа через Google .
Включить принудительное выполнение проверки приложений
Когда вы поймете, как проверка приложений повлияет на ваших пользователей, и будете готовы продолжить, вы можете включить принудительное применение проверки приложений .
Используйте App Check в средах отладки.
Если после регистрации вашего приложения в App Check вы хотите запустить его в среде, которую App Check обычно не классифицирует как допустимую, например, в симуляторе во время разработки или в среде непрерывной интеграции (CI), вы можете создать отладочную сборку вашего приложения, которая использует отладочный провайдер App Check вместо App Attest.
См. раздел «Использование проверки приложений с помощью поставщика отладки» .