Utiliser App Check avec le fournisseur 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 considérerait normalement pas comme valide, comme un simulateur en cours de développement ou 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.

Utiliser le fournisseur de débogage dans un simulateur

Pour utiliser le fournisseur de débogage lorsque vous exécutez votre application dans un simulateur de manière interactive (pendant le développement, par exemple), procédez comme suit:

  1. Recherchez la clé API iOS de votre projet sur la page Identifiants de la section API et services de la console Google Cloud.

  2. Dans votre version de débogage, configurez App Check pour utiliser le fournisseur de débogage. Vous devez spécifier la clé API obtenue à l'étape précédente.

    #if targetEnvironment(simulator)
    GIDSignIn.sharedInstance.configureDebugProvider(withAPIKey: apiKey) { error in
      if let error {
        print("Error configuring `GIDSignIn` for App Check: \(error)")
      }
    }
    #else
    // Configure App Check for production.
    #endif
    
  3. Lancez l'application. Un jeton de débogage local est enregistré dans la console Xcode lorsque le SDK tente d'envoyer une requête au backend. Exemple :

    <Warning> [AppCheckCore][I-GAC004001] App Check debug token:
    '123a4567-b89c-12d3-e456-789012345678'.
    
  4. Dans la section App Check de la console Firebase, sélectionnez Gérer les jetons de débogage dans le menu à développer de votre application. Ensuite, enregistrez le jeton de débogage que vous avez enregistré à l'étape précédente.

    Capture d&#39;écran de l&#39;élément de menu &quot;Manage Debug Tokens&quot; (Gérer les jetons de débogage)

Une fois le jeton enregistré, les points de terminaison OAuth 2.0 de Google l'acceptent comme valide pour votre projet.

Étant donné que ce jeton permet d'accéder à vos points de terminaison d'authentification sans appareil valide, il est essentiel de le garder privé. Ne le validez pas dans un dépôt public. Si un jeton enregistré est compromis, révoquez-le immédiatement dans la console Firebase.

Utiliser le fournisseur de débogage dans un environnement CI

Pour utiliser le fournisseur de débogage dans un environnement d'intégration continue (CI), procédez comme suit:

  1. Dans la section App Check de la console Firebase, sélectionnez Gérer les jetons de débogage dans le menu à développer de votre application. Créez ensuite un autre jeton de débogage. Vous en aurez besoin à l'étape suivante.

    Étant donné que ce jeton permet d'accéder à vos points de terminaison d'authentification sans appareil valide, il est essentiel qu'il reste privé. Ne le validez pas dans un dépôt public. Si un jeton enregistré est compromis, révoquez-le immédiatement dans la console Firebase.

    Capture d&#39;écran de l&#39;élément de menu &quot;Manage Debug Tokens&quot; (Gérer les jetons de débogage)

  2. Ajoutez le jeton de débogage que vous venez de créer au magasin de clés sécurisé de votre système CI (par exemple, les secrets chiffrés de GitHub Actions ou les variables chiffrées de Travis CI).

  3. Si nécessaire, configurez votre système CI pour que votre jeton de débogage soit disponible dans l'environnement CI en tant que variable d'environnement. Nommez la variable APP_CHECK_DEBUG_TOKEN_FROM_CI, par exemple.

  4. Dans Xcode, ajoutez une variable d'environnement à votre schéma de test avec le nom FIRAAppCheckDebugToken et une valeur telle que $(APP_CHECK_DEBUG_TOKEN).

  5. Configurez votre script de test CI pour transmettre le jeton de débogage en tant que variable d'environnement. Exemple :

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Recherchez la clé API iOS de votre projet sur la page Identifiants de la section API et services de la console Google Cloud.

  7. Dans votre version de débogage, configurez App Check pour utiliser le fournisseur de débogage. Vous devez spécifier la clé API obtenue à l'étape précédente.

    #if targetEnvironment(simulator)
    GIDSignIn.sharedInstance.configureDebugProvider(withAPIKey: apiKey) { error in
      if let error {
        print("Error configuring `GIDSignIn` for App Check: \(error)")
      }
    }
    #else
    // Configure App Check for production.
    #endif
    

Lorsque votre application s'exécute dans un environnement CI, les points de terminaison OAuth 2.0 de Google acceptent le jeton envoyé comme valide pour votre projet.