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

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

Проверка приложений использует 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. Чтобы использовать проверку приложений при входе в Google, у вас должен быть проект Firebase.

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

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

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

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

  3. Зарегистрируйте свои приложения, чтобы использовать проверку приложений у поставщика App Attest в разделе «Проверка приложений» консоли Firebase.

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

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

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

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

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

  1. В проекте Xcode установите для зависимости входа в Google версию 8.0.0 или выше:

    СЗМ

    Установите для правила зависимости googlesignin-ios версию 8.0.0 или выше.

    Какао-стручки

    Обновите свой 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 в ваше приложение начните распространять обновленное приложение среди своих пользователей.

Обновленное клиентское приложение начнет отправлять токены проверки приложений вместе с каждым запросом к конечным точкам аутентификации Google, но конечные точки не будут требовать, чтобы токены были действительными, пока вы не включите принудительное применение в разделе «Проверка приложений» консоли Firebase.

Мониторинг показателей

Однако прежде чем включать принудительное применение, вы должны убедиться, что это не повредит работе существующих законных пользователей. С другой стороны, если вы заметили подозрительное использование ресурсов вашего приложения, возможно, вам захочется включить принудительное применение раньше.

Чтобы принять это решение, вы можете просмотреть показатели проверки приложений для входа в Google .

Включить принудительное выполнение проверки приложений

Когда вы поймете, как проверка приложений повлияет на ваших пользователей, и будете готовы продолжить, вы сможете включить принудительное применение проверки приложений .

Используйте проверку приложений в средах отладки

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

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