Auf dieser Seite erfahren Sie, wie Sie App Check in einer Web-App mithilfe des reCAPTCHA Enterprise-Anbieters aktivieren. Wenn Sie App Check aktivieren, tragen Sie dazu bei, dass nur Ihre App auf die Firebase-Ressourcen Ihres Projekts zugreifen kann. Sehen Sie sich eine Übersicht über diese Funktion an.
reCAPTCHA Enterprise ist ein kostenpflichtiger Dienst mit einem kostenlosen Kontingent. App Check unterstützt auch reCAPTCHA v3 , einen kostenlosen Dienst. Informationen zu den Unterschieden zwischen reCAPTCHA v3 und reCAPTCHA Enterprise finden Sie im Funktionsvergleich .
Beachten Sie, dass App Check reCAPTCHA Enterprise Score-basierte Websiteschlüssel verwendet, die es für Benutzer unsichtbar machen. Der reCAPTCHA Enterprise-Anbieter fordert die Benutzer zu keinem Zeitpunkt auf, eine Herausforderung zu lösen.
Wenn Sie App Check mit Ihrem eigenen benutzerdefinierten Anbieter verwenden möchten, finden Sie weitere Informationen unter Implementieren eines benutzerdefinierten App Check-Anbieters .
1. Richten Sie Ihr Firebase-Projekt ein
Fügen Sie Ihrem JavaScript-Projekt Firebase hinzu, falls Sie dies noch nicht getan haben.
Öffnen Sie den reCAPTCHA Enterprise- Abschnitt der Cloud-Konsole und gehen Sie wie folgt vor:
- Wenn Sie aufgefordert werden, die reCAPTCHA Enterprise API zu aktivieren, tun Sie dies.
- Erstellen Sie einen Schlüssel vom Typ Website . Sie müssen Domänen angeben, auf denen Sie Ihre Web-App hosten. Lassen Sie die Option "Checkbox-Challenge verwenden" deaktiviert .
Registrieren Sie Ihre Apps für die Verwendung von App Check beim reCAPTCHA Enterprise-Anbieter im App Check- Bereich der Firebase-Konsole. Sie müssen den Site-Schlüssel angeben, den Sie im vorherigen Schritt erhalten haben.
Normalerweise müssen Sie alle Apps Ihres Projekts registrieren, denn sobald Sie die Erzwingung für ein Firebase-Produkt aktivieren, können nur registrierte Apps auf die Back-End-Ressourcen des Produkts zugreifen.
Optional : Legen Sie in den App-Registrierungseinstellungen eine benutzerdefinierte Gültigkeitsdauer (Time-to-Live, TTL) für vom Anbieter ausgestellte App Check-Token fest. Sie können die TTL auf einen beliebigen Wert zwischen 30 Minuten und 7 Tagen einstellen. Beachten Sie beim Ändern dieses Werts die folgenden Kompromisse:
- Sicherheit: Kürzere TTLs bieten mehr Sicherheit, da sie das Fenster verkleinern, in dem ein durchgesickertes oder abgefangenes Token von einem Angreifer missbraucht werden kann.
- Leistung: Kürzere TTLs bedeuten, dass Ihre App die Bestätigung häufiger durchführt. Da der App-Bestätigungsprozess bei jeder Ausführung Latenz für Netzwerkanforderungen hinzufügt, kann eine kurze TTL die Leistung Ihrer App beeinträchtigen.
- Kontingent und Kosten: Kürzere TTLs und häufige Neubescheinigungen erschöpfen Ihr Kontingent schneller und kosten bei kostenpflichtigen Diensten möglicherweise mehr. Siehe Kontingente und Limits .
Die Standard-TTL von 1 Stunde ist für die meisten Apps angemessen. Beachten Sie, dass die App Check-Bibliothek Token bei etwa der Hälfte der TTL-Dauer aktualisiert.
2. Fügen Sie Ihrer App die App Check-Bibliothek hinzu
Fügen Sie Ihrer Web-App Firebase hinzu, falls Sie dies noch nicht getan haben. Stellen Sie sicher, dass Sie die App Check-Bibliothek importieren.
3. App-Check initialisieren
Fügen Sie Ihrer Anwendung den folgenden Initialisierungscode hinzu, bevor Sie auf Firebase-Dienste zugreifen. Sie müssen Ihren reCAPTCHA Enterprise-Site-Schlüssel übergeben, den Sie in der Cloud-Konsole erstellt haben, um activate()
.
Web version 9
const { initializeApp } = require("firebase/app"); const { initializeAppCheck, ReCaptchaEnterpriseProvider } = require("firebase/app-check"); const app = initializeApp({ // Your Firebase configuration object. }); // Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise // site key and pass it to initializeAppCheck(). const appCheck = initializeAppCheck(app, { provider: new ReCaptchaEnterpriseProvider(/* reCAPTCHA Enterprise site key */), isTokenAutoRefreshEnabled: true // Set to true to allow auto-refresh. });
Web version 8
firebase.initializeApp({ // Your Firebase configuration object. }); // Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise // site key and pass it to activate(). const appCheck = firebase.appCheck(); appCheck.activate( new firebase.appCheck.ReCaptchaEnterpriseProvider( /* reCAPTCHA Enterprise site key */ ), true // Set to true to allow auto-refresh. );
Nächste Schritte
Sobald die App Check-Bibliothek in Ihrer App installiert ist, stellen Sie sie bereit.
Die aktualisierte Client-App beginnt mit dem Senden von App-Check-Tokens zusammen mit jeder Anfrage, die sie an Firebase sendet, aber Firebase-Produkte verlangen nicht, dass die Tokens gültig sind, bis Sie die Erzwingung im Abschnitt „App-Check“ der Firebase-Konsole aktivieren.
Überwachen Sie Metriken und aktivieren Sie die Durchsetzung
Bevor Sie die Erzwingung aktivieren, sollten Sie jedoch sicherstellen, dass dadurch Ihre vorhandenen legitimen Benutzer nicht gestört werden. Wenn Sie andererseits eine 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-Metriken für die von Ihnen verwendeten Dienste ansehen:
- Überwachen Sie App Check-Anfragemetriken für Realtime Database, Cloud Firestore und Cloud Storage.
- Überwachen Sie App Check-Anfragemetriken für Cloud Functions .
App-Check-Erzwingung aktivieren
Wenn Sie verstehen, wie sich App Check auf Ihre Benutzer auswirkt, und Sie fortfahren möchten, können Sie die Erzwingung von App Check aktivieren:
- Aktivieren Sie die Erzwingung der App-Prüfung für Realtime Database, Cloud Firestore und Cloud Storage.
- Aktivieren Sie die Erzwingung der App-Prüfung für Cloud Functions .
Verwenden Sie App Check in Debug-Umgebungen
Wenn Sie Ihre App nach der Registrierung für App Check in einer Umgebung ausführen möchten, die App Check normalerweise nicht als gültig einstufen würde, z. B. lokal während der Entwicklung oder in einer Continuous Integration (CI)-Umgebung, können Sie diese erstellen ein Debugbuild Ihrer App, der den App Check-Debuganbieter anstelle eines echten Nachweisanbieters verwendet.
Siehe Verwenden von App Check mit dem Debug-Anbieter in Web-Apps .
Hinweis zu den Kosten
App Check erstellt in Ihrem Namen eine Bewertung, um das Antworttoken des Benutzers jedes Mal zu validieren, wenn ein Browser, auf dem Ihre Web-App ausgeführt wird, sein App Check-Token aktualisiert. Ihrem Projekt wird jede über das kostenlose Kontingent hinaus erstellte Bewertung in Rechnung gestellt. Weitere Informationen finden Sie unter reCAPTCHA Enterprise-Preise .
Standardmäßig aktualisiert Ihre Web-App dieses Token zweimal alle 1 Stunde . Um zu steuern, wie oft Ihre App App Check-Token aktualisiert (und somit wie oft neue Bewertungen erstellt werden), konfigurieren Sie deren TTL .