Firebase App Check implementieren, um APIs vor nicht autorisierten Clients zu schützen

Wenn Sie eine API direkt über eine mobile App oder Web-App aufrufen (z. B. die APIs, die Zugriff auf generative KI-Modelle ermöglichen), ist die API anfällig für Missbrauch durch nicht autorisierte Clients. Um diese APIs zu schützen, können Sie mit Firebase App Check prüfen, ob alle eingehenden API-Aufrufe von Ihrer tatsächlichen App stammen.

Firebase AI Logic bietet ein Proxy-Gateway, mit dem Sie Firebase App Check einbinden und die APIs für generative KI-Modelle schützen können, die von Ihren mobilen Apps und Web-Apps aufgerufen werden. Wenn Sie App Check mit den Firebase AI Logic SDKs verwenden, werden alle unsere Konfigurationen unterstützt:

  • Schutz für beide "Gemini API"-Anbieter: Gemini Developer API und Vertex AI Gemini API.

  • Schutz für alle unterstützten Modelle, sowohl Gemini Modelle als auch Imagen Modelle.

Allgemeine Zusammenfassung der Funktionsweise von App Check

Mit App Check verwenden Geräte, auf denen Ihre App ausgeführt wird, einen App- oder Geräte-Attestierungsanbieter , der eine oder beide der folgenden Bedingungen überprüft:

  • Anfragen stammen von Ihrer authentischen App
  • Anfragen stammen von einem authentischen, nicht manipulierten Gerät

Diese Attestierung wird jeder Anfrage angehängt, die Ihre App mit einem Firebase AI Logic SDK stellt. Wenn Sie die Erzwingung von App Check aktivieren, werden Anfragen von Clients ohne gültige Attestierung abgelehnt. Das gilt auch für Anfragen, die von einer App oder Plattform stammen, die Sie nicht autorisiert haben.

Wir empfehlen, sich bei der Einrichtung von App Check auf den kommenden erweiterten Schutz vorzubereiten (bekannt als Schutz vor Wiederholungsangriffen).

Ausführliche Informationen zu App Check, einschließlich Kontingenten und Limits, finden Sie in der Dokumentation.

Verfügbare Anbieter und Implementierungsanleitung

In der App Check Dokumentation finden Sie Beschreibungen der Attestierungsanbieter sowie eine Implementierungsanleitung.

  1. Wählen Sie einen Standardanbieter aus und folgen Sie der Implementierungsanleitung unter den folgenden Links:

    Wenn keiner der Standardanbieter Ihren Anforderungen entspricht, können Sie einen benutzerdefinierten Anbieter implementieren , der entweder einen Attestierungsanbieter eines Drittanbieters oder Ihre eigenen Attestierungs techniken verwendet.

  2. (Empfohlen) Bereiten Sie sich auf den kommenden erweiterten Schutz von App Check vor (Schutz vor Wiederholungsangriffen).

  3. (Erforderlich) Bevor Sie Ihre App für echte Nutzer freigeben, aktivieren Sie die Erzwingung von App Check.

Spezielle Instanziierung für Flutter erforderlich

Klicken Sie auf Ihren Gemini API Anbieter, um anbieterspezifische Inhalte und Code auf dieser Seite aufzurufen.

Wenn Sie App Check mit Firebase AI Logic in Flutter-Apps verwenden, müssen Sie App Check bei der Instanziierung explizit übergeben, wie hier gezeigt:App Check

// ...

final ai = await FirebaseAI.googleAI(
  appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);

// ...

Auf den kommenden erweiterten Schutz vorbereiten

Die Verwendung von Tokens mit eingeschränkter Nutzung wird für Apple-Plattformen (Version 12.2.0 und höher), Android (Version 17.2.0 und höher, Materialliste Version 34.2.0 und höher), Web (Version 12.3.0 und höher) und Flutter (Version 3.2.0 und höher, Materialliste Version 4.2.0 und höher) unterstützt. Die Unterstützung für Unity folgt in Kürze.

Standardmäßig verwendet App Check Sitzungstokens mit einer konfigurierbaren Gültigkeitsdauer (Time-to-Live, TTL) zwischen 30 Minuten und 7 Tagen. Diese Sitzungstokens werden vom App Check SDK im Cache gespeichert und mit Anfragen von Ihrer App gesendet.

In Zukunft wird App Check die Option hinzufügen, den Schutz vor Wiederholungsangriffen für Firebase AI Logic zu aktivieren (ähnlich der Unterstützung, die App Check bereits bietet für einige andere Ressourcen). Wenn der Schutz vor Wiederholungsangriffen aktiviert ist, wird der Schutz auf folgende Weise verbessert:

  • App Check lässt nur Anfragen zu, die ein spezielles Token enthalten, das als Token mit eingeschränkter Nutzung bezeichnet wird.

  • Nachdem das Token mit eingeschränkter Nutzung verifiziert wurde, wird es verwendet, damit es nur einmal verwendet werden kann. So werden Wiederholungsangriffe verhindert.

Um sich auf den Schutz vor Wiederholungsangriffen vorzubereiten, empfehlen wir, die Verwendung von Tokens mit eingeschränkter Nutzung zu aktivieren , wenn Sie App Check einrichten.App Check Wenn der Schutz vor Wiederholungsangriffen verfügbar ist, können Sie ihn so früher aktivieren, da mehr Ihrer Nutzer Versionen Ihrer App verwenden, die Tokens mit eingeschränkter Nutzung senden.

Beachten Sie Folgendes, wenn Sie die Verwendung von Tokens mit eingeschränkter Nutzung in Ihrer App jetzt aktivieren (während der Schutz vor Wiederholungsangriffen noch nicht verfügbar ist):

  • App Check blockiert die Verwendung von gültigen Sitzungstokens nicht.

  • Wie Sitzungstokens werden auch Tokens mit eingeschränkter Nutzung vom App Check SDK im Cache gespeichert und mit Anfragen gesendet. Diese Tokens mit eingeschränkter Nutzung bieten einen geringen zusätzlichen Schutz im Vergleich zu den Standard-Sitzungstokens , da sie eine kürzere Gültigkeitsdauer haben (nur 5 Minuten und nicht anpassbar).

  • Obwohl Tokens mit eingeschränkter Nutzung 5 Minuten lang gültig sind, generiert das SDK für jede Anfrage ein neues Token. Dieser Vorgang kann die Latenz Ihrer Anfrage erhöhen.

Wenn der Schutz vor Wiederholungsangriffen in Zukunft für Firebase AI Logic in der Zukunft verfügbar ist und Sie ihn aktivieren, ist die Verwendung von Sitzungstokens und die Wiederverwendung von Tokens mit eingeschränkter Nutzung nicht möglich. Die zusätzliche Latenz beim Generieren eines neuen Tokens für jede Anfrage bleibt jedoch bestehen.

Verwendung von Tokens mit eingeschränkter Nutzung aktivieren

Klicken Sie auf Ihren Gemini API Anbieter, um anbieterspezifische Inhalte und Code auf dieser Seite aufzurufen.

So aktivieren Sie die Verwendung von Tokens mit eingeschränkter Nutzung:

  1. Implementieren Sie App Check und achten Sie darauf, dass Sie die Erzwingung App Check für Ihre App aktiviert haben.

  2. Aktivieren Sie in Ihrer App bei der Instanziierung die Verwendung von Tokens mit eingeschränkter Nutzung, indem Sie den Parameter useLimitedUseAppCheckTokens auf true setzen:

    Swift

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    let ai = FirebaseAI.firebaseAI(
      backend: .googleAI(),
      useLimitedUseAppCheckTokens: true
    )
    
    // ...
    
    

    Kotlin

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    val ai = Firebase.ai(
      backend = GenerativeBackend.googleAI(),
      useLimitedUseAppCheckTokens = true
    )
    
    // ...
    
    

    Java

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    FirebaseAI ai = FirebaseAI.getInstance(
      /* backend: */ GenerativeBackend.googleAI(),
      /* useLimitedUseAppCheckTokens: */ true
    );
    
    // ...
    
    

    Web

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    const ai = getAI(firebaseApp, {
      backend: new GoogleAIBackend(),
      useLimitedUseAppCheckTokens: true
    });
    
    // ...
    
    

    Dart

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    final ai = await FirebaseAI.googleAI(
      appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
      useLimitedUseAppCheckTokens: true,
    );
    
    // ...
    
    

    Einheit

    Die Verwendung von Tokens mit eingeschränkter Nutzung mit Unity-Spielen wird in einer zukünftigen Version unterstützt. Schauen Sie später noch einmal vorbei!

Funktionsweise der Integration von Firebase AI Logic in App Check

Um die Firebase AI Logic SDKs zu verwenden, muss die Firebase AI Logic API (firebasevertexai.googleapis.com) in Ihrem Firebase-Projekt aktiviert sein. Das liegt daran, dass Anfragen, die von den Firebase AI Logic SDKs gestellt werden, zuerst an den Firebase AI Logic Server gesendet werden, der als Proxy-Gateway fungiert. Dort findet die Firebase App Check Verifizierung statt, bevor die Anfrage an das Backend des ausgewählten "Gemini API"-Anbieters und die APIs für den Zugriff auf die Gemini und Imagen Modelle weitergeleitet wird.