Catch up on everthing we announced at this year's Firebase Summit. Learn more

Abilita App Check con App Attest su piattaforme Apple

Questa pagina mostra come abilitare App Check in un'app Apple, utilizzando il provider App Attest integrato. Quando abiliti App Check, contribuisci a garantire che solo la tua app possa accedere alle risorse Firebase del tuo progetto. Vedere una panoramica di questa funzione.

App Controlla usi App Attest per verificare che le richieste ai servizi Firebase sono provenienti da vostra autentica app. App Controllare attualmente non usa App attestare l'analisi del rischio di frode .

Se si desidera utilizzare App Verificare con il proprio provider personalizzato, vedere Implementare un App Controllare provider personalizzato .

1. Configura il tuo progetto Firebase

  1. Avrai bisogno di Xcode 12.5+ per usare App Attest.

  2. Aggiungere Firebase al progetto di Apple se non l'avete già fatto.

  3. Registrati tue app da usare App Verificare con il fornitore di App Attest nelle Impostazioni progetto> App Controllare la sezione della console Firebase.

    Di solito devi registrare tutte le app del tuo progetto, perché una volta abilitata l'applicazione per un prodotto Firebase, solo le app registrate potranno accedere alle risorse di backend del prodotto.

  4. Opzionale: Nelle impostazioni di registrazione app, impostare una consuetudine time-to-live (TTL) per App Controllare gettoni emessi dal provider. Puoi impostare il TTL su qualsiasi valore compreso tra 30 minuti e 7 giorni. Quando si modifica questo valore, prestare attenzione ai seguenti compromessi:

    • Sicurezza: TTL più brevi forniscono una sicurezza maggiore, perché riduce la finestra in cui un token trapelato o intercettato può essere abusato da un utente malintenzionato.
    • Prestazioni: TTL più brevi significano che la tua app eseguirà l'attestazione più frequentemente. Poiché il processo di attestazione dell'app aggiunge latenza alle richieste di rete ogni volta che viene eseguito, un breve TTL può influire sulle prestazioni della tua app.
    • Quota e costo: TTL più brevi e riattestazioni frequenti riducono la quota più velocemente e, per i servizi a pagamento, potenzialmente costano di più. Vedere quote e limiti .

    Il TTL predefinito di 1 ora è ragionevole per la maggior parte delle applicazioni. Si noti che la libreria App Check aggiorna i token a circa la metà della durata TTL.

2. Aggiungi la libreria App Check alla tua app

  1. Aggiungere la dipendenza per App Controllare del progetto Podfile :

    pod 'Firebase/AppCheck'

    Oppure, in alternativa, è possibile utilizzare Swift Package Manager , invece.

    Assicurati di utilizzare anche la versione più recente di qualsiasi altro SDK Firebase da cui dipendi.

  2. Eseguire pod install e aprire il creato .xcworkspace file.

  3. In Xcode, aggiungere la funzionalità di App attestare la vostra applicazione.

  4. In del progetto .entitlements file, impostare l'ambiente App attestano production .

3. Inizializza il controllo dell'app

Dovrai inizializzare App Check prima di utilizzare altri SDK Firebase.

In primo luogo, scrivere un'implementazione di AppCheckProviderFactory . Le specifiche della tua implementazione dipenderanno dal tuo caso d'uso.

Ad esempio, se si dispone solo gli utenti su iOS 14 e più tardi, si può semplicemente creare sempre AppAttestProvider oggetti:

Swift

Nota: Questo prodotto Firebase non è disponibile su obiettivi watchos.

class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return AppAttestProvider(app: app)
  }
}

Obiettivo-C

Nota: Questo prodotto Firebase non è disponibile su obiettivi watchos.

@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourSimpleAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app {
  return [[FIRAppAttestProvider alloc] initWithApp:app];
}

@end

In alternativa, è possibile creare AppAttestProvider oggetti su iOS 14 e più tardi, e ricadere a DeviceCheckProvider su versioni precedenti:

Swift

Nota: Questo prodotto Firebase non è disponibile su obiettivi 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)
    }
  }
}

Obiettivo-C

Nota: Questo prodotto Firebase non è disponibile su obiettivi 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

Dopo aver implementato un AppCheckProviderFactory di classe, configurare App Controllare per usarlo:

Swift

Nota: Questo prodotto Firebase non è disponibile su obiettivi watchos.

let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

Obiettivo-C

Nota: Questo prodotto Firebase non è disponibile su obiettivi watchos.

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

Una volta installata la libreria App Check nella tua app, inizia a distribuire l'app aggiornata ai tuoi utenti.

L'app client aggiornata inizierà a inviare token App Check insieme a ogni richiesta effettuata a Firebase, ma i prodotti Firebase non richiederanno che i token siano validi finché non abiliterai l'applicazione nella sezione App Check della console Firebase. Vedere le due sezioni successive per i dettagli.

5. Monitorare le metriche delle richieste

Ora che la tua app aggiornata è nelle mani degli utenti, puoi abilitare l'applicazione di App Check per i prodotti Firebase che utilizzi. Prima di farlo, tuttavia, dovresti assicurarti che ciò non interrompa i tuoi utenti legittimi esistenti.

Database in tempo reale, Cloud Firestore e Cloud Storage

Uno strumento importante che puoi utilizzare per prendere questa decisione per Realtime Database, Cloud Firestore e Cloud Storage è la schermata delle metriche di richiesta di App Check.

Per visualizzare l'applicazione Verificare richiesta metriche per un prodotto, aprire l'Impostazioni progetto> App Controllare la sezione della console Firebase. Per esempio:

Screenshot della pagina delle metriche di App Check

Le metriche di richiesta per ogni prodotto sono suddivise in quattro categorie:

  • Richieste verificati sono quelli che hanno un App valida Controllare token. Dopo aver abilitato l'applicazione di App Check, solo le richieste in questa categoria avranno esito positivo.

  • Le richieste dei client obsoleti sono quelli che mancano un App Controllare token. Queste richieste potrebbero provenire da una versione precedente dell'SDK Firebase prima che App Check fosse incluso nell'app.

  • Le richieste di origine sconosciuta sono quelli che mancano un App Controllare token e non sembrano provengono dalla Firebase SDK. Questi potrebbero provenire da richieste effettuate con chiavi API rubate o richieste contraffatte effettuate senza l'SDK Firebase.

  • Richieste non valide sono quelle che hanno un'App non valida Controllare token, che potrebbe essere da un client non autentica di tentare di impersonare la vostra applicazione, o da ambienti emulati.

La distribuzione di queste categorie per la tua app dovrebbe informare quando decidi di abilitare l'applicazione. Ecco alcune linee guida:

  • Se quasi tutte le richieste recenti provengono da client verificati, considera di abilitare l'applicazione per iniziare a proteggere le tue risorse di backend.

  • Se una parte significativa delle richieste recenti proviene da client probabilmente obsoleti, per evitare di disturbare gli utenti, valuta di attendere che più utenti aggiornino la tua app prima di abilitare l'applicazione. L'applicazione di App Check su un'app rilasciata interromperà le versioni precedenti dell'app che non sono integrate con App Check SDK.

  • Se la tua app non è stata ancora avviata, dovresti abilitare immediatamente l'applicazione di App Check, poiché non ci sono client obsoleti in uso.

Funzioni cloud

Per Cloud Functions, puoi ottenere le metriche di App Check esaminando i log delle tue funzioni. Ogni chiamata di una funzione richiamabile emette una voce di log strutturata come nell'esempio seguente:

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

È possibile analizzare queste metriche nel Cloud Console di Google per la creazione di un log-based contatore metrica con il seguente filtro metrica:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

Etichettare la metrica utilizzando il campo jsonPayload.verifications.appCheck .

6. Abilita l'applicazione

Per abilitare l'applicazione, seguire le istruzioni per ciascun prodotto, di seguito. Una volta abilitata l'applicazione per un prodotto, tutte le richieste non verificate a quel prodotto verranno respinte.

Database in tempo reale, Cloud Firestore e Cloud Storage

Per abilitare l'applicazione per Realtime Database, Cloud Firestore (iOS e Android) e Cloud Storage:

  1. Aprire il Controllo Impostazioni progetto> App sezione della console Firebase.

  2. Espandi la visualizzazione delle metriche del prodotto per il quale desideri abilitare l'applicazione.

  3. Fare clic su Applica e confermare la scelta.

Tieni presente che possono essere necessari fino a 10 minuti dopo l'attivazione dell'applicazione affinché abbia effetto.

Funzioni cloud

Vedere Abilita App Verificare l'applicazione per le funzioni cloud .

Prossimi passi

Se, dopo aver registrato la tua app per App Check, desideri eseguire la tua app in un ambiente che App Check normalmente non classificherebbe come valido, ad esempio un simulatore durante lo sviluppo, o da un ambiente di integrazione continua (CI), puoi crea una build di debug della tua app che usi il provider di debug di App Check invece di un vero provider di attestazione.

Vedere Utilizzare App Verificare con il provider di debug su piattaforme Apple .