Erste Schritte mit App Check mit reCAPTCHA Enterprise in Flutter-Apps

Plattform auswählen: iOS+ Android Web Flutter


Auf dieser Seite erfahren Sie, wie Sie App Check in einer Flutter-App mit dem reCAPTCHA Enterprise-Anbieter einrichten. App Check trägt dazu bei, dass nur Ihre App auf die Backend-Ressourcen Ihres Projekts zugreifen kann. Weitere InformationenApp Check

Für App Check sind auf dem Score basierende reCAPTCHA-Schlüssel erforderlich, die für Nutzer nicht sichtbar sind. Das bedeutet, dass der reCAPTCHA Enterprise-Anbieter Nutzer zu keinem Zeitpunkt auffordert, eine Aufgabe zu lösen.

Wenn für Ihren Anwendungsfall reCAPTCHA Enterprise-Funktionen erforderlich sind, die nicht von App Check implementiert werden, oder wenn Sie App Check mit Ihrem eigenen benutzerdefinierten Anbieter verwenden möchten, lesen Sie den Abschnitt Benutzerdefinierten App Check-Anbieter implementieren.

1. Das Firebase-Projekt einrichten

  1. Falls noch nicht geschehen, installieren und initialisieren Sie Firebase in Ihrem Flutter-Projekt.

  2. Rufen Sie in derGoogle CloudConsole die Seite Fraud Defense auf und gehen Sie für den reCAPTCHA Enterprise-Anbieter so vor:

    1. Achten Sie darauf, dass Sie sich im richtigen Projekt befinden (siehe Projektauswahl oben auf dem Bildschirm).

    2. Aktivieren Sie bei entsprechender Aufforderung die reCAPTCHA Enterprise API.

    3. Erstellen Sie einen Schlüssel basierend auf Ihrer Zielplattform:

      iOS+

      Erstellen Sie einen Schlüssel vom Typ iOS und geben Sie die Paket-ID Ihrer App an (z. B. com.example.my_app).

      • Achten Sie darauf, dass Sie dieselbe Paket-ID eingeben, die Sie beim Erstellen Ihrer Firebase-Apple-App in Ihrem Firebase-Projekt angegeben haben. Beim Wert der Set-ID wird zwischen Groß- und Kleinschreibung unterschieden.

      • Bei App Check kann jede Paket-ID nur einem einzelnen reCAPTCHA-Schlüssel entsprechen.

      Android

      Erstellen Sie einen Schlüssel vom Typ Android und geben Sie den Paketnamen Ihrer App an (z. B. com.example.my_app).

      • Achten Sie darauf, dass Sie denselben Paketnamen eingeben, den Sie beim Erstellen Ihrer Firebase-Android-App in Ihrem Firebase-Projekt angegeben haben. Beim Wert des Paketnamens wird zwischen Groß- und Kleinschreibung unterschieden.

      • Für App Check kann jeder Paketname nur einem einzigen reCAPTCHA-Schlüssel entsprechen.

      Web

      Erstellen Sie einen Schlüssel vom Typ Web und geben Sie die einzelnen Domains für Ihre Web-Apps an.

      • App Check unterstützt nicht Web-Apps, die auf mehr als 250 Domains bereitgestellt werden.

      • Fügen Sie localhost niemals als Domain zu einem reCAPTCHA-Schlüssel hinzu, der in der Produktion bereitgestellt wird oder werden soll.

      • Lassen Sie die Option „Checkbox-Challenge verwenden“ deaktiviert.

      Eine detaillierte Anleitung finden Sie unter Schlüssel für reCAPTCHA-basierte Scores erstellen.

    4. Notieren Sie sich die einzelnen Schlüssel. Sie müssen sie in der Firebase-Konsole in den Registrierungsablauf einfügen.

  3. Rufen Sie in der Firebase-Konsole Sicherheit > App Check auf.

  4. Registrieren Sie auf dem Tab Apps jede Ihrer Zielplattform-Apps für die Verwendung von App Check mit dem reCAPTCHA Enterprise-Anbieter. Sie müssen den Schlüssel angeben, den Sie in der Google Cloud-Konsole erhalten haben.

  5. Optional: Legen Sie die Gültigkeitsdauer (Time To Live, TTL) für das Token fest.

    Legen Sie in den Einstellungen für die App-Registrierung eine benutzerdefinierte Gültigkeitsdauer (Time to Live, TTL) für App Check-Tokens fest, die vom Anbieter ausgestellt werden. Sie können die TTL auf einen beliebigen Wert zwischen 30 Minuten und 7 Tagen festlegen. Beachten Sie beim Ändern dieses Werts die folgenden Kompromisse:

    Die Standard-TTL von 1 Stunde ist für die meisten Apps angemessen. Die App Check-Bibliothek aktualisiert Tokens etwa nach der Hälfte der TTL-Dauer.

  6. Optional: Erweiterte Einstellungen konfigurieren

  7. Klicken Sie auf Speichern.

(Optional) Erweiterte Einstellungen konfigurieren

Wenn ein Nutzer Ihre App öffnet, bewertet reCAPTCHA Enterprise das Risiko der Nutzerinteraktion unter dem Schlüssel und gibt eine Punktzahl zwischen 0,0 und 1,0 in Schritten von 0,1 zurück.

  • Ein Wert von 0,0 bedeutet, dass die Interaktion ein hohes Risiko darstellt und betrügerisch sein kann.
  • Ein Wert von 1,0 bedeutet, dass die Interaktion ein geringes Risiko darstellt und sehr wahrscheinlich legitim ist.

Mit App Check können Sie einen App-Risikoschwellenwert konfigurieren, um Ihre Toleranz für dieses Risiko anzupassen.

In den meisten Anwendungsfällen wird der Standardgrenzwert von 0, 5 empfohlen. Wenn Ihr Anwendungsfall eine Anpassung erfordert, können Sie diesen Wert für jede Ihrer Apps in der Firebase-Konsole konfigurieren (Sicherheit > App Check). Wichtige Überlegungen zur Konfiguration des App-Risikoschwellenwerts finden Sie unten.

2. App Check-Plug-in zur App hinzufügen

Wenn Sie den reCAPTCHA Enterprise-Anbieter verwenden möchten, müssen Sie das entsprechende App Check-Plug-in hinzufügen.

  1. Führen Sie im Stammverzeichnis Ihres Flutter-Projekts den folgenden Befehl aus, um das Plug-in zu installieren:

    flutter pub add firebase_app_check
    
  2. Wenn Sie fertig sind, erstellen Sie Ihr Flutter-Projekt neu:

    flutter run
    

3. App Check initialisieren

In Ihrer App müssen Sie App Check initialisieren, bevor Sie andere Firebase-Dienste verwenden.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  await FirebaseAppCheck.instance.activate(
    providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
    providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
    providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
  );
  runApp(App());
}

4. Messwerte im Blick behalten und Erzwingung aktivieren

Nachdem Sie App Check in Ihrer App eingerichtet haben, können Sie die aktualisierte App für Ihre Nutzer bereitstellen.

Die aktualisierte Client-App beginnt, App Check-Tokens zusammen mit jeder Anfrage zu senden, die sie an Firebase richtet. App Check blockiert jedoch erst dann Anfragen mit ungültigen Tokens, wenn App Check erzwungen wird.

Messwerte überwachen

Bevor Sie die Erzwingung aktivieren, sollten Sie prüfen, ob dadurch Ihre bestehenden legitimen Nutzer beeinträchtigt werden. Wenn Sie jedoch verdächtige Nutzung Ihrer App-Ressourcen feststellen, sollten Sie die Erzwingung möglicherweise früher aktivieren.

Um diese Entscheidung zu treffen, können Sie sich die App Check-Messwerte für die von Ihnen verwendeten Dienste ansehen:

App Check-Erzwingung aktivieren

Wenn Sie wissen, wie sich App Check auf Ihre Nutzer auswirkt, und Sie bereit sind, fortzufahren, können Sie die Erzwingung von App Check aktivieren:

App Check in Debugging-Umgebungen verwenden

App Check klassifiziert einige Umgebungen als ungültig, z. B. Anfragen von einem Emulator / Simulator oder von localhost während der Entwicklung oder von einer Continuous Integration-Umgebung (CI).

Wenn Sie Ihre App nach der Erzwingung von App Check in diesen Arten von Umgebungen ausführen möchten, müssen Sie einen Debug-Build Ihrer App erstellen, der den App Check-Debug-Anbieter anstelle eines Attestierungsanbieters für die Produktion verwendet.

Weitere Informationen finden Sie unter App Check mit dem Debugging-Anbieter in Flutter-Apps verwenden.

Preise

App Check erstellt in Ihrem Namen eine Bewertung, um das Antwort-Token des Nutzers jedes Mal zu validieren, wenn Ihre App das App Check-Token aktualisiert. Für jedes Assessment, das über das kostenlose Kontingent hinaus erstellt wird, fallen Kosten für Ihr Firebase-Projekt an. Weitere Informationen finden Sie unter reCAPTCHA-Preise.

Standardmäßig wird dieses Token zweimal pro Stunde aktualisiert. Wenn Sie festlegen möchten, wie oft Ihre App App Check-Tokens aktualisiert (und damit, wie oft neue Bewertungen erstellt) werden, können Sie die TTL für das Token konfigurieren.