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

Nesta página, mostramos como ativar o App Check em um app iOS. Ao fazer isso, você ajuda a garantir que apenas seu app possa acessar os endpoints OAuth 2.0 do Google em nome do seu projeto. Consulte a Visão geral desse recurso.

O App Check usa o App Attest para ajudar a verificar se as solicitações do OAuth 2.0 são provenientes do seu app 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

O App Check pode ser ativado no Google API Console ou no Console do Firebase. Não é necessário ativar nos dois lugares, apenas um é suficiente.

Google API Console

Os requisitos a seguir precisam ser atendidos para ativar o App Check no seu cliente iOS:
  • É necessário especificar um ID de equipe para seu cliente iOS.
  • Não use um caractere curinga no ID do pacote, porque ele pode ser resolvido para 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 seu 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 você a determinar quando começar a aplicação.

Ao ativar o App Check para seu app iOS, você pode encontrar erros relacionados a esse recurso. 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. É preciso ter um projeto do Firebase para usar o App Check com o Login do Google.

  2. Se ainda não tiver feito isso, adicione seus apps iOS ao projeto do Firebase usando a página Configurações do projeto do console do Firebase.

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

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

    Se você tiver clientes não vinculados, uma mensagem vai aparecer na seção Identidade do Google para iOS da página App Check dizendo: "Você tem n clientes OAuth não vinculados que precisam de configurações adicionais".

    Além disso, se você excluiu alguns clientes OAuth depois de configurá-los no App Check, vai aparecer uma mensagem informando que você tem n substituições sem um 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 seu projeto do Xcode, defina a dependência do Login do Google como 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 seu 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 delegado do app, chame GIDSignIn.sharedInstance.configure(completion:). Chame esse método o quanto antes 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 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 simulador 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.