Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Aktivieren Sie App Check bei einem benutzerdefinierten Anbieter in Web-Apps

Diese Seite zeigt Ihnen , wie App Check in einer Web - Anwendung, mit ermöglichen , Ihre benutzerdefinierte App überprüfen Anbieter . Wenn Sie App Check aktivieren, tragen Sie dazu bei, dass nur Ihre App auf die Firebase-Ressourcen Ihres Projekts zugreifen kann.

Wenn Sie App überprüfen mit dem Standard - reCAPTCHA Anbieter verwenden möchten, siehe App aktivieren Prüfen Sie mit reCAPTCHA auf Web - Anwendungen .

Bevor Sie beginnen

1. Fügen Sie die App Check-Bibliothek zu Ihrer App hinzu

In Firebase zu Ihrem Web - App , wenn Sie nicht bereits haben. Achten Sie darauf, die App Check-Bibliothek zu importieren.

2. Erstellen Sie das App-Check-Provider-Objekt

Erstellen Sie ein App Check-Anbieterobjekt für Ihren benutzerdefinierten Anbieter. Diese Aufgabe muss eine haben getToken() Methode, die sammelt , was auch immer Informationen Ihrer benutzerdefinierten App überprüfen Anbieter als Echtheitsnachweis erforderlich ist , und sendet sie an Ihre Token Erwerb Service im Austausch für eine App prüfen Token. Die App prüfen SDK Griffe Token - Caching, so bekommt immer ein neues Token in Ihrer Implementierung von getToken() .

Webversion 9

const { CustomProvider } = require("firebase/app-check");

const appCheckCustomProvider = new CustomProvider({
  getToken: () => {
    return new Promise((resolve, _reject) => {
      // TODO: Logic to exchange proof of authenticity for an App Check token and
      // expiration time.

      // ...

      const appCheckToken = {
        token: tokenFromServer,
        expireTimeMillis: expirationFromServer * 1000
      };

      resolve(appCheckToken);
    });
  }
});

Webversion 8

const appCheckCustomProvider = {
  getToken: () => {
    return new Promise((resolve, _reject) => {
      // TODO: Logic to exchange proof of authenticity for an App Check token and
      // expiration time.

      // ...

      const appCheckToken = {
        token: tokenFromServer,
        expireTimeMillis: expirationFromServer * 1000
      };

      resolve(appCheckToken);
    });
  }
};

3. App-Check initialisieren

Fügen Sie Ihrer Anwendung den folgenden Initialisierungscode hinzu, bevor Sie auf Firebase-Dienste zugreifen:

Webversion 9

const { initializeApp } = require("firebase/app");
const { initializeAppCheck } = require("firebase/app-check");

const app = initializeApp({
  // Your firebase configuration object
});

const appCheck = initializeAppCheck(app, {
  provider: appCheckCustomProvider,

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  isTokenAutoRefreshEnabled: true    
});

Webversion 8

firebase.initializeApp({
  // Your firebase configuration object
});

const appCheck = firebase.appCheck();
appCheck.activate(
  appCheckCustomProvider,

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  true);

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 an Firebase, aber Firebase-Produkte benötigen die Token erst dann gültig, wenn Sie die Durchsetzung im App Check-Bereich der Firebase-Konsole aktivieren. Weitere Informationen finden Sie in den nächsten beiden Abschnitten.

4. Anforderungsmetriken überwachen

Da sich Ihre aktualisierte App nun in den Händen der Benutzer befindet, können Sie die Durchsetzung der App-Prüfung für die von Ihnen verwendeten Firebase-Produkte aktivieren. Bevor Sie dies tun, sollten Sie jedoch sicherstellen, dass Ihre bestehenden legitimen Benutzer dadurch nicht gestört werden.

Echtzeit-Datenbank und Cloud-Speicher

Ein wichtiges Tool, mit dem Sie diese Entscheidung für Echtzeitdatenbank und Cloud-Speicher treffen können, ist der Bildschirm mit den App-Check-Anforderungsmetriken.

Die App prüfen Anfrage Metriken für ein Produkt, öffnen Sie das sehen , Projekteinstellungen> App überprüfen Abschnitt der Konsole Firebase. Zum Beispiel:

Screenshot der Seite mit den App-Check-Metriken

Die Anforderungsmetriken für jedes Produkt sind in vier Kategorien unterteilt:

  • Verifizierte Anfragen sind diejenigen , die eine gültige App prüfen Token haben. Nachdem Sie die Durchsetzung der App-Prüfung aktiviert haben, werden nur Anforderungen in dieser Kategorie erfolgreich ausgeführt.

  • Veraltete Client - Anfragen sind diejenigen , die eine App überprüfen Token fehlen. Diese Anfragen stammen möglicherweise von einer älteren Version des Firebase SDK, bevor App Check in die App aufgenommen wurde.

  • Unbekannte Herkunft Anfragen sind diejenigen , die eine App prüfen Token fehlen, und nicht schauen , wie sie aus dem Firebase SDK kommen. Diese können von Anfragen mit gestohlenen API-Schlüsseln oder gefälschten Anfragen ohne das Firebase SDK stammen.

  • Ungültige Anfragen sind diejenigen , die eine ungültige App überprüfen Token, die von einem unechten Client sein könnten versuchen , Ihre App zu imitieren, oder von emulierten Umgebungen.

Die Verteilung dieser Kategorien für Ihre App sollte Sie informieren, wenn Sie sich entscheiden, die Durchsetzung zu aktivieren. Hier sind einige Richtlinien:

  • Wenn fast alle der letzten Anfragen von verifizierten Clients stammen, sollten Sie die Durchsetzung aktivieren, um Ihre Back-End-Ressourcen zu schützen.

  • Wenn ein erheblicher Teil der jüngsten Anfragen von wahrscheinlich veralteten Clients stammt, sollten Sie warten, bis weitere Benutzer Ihre App aktualisieren, bevor Sie die Erzwingung aktivieren, um eine Störung der Benutzer zu vermeiden. Durch das Erzwingen der App-Überprüfung für eine veröffentlichte App werden frühere App-Versionen unterbrochen, die nicht in das App Check-SDK integriert sind.

  • Wenn Ihre App noch nicht gestartet wurde, sollten Sie die App-Check-Erzwingung sofort aktivieren, da keine veralteten Clients verwendet werden.

Cloud-Funktionen

Für Cloud Functions können Sie App Check-Messwerte abrufen, indem Sie die Logs Ihrer Funktionen untersuchen. Jeder Aufruf einer Callable Function gibt einen strukturierten Log-Eintrag wie im folgenden Beispiel aus:

{
  "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
    }
  }
}

Sie können diese Messwerte in der Google Cloud Console analysieren , indem sie die Schaffung eines Logs basierten Zähler Metrik mit dem folgenden metrischen Filter:

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

Beschriften die Metrik unter Verwendung des Feldes jsonPayload.verifications.appCheck .

5. Durchsetzung aktivieren

Um die Durchsetzung zu aktivieren, befolgen Sie die Anweisungen für jedes Produkt unten. Sobald Sie die Durchsetzung für ein Produkt aktivieren, werden alle unbestätigten Anfragen an dieses Produkt abgelehnt.

Echtzeit-Datenbank und Cloud-Speicher

So aktivieren Sie die Durchsetzung für Realtime Database und Cloud Storage:

  1. Öffnen Sie die Projekteinstellungen> App überprüfen Abschnitt der Konsole Firebase.

  2. Erweitern Sie die Messwertansicht des Produkts, für das Sie die Durchsetzung aktivieren möchten.

  3. Klicken Sie Erzwingen und bestätigen Sie Ihre Auswahl.

Beachten Sie, dass es nach der Aktivierung der Durchsetzung bis zu 10 Minuten dauern kann, bis sie wirksam wird.

Cloud-Funktionen

Siehe Aktivieren App Überprüfen Durchsetzung für Cloud - Funktionen .