Comece a usar o App Check para o Login do Google no iOS

Esta página mostra como ativar o App Check em um app iOS. Ao ativar o App Check, você ajuda a garantir que apenas seu app possa acessar os endpoints OAuth 2.0 do Google em nome do seu projeto. Confira a visão geral desse recurso.

O App Check usa o App Attest para verificar se as solicitações do OAuth 2.0 estão vindo do seu aplicativo autêntico. O App Check não usa o App Attest para analisar riscos de fraude.

Antes de começar

  1. Verifique se você tem o Xcode 12.5 ou mais recente.

  2. Integre o Login do Google ao seu app iOS usando a biblioteca do Login do Google.

1. Criar o projeto

A verificação de apps pode ser ativada no ou no Console do Firebase. Não é necessário ativar em ambos os lugares, apenas um é suficiente.

Os requisitos a seguir precisam ser atendidos para ativar o App Check no seu cliente iOS:
  • É necessário especificar um ID de equipe para o cliente iOS.
  • Não use um curinga no ID do pacote, porque ele pode ser resolvido em mais de um app. Isso significa que o ID do pacote não pode incluir o símbolo de asterisco (*).
Para ativar o App Check, ative o botão de alternância Proteja seu cliente OAuth contra abusos com o Firebase App Check na visualização de edição do cliente iOS.

Depois de ativar o App Check, você vai começar a ver métricas relacionadas a solicitações OAuth do seu cliente na visualização de edição do cliente OAuth. As solicitações de fontes não verificadas não serão bloqueadas até que você aplique o App Check. As informações na página de monitoramento de métricas podem ajudar a determinar quando iniciar a aplicação.

Talvez você encontre erros relacionados ao recurso App Check ao ativar o recurso para seu app iOS. Para corrigir esses erros, tente o seguinte:

  • Verifique se o ID do pacote e o ID da equipe especificados são válidos.
  • Verifique se você não está usando um caractere curinga para o ID do pacote.

Console do Firebase

  1. É necessário ter um projeto do Firebase para usar a Verificação de app com o Login do Google.

  2. Se ainda não fez isso, adicione seus apps iOS ao projeto do Firebase usando a página Project settings do console do Firebase.

  3. Registre seus apps para usar o App Check com o provedor do App Attest na seção App Check do Console do Firebase.

  4. Confira se todos os clientes OAuth do seu projeto estão vinculados a um app.

    Se você tiver clientes desvinculados, uma mensagem vai aparecer na seção Identidade do Google para iOS da página Verificação de app com a mensagem "Você tem n clientes OAuth desvinculados que precisam de configurações adicionais".

    Além disso, se você tiver excluído alguns clientes OAuth após a configuração no App Check, vai aparecer a mensagem "Você tem n substituições sem cliente OAuth correspondente". Você pode limpar com segurança excluindo essas substituições.

    É possível vincular clientes desvinculados a um app novo ou existente na página Clientes OAuth do console do Firebase.

2. Adicionar a biblioteca do Login do Google ao app

  1. No projeto do Xcode, defina a dependência do Login do Google para a versão 8.0.0 ou mais recente :

    SPM

    Defina a regra de dependência de googlesignin-ios como a versão 8.0.0 ou mais recente.

    CocoaPods

    Atualize o 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
    

    Em seguida, execute pod install e abra o arquivo .xcworkspace criado.

  2. No Xcode, adicione o recurso App Attest ao app.

  3. No arquivo .entitlements do projeto, defina o ambiente do App Attest como production.

3. Inicializar o App Check

No método didFinishLaunchingWithOptions do representante do app, chame GIDSignIn.sharedInstance.configure(completion:). Chame esse método o mais cedo possível no ciclo de vida do app para minimizar a latência percebida pelo usuário.

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

  // ...
}

Próximas etapas

Depois que a biblioteca do App Check estiver instalada no seu app, comece a distribuir o app atualizado para os usuários.

O app cliente atualizado vai começar a enviar tokens do App Check em todas as solicitações feitas aos endpoints de autenticação do Google, mas os endpoints não exigirão que os tokens sejam válidos até que você ative a aplicação obrigatória na seção "App Check" do Console do Firebase.

Monitorar as métricas

Antes de ativar a aplicação obrigatória, verifique se isso não vai afetar seus usuários legítimos. Por outro lado, se você perceber um uso suspeito dos recursos do seu app, convém ativar a aplicação obrigatória antes do previsto.

Para tomar essa decisão, analise as métricas do App Check para o Login do Google.

Ativar a aplicação obrigatória do App Check

Assim que você entender como o App Check vai afetar seus usuários e estiver tudo pronto para seguir o processo, ative a aplicação do App Check.

Usar o App Check em ambientes de depuração

Se, depois de registrar seu app no App Check, você quiser executá-lo em um ambiente que o App Check normalmente não classificaria como válido, como um emulador durante o desenvolvimento ou em um ambiente de integração contínua (CI), crie um build de depuração do app que use o provedor de depuração do App Check em vez do App Attest.

Consulte Usar o App Check com o provedor de depuração.