Premiers pas avec App Check pour Google Sign-In sur iOS

Cette page explique comment activer App Check dans une application iOS. Lorsque vous activez App Check, vous vous assurez que seule votre application peut accéder aux points de terminaison OAuth 2.0 de Google pour le compte de votre projet. Consultez la présentation de cette fonctionnalité.

App Check utilise App Attest pour vérifier que les requêtes OAuth 2.0 proviennent de votre application authentique. App Check n'utilise pas App Attest pour analyser le risque de fraude.

Avant de commencer

  1. Assurez-vous que vous disposez d'Xcode 12.5 ou d'une version ultérieure.

  2. Intégrez Google Sign-In à votre application iOS à l'aide de la bibliothèque Google Sign-In.

1. Configurer votre projet

Vous pouvez activer App Check dans la console Google APIs ou dans la console Firebase. Il n'est pas nécessaire de l'activer aux deux endroits. Un seul suffit.

Console Google APIs

Pour activer App Check pour votre client iOS, vous devez respecter les exigences suivantes :
  • Vous devez spécifier un ID d'équipe pour votre client iOS.
  • Vous ne devez pas utiliser de caractère générique dans votre ID de bundle, car il peut être résolu en plusieurs applications. Cela signifie que l'ID de bundle ne doit pas inclure le symbole astérisque (*).
Pour activer App Check, activez le bouton d'activation Protégez votre client OAuth des utilisations abusives avec Firebase App Check dans la vue de modification de votre client iOS.

Une fois App Check activé, vous verrez des métriques liées aux requêtes OAuth de votre client dans la vue de modification du client OAuth. Les requêtes provenant de sources non vérifiées ne seront pas bloquées tant que vous n'aurez pas appliqué App Check. Les informations de la page de surveillance des métriques peuvent vous aider à déterminer quand commencer à appliquer App Check.

Vous pouvez voir des erreurs liées à la fonctionnalité App Check lorsque vous activez App Check pour votre application iOS. Pour résoudre ces erreurs, procédez comme suit :

  • Vérifiez que l'ID du bundle et l'ID d'équipe que vous avez spécifiés sont valides.
  • Vérifiez que vous n'utilisez pas de caractère générique pour l'ID du bundle.

Console Firebase

  1. Vous devez disposer d'un projet Firebase pour utiliser App Check avec Google Sign-In.

    • Si votre application utilise déjà Firebase, utilisez le même projet.

    • Si votre application utilise Google Sign-In, mais pas Firebase, vous disposez déjà d'un projet Google Cloud. Ajoutez Firebase à votre projet Google Cloud en le sélectionnant lorsque vous créez un projet dans la console Firebase

      Voir aussi : Relation entre les projets Firebase et Google Cloud

  2. Si ce n'est pas déjà fait, ajoutez vos applications iOS à votre projet Firebase à l'aide de la page Project settings (Paramètres du projet) de la console Firebase.

  3. Enregistrez vos applications pour utiliser App Check avec le fournisseur App Attest dans la section "App Check" de la console Firebase.

  4. Assurez-vous que tous les clients OAuth de votre projet sont associés à une application.

    Si vous avez des clients dissociés, un message s'affiche dans la section Google Identity for iOS (Identity Google pour iOS) de la page App Check : "Vous avez n clients OAuth dissociés qui nécessitent une configuration supplémentaire."

    De plus, si vous avez supprimé des clients OAuth après les avoir configurés dans App Check, un message s'affiche : "Vous avez n remplacements sans client OAuth correspondant". Vous pouvez libérer de l'espace en toute sécurité en supprimant ces forçages.

    Vous pouvez associer des clients dissociés à une application existante ou nouvelle sur la page "OAuth clients" (Clients OAuth) de la console Firebase.

2. Ajouter la bibliothèque Google Sign-In à votre application

  1. Dans votre projet Xcode, définissez la dépendance Google Sign-In sur la version 8.0.0 ou une version ultérieure :

    SPM

    Définissez la règle de dépendance de googlesignin-ios sur la version 8.0.0 ou une version ultérieure.

    CocoaPods

    Mettez à jour votre 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
    

    Ensuite, exécutez pod install et ouvrez le fichier .xcworkspace créé.

  2. Dans Xcode, ajoutez la fonctionnalité App Attest à votre application.

  3. Dans le fichier .entitlements de votre projet, définissez l'environnement App Attest sur production.

3. Initialiser App Check

Dans la méthode didFinishLaunchingWithOptions du délégué de votre application, appelez GIDSignIn.sharedInstance.configure(completion:). Vous devez appeler cette méthode le plus tôt possible dans le cycle de vie de votre application afin de réduire la latence perçue par l'utilisateur.

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

  // ...
}

Étapes suivantes

Une fois la bibliothèque App Check installée dans votre application, commencez à distribuer l'application mise à jour à vos utilisateurs.

L'application cliente mise à jour commencera à envoyer des jetons App Check avec chaque requête adressée aux points de terminaison d'authentification de Google, mais les points de terminaison n'exigeront pas que les jetons soient valides tant que vous n'aurez pas activé l'application dans la section "App Check" de la console Firebase.

Surveiller les métriques

Avant d'activer l'application, vous devez vous assurer que cela ne perturbera pas vos utilisateurs légitimes existants. En revanche, si vous constatez une utilisation suspecte des ressources de votre application, vous pouvez activer l'application plus tôt.

Pour vous aider à prendre cette décision, vous pouvez consulter les métriques App Check pour Google Sign-In.

Activer l'application App Check

Lorsque vous comprenez l'impact d'App Check sur vos utilisateurs et que vous êtes prêt à continuer, vous pouvez activer l'application App Check.

Utiliser App Check dans des environnements de débogage

Si, après avoir enregistré votre application pour App Check, vous souhaitez l'exécuter dans un environnement qu'App Check ne classerait normalement pas comme valide, par exemple un simulateur lors du développement ou à partir d'un environnement d'intégration continue (CI), vous pouvez créer une version de débogage de votre application qui utilise le fournisseur de débogage App Check au lieu d'App Attest.

Consultez Utiliser App Check avec le fournisseur de débogage.