Начните использовать проверку приложений для входа в Google на iOS

На этой странице показано, как включить проверку приложений (App Check) в iOS-приложении. Включив проверку приложений, вы гарантируете, что только ваше приложение сможет получить доступ к конечным точкам Google OAuth 2.0 от имени вашего проекта. См. обзор этой функции.

App Check использует App Attest для проверки подлинности запросов OAuth 2.0, поступающих от вашего приложения. App Check не использует App Attest для анализа риска мошенничества .

Прежде чем начать

  1. Убедитесь, что у вас установлена ​​версия Xcode 12.5 или новее.

  2. Интегрируйте Google Sign-in в свое iOS-приложение, используя библиотеку Google Sign-in .

1. Настройте свой проект.

Функцию App Check можно включить в консоли Google API или в консоли Firebase . Включать её в обоих местах необязательно, достаточно одного варианта.

Консоль Google API

Для успешного включения функции App Check для вашего iOS-клиента необходимо выполнить следующие требования:
  • Для iOS-клиента необходимо указать идентификатор команды.
  • В идентификаторе пакета нельзя использовать подстановочный знак, поскольку он может соответствовать более чем одному приложению. Это означает, что идентификатор пакета не должен содержать символ звездочки (*).
Чтобы включить проверку приложений (App Check), активируйте переключатель «Защитите свой OAuth-клиент от злоупотреблений с помощью Firebase App Check» в режиме редактирования вашего iOS-клиента.

После включения проверки приложений (App Check) вы начнете видеть метрики, связанные с запросами OAuth от вашего клиента, в режиме редактирования клиента OAuth. Запросы из непроверенных источников не будут блокироваться, пока вы не включите проверку приложений . Информация на странице мониторинга метрик поможет вам определить, когда следует начать проверку.

При включении функции проверки приложений для вашего iOS-приложения могут возникать ошибки, связанные с этой функцией. Для их устранения попробуйте следующее:

  • Убедитесь, что указанные вами идентификатор пакета и идентификатор команды действительны.
  • Убедитесь, что вы не используете подстановочный знак для идентификатора пакета.

Консоль Firebase

  1. Для использования функции App Check с авторизацией через Google необходимо иметь проект Firebase.

    • Если ваше приложение уже использует Firebase, используйте тот же проект.

    • Если ваше приложение использует Google Sign-in, но не Firebase, значит, у вас уже есть проект Google Cloud. Добавьте Firebase в свой проект Google Cloud, выбрав его при создании нового проекта в консоли Firebase.

      См. также: Взаимосвязь между проектами Firebase и Google Cloud

  2. Если вы еще этого не сделали, добавьте свои iOS-приложения в проект Firebase, используя страницу настроек проекта в консоли Firebase.

  3. Зарегистрируйте свои приложения для использования App Check с помощью поставщика App Attest в разделе App Check консоли Firebase.

  4. Убедитесь, что все клиенты OAuth вашего проекта связаны с приложением.

    Если у вас есть неподключенные клиенты, в разделе Google Identity для iOS на странице проверки приложения вы увидите сообщение: «У вас есть n неподключенных клиентов OAuth, для которых требуется дополнительная настройка».

    Кроме того, если вы удалили некоторые клиенты OAuth после их настройки в App Check, вы увидите сообщение: «У вас есть n переопределений, для которых нет подходящего клиента OAuth». Вы можете безопасно выполнить очистку, удалив эти переопределения.

    На странице клиентов OAuth в консоли Firebase можно связать не связанные клиенты с существующим или новым приложением.

2. Добавьте библиотеку Google Sign-in в свое приложение.

  1. В вашем проекте 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 .

  2. В Xcode добавьте в своё приложение функцию App Attest .

  3. В файле .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.

См. раздел «Использование проверки приложений с помощью поставщика отладки» .