Cette page explique comment activer App Check dans une application Apple à l'aide du fournisseur App Attest intégré. Lorsque vous activez App Check, vous vous assurez que seule votre application peut accéder aux ressources Firebase de votre projet. Consultez la présentation de cette fonctionnalité.
App Check utilise App Attest pour vérifier que les requêtes adressées aux services Firebase proviennent de votre application authentique. App Check actuellement n'utilise pas App Attest pour analyser le risque de fraude.
Si vous souhaitez utiliser App Check avec votre propre fournisseur personnalisé, consultez Implémenter un fournisseur App Check personnalisé.
1. Configurer votre projet Firebase
Vous devez disposer d'Xcode 12.5 ou version ultérieure pour utiliser App Attest.
Si ce n'est déjà fait , ajoutez Firebase à votre projet Apple.
Enregistrez vos applications pour utiliser App Check avec le fournisseur App Attest dans la App Check section de la Firebase console.
Vous devez généralement enregistrer toutes les applications de votre projet, car une fois que vous avez activé l'application pour un produit Firebase, seules les applications enregistrées pourront accéder aux ressources backend du produit.
Facultatif : Dans les paramètres d'enregistrement de l'application, définissez une durée de vie (TTL) personnalisée pour les jetons émis par le fournisseur.App Check Vous pouvez définir la durée de vie sur n'importe quelle valeur comprise entre 30 minutes et 7 jours. Lorsque vous modifiez cette valeur, tenez compte des compromis suivants :
- Sécurité : des durées de vie plus courtes offrent une sécurité renforcée, car elles réduisent la fenêtre pendant laquelle un jeton divulgué ou intercepté peut être utilisé à mauvais escient par un pirate informatique.
- Performances : des durées de vie plus courtes signifient que votre application effectuera l'attestation plus fréquemment. Étant donné que le processus d'attestation de l'application ajoute de la latence aux requêtes réseau chaque fois qu'il est effectué, une durée de vie courte peut avoir un impact sur les performances de votre application.
- Quota et coût : des durées de vie plus courtes et une nouvelle attestation fréquente épuisent votre quota plus rapidement et, pour les services payants, peuvent entraîner des coûts plus élevés. Consultez Quotas et limites.
La durée de vie par défaut de 1 heure est raisonnable pour la plupart des applications. Notez que la bibliothèque App Check actualise les jetons environ à la moitié de la durée de vie.
2. Ajouter la bibliothèque App Check à votre application
Utilisez Swift Package Manager pour installer et gérer les dépendances Firebase.
Dans Xcode, à partir de votre projet d'application ouvert, accédez à File > Add Packages (Fichier > Ajouter des packages), ajoutez le dépôt du SDK des plates-formes Apple Firebase (
https://github.com/firebase/firebase-ios-sdk) et choisissez la bibliothèque FirebaseAppCheck.Dans Xcode, ajoutez la fonctionnalité App Attest à votre application.
Dans le fichier
.entitlementsde votre projet, définissez l'environnement App Attest surproduction.
3. Initialiser App Check
Vous devez initialiser App Check avant d'utiliser d'autres Firebase SDK.
Commencez par écrire une implémentation de AppCheckProviderFactory. Les spécificités de votre implémentation dépendront de votre cas d'utilisation.
Par exemple, si vous n'avez que des utilisateurs sur iOS 14 et versions ultérieures, vous pouvez simplement toujours créer des objets AppAttestProvider :
Swift
Remarque : Ce produit Firebase n'est pas disponible sur les cibles watchOS.
class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return AppAttestProvider(app: app) } }
Objective-C
Remarque : Ce produit Firebase n'est pas disponible sur les cibles watchOS.
@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourSimpleAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { return [[FIRAppAttestProvider alloc] initWithApp:app]; } @end
Vous pouvez également créer des objets AppAttestProvider sur iOS 14 et versions ultérieures, et revenir à DeviceCheckProvider sur les versions antérieures :
Swift
Remarque : Ce produit Firebase n'est pas disponible sur les cibles watchOS.
class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { if #available(iOS 14.0, *) { return AppAttestProvider(app: app) } else { return DeviceCheckProvider(app: app) } } }
Objective-C
Remarque : Ce produit Firebase n'est pas disponible sur les cibles watchOS.
@interface YourAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { if (@available(iOS 14.0, *)) { return [[FIRAppAttestProvider alloc] initWithApp:app]; } else { return [[FIRDeviceCheckProvider alloc] initWithApp:app]; } } @end
Une fois que vous avez implémenté une classe AppCheckProviderFactory, configurez
App Check pour l'utiliser :
Swift
Remarque : Ce produit Firebase n'est pas disponible sur les cibles watchOS.
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
Remarque : Ce produit Firebase n'est pas disponible sur les cibles watchOS.
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
É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 App Check jetons avec chaque requête adressée à Firebase, mais les produits Firebase 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 et activer l'application
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 App Check métriques pour les services que vous utilisez :
- Surveillez les métriques de requêtes App Check pour Firebase AI Logic, Data Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API et Places API (New).
- Surveillez les métriques de requêtes App Check pour Cloud Functions.
Activer l'application App Check
Lorsque vous comprenez l'impact de App Check sur vos utilisateurs et que vous êtes prêt à continuer, vous pouvez activer l'application App Check :
- Activez App Check l'application pour Firebase AI Logic, Data Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API et Places API (New).
- Activez App Check l'application pour Cloud Functions.
Utiliser App Check dans des environnements de débogage
Si, après avoir enregistré votre application pour App Check, vous souhaitez exécuter votre application dans un environnement que 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'un véritable fournisseur d'attestation.
Consultez Utiliser App Check avec le fournisseur de débogage sur les plates-formes Apple.