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 au nom 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 d'avoir installé 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 ou dans la console Firebase. Il n'est pas nécessaire de l'activer dans les deux endroits. Un seul suffit.

Les conditions suivantes doivent être remplies pour activer App Check pour votre client iOS :
  • 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 de modification de votre client iOS.

Une fois App Check activé, vous commencerez à voir 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 validées ne seront pas bloquées tant que vous n'aurez pas implémenté 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 de l'é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 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 également : Relation entre les projets Firebase et Google Cloud

  2. Si vous ne l'avez pas déjà fait, ajoutez vos applications iOS à votre projet Firebase à l'aide de la page Paramètres du projet de la console Firebase.

  3. Enregistrez vos applications pour qu'elles utilisent App Check avec le fournisseur App Attest dans la section App Check (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, le message suivant s'affiche dans la section Identité Google pour iOS de la page Vérification des applications : "Vous avez n clients OAuth dissociés qui nécessitent une configuration supplémentaire."

    De plus, si vous avez supprimé certains clients OAuth après les avoir configurés dans App Check, le message suivant s'affiche : "Vous avez n remplacement(s) sans client OAuth correspondant". Vous pouvez effectuer un nettoyage en toute sécurité en supprimant ces forçages.

    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 capacité 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 de votre délégué d'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 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 la version 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 qu'elle n'entraînera pas de perturbation pour vos utilisateurs légitimes existants. En revanche, si vous constatez une utilisation suspecte de vos ressources d'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 la connexion Google.

Activer l'application des règles 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 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, tel qu'un simulateur pendant le développement ou à partir d'un environnement d'intégration continue (CI), vous pouvez créer un build 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.