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

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

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

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

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

  2. Интегрируйте функцию входа Google в свое приложение iOS, используя библиотеку входа Google .

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

Проверку приложений можно включить вGoogle API Console или в консоли Firebase . Необязательно включать его в обоих местах, достаточно одного.

Google API Console

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

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

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

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

Консоль Firebase

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

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

    • Если ваше приложение использует вход через Google, но не через 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 в свое приложение.

  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 вашего проекта установите среду App Attest на 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 в средах отладки

Если после регистрации приложения для App Check вы хотите запустить его в среде, которую App Check обычно не классифицирует как допустимую, например, в симуляторе во время разработки или в среде непрерывной интеграции (CI), вы можете создать отладочную сборку своего приложения, которая использует поставщик отладки App Check вместо App Attest.

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