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

Cette page vous 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 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 d'avoir Xcode 12.5 ou 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 Google API Console ou dans la console Firebase. Il n'est pas nécessaire de l'activer aux deux endroits. Un seul suffit.

Google API Console

Pour activer correctement App Check pour votre client iOS, vous devez remplir les conditions 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 correspondre à plusieurs applications. Cela signifie que l'ID de bundle ne doit pas inclure le symbole astérisque (*).
Pour activer App Check, activez le bouton bascule Protégez votre client OAuth des utilisations abusives avec Firebase App Check dans la vue "Modifier" de votre client iOS.

Après avoir activé App Check, vous verrez des métriques liées aux requêtes OAuth de votre client dans la vue "Modifier" du client OAuth. Les requêtes provenant de sources non validé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 les règles.

Vous pouvez rencontrer des erreurs liées à la fonctionnalité App Check lorsque vous l'activez 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 la connexion Google.

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

    • Si votre application utilise la connexion avec Google, 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 vous ne l'avez pas encore fait, ajoutez vos applications iOS à votre projet Firebase sur la page 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 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, le message "Vous avez n remplacement(s) sans client OAuth correspondant" s'affichera. Vous pouvez effectuer un nettoyage en supprimant ces remplacements.

    Vous pouvez associer des clients non associés à une application existante ou nouvelle sur la page 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 ultérieure :

    SPM

    Définissez la règle de dépendance de googlesignin-ios sur la version 8.0.0 ou 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
    

    Exécutez ensuite 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 pour minimiser 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 qu'elle envoie 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

Toutefois, 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 Se connecter avec Google.

Activer l'application d'App Check

Une fois que vous avez compris l'impact d'App Check sur vos utilisateurs et que vous êtes prêt à continuer, vous pouvez activer l'application d'App Check.

Utiliser App Check dans les 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 pendant le 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.