API-Schlüssel mit App Check schützen
Firebase App Check schützt Anrufe von Ihrer App an die Google Maps Platform, indem es Zugriffe blockiert, die nicht von legitimen Apps stammen. Dazu wird ein Token von einem Attestierungsanbieter wie reCAPTCHA Enterprise geprüft. Wenn Sie Ihre Apps in App Check einbinden, können Sie sich vor böswilligen Anfragen schützen und Ihnen werden keine Kosten für nicht autorisierte API-Aufrufe in Rechnung gestellt.
Ist App Check das Richtige für mich?
App Check wird in den meisten Fällen empfohlen. In den folgenden Fällen ist App Check jedoch nicht erforderlich oder wird nicht unterstützt:
- Private oder experimentelle Apps. Wenn Ihre App nicht öffentlich zugänglich ist, ist App Check nicht erforderlich.
- Wenn Ihre App nur für die Server-zu-Server-Kommunikation verwendet wird, ist App Check nicht erforderlich. Wenn der Server, der mit der Google Maps Platform kommuniziert, jedoch von öffentlichen Clients (z. B. mobilen Apps) verwendet wird, sollten Sie App Check verwenden, um diesen Server zu schützen anstelle der Google Maps Platform.
Übersicht über die Implementierungsschritte
Im Wesentlichen sind das die Schritte, die Sie ausführen müssen, um Ihre App in App Check einzubinden:
- Fügen Sie Ihrer Anwendung Firebase hinzu.
- Fügen Sie die App Check-Bibliothek hinzu und initialisieren Sie sie.
- Fügen Sie Ihrer App den Tokenanbieter hinzu.
- Initialisieren Sie die Maps JS API und die App Check API.
- Aktivieren Sie das Debugging.
- Überwachen Sie die Anfragen Ihrer App und entscheiden Sie, ob Sie die Erzwingung aktivieren möchten.
Nachdem Sie App Check eingebunden haben, können Sie in der Firebase Console Messwerte zum Backend-Traffic aufrufen. Diese Messwerte enthalten eine Aufschlüsselung der Anfragen danach, ob sie ein gültiges App Check-Token enthalten. Weitere Informationen finden Sie in der Dokumentation zu Firebase App Check.
Wenn Sie sicher sind, dass die meisten Anfragen von legitimen Quellen stammen und dass die Nutzer auf die neueste Version Ihrer App aktualisiert haben, die Ihre Implementierung von App Check enthält, können Sie die Erzwingung aktivieren. Wenn die Erzwingung aktiviert ist, lehnt App Check alle Zugriffe ohne gültiges App Check-Token ab.
Überlegungen bei der Planung einer App Check-Einbindung
Hier sind einige Punkte, die Sie bei der Planung der Einbindung berücksichtigen sollten:
- Einer der von uns empfohlenen Attestierungsanbieter, reCAPTCHA Enterprise,berechnet Kosten für mehr als 10.000 Prüfungen pro Monat.
Der andere von uns empfohlene Attestierungsanbieter, reCAPTCHA, Version 3, hat ein Kontingent, nach dem der Traffic nicht mehr ausgewertet wird.
Sie können auch einen benutzerdefinierten Attestierungsanbieter verwenden. Dies ist jedoch ein fortgeschrittener Anwendungsfall. Weitere Informationen finden Sie in der App Check-Dokumentation.
-
Nutzer Ihrer App werden beim Start eine gewisse Latenz feststellen. Danach erfolgt die regelmäßige erneute Attestierung im Hintergrund und die Nutzer sollten keine Latenz mehr feststellen. Die genaue Latenz beim Start hängt vom ausgewählten Attestierungsanbieter ab.
Die Gültigkeitsdauer des App Check-Tokens (die Gültigkeitsdauer oder TTL) bestimmt die Häufigkeit der erneuten Attestierungen. Diese Dauer kann in der Firebase Console konfiguriert werden. Die erneute Attestierung erfolgt, wenn etwa die Hälfte der Gültigkeitsdauer abgelaufen ist. Weitere Informationen finden Sie in der Firebase-Dokumentation für Ihren Attestierungsanbieter.
App in App Check einbinden
Voraussetzungen und Anforderungen
- Eine App, in der die neueste wöchentliche oder vierteljährliche Version der Maps JS API und der Core-Bibliotheken geladen ist.
- Ein Cloud-Projekt, in dem die Maps JS API aktiviert ist.
- Sie müssen der Inhaber der App in der Cloud Console sein.
- Sie benötigen die Projekt-ID der App aus der Cloud Console.
Schritt 1: Firebase zu Ihrer App hinzufügen
Folgen Sie der Anleitung in der Firebase-Entwicklerdokumentation, um Ihrer App Firebase hinzuzufügen.
Schritt 2: App Check-Bibliothek hinzufügen und App Check initialisieren
Firebase bietet Anleitungen für jeden Standard-Attestierungsanbieter. In diesen Anleitungen wird beschrieben, wie Sie ein Firebase-Projekt einrichten und Ihrer App die App Check-Bibliothek hinzufügen. Folgen Sie den Codebeispielen, um App Check zu initialisieren.
Schritt 3: Maps JS API-Bibliotheken laden
Laden Sie die Core- und Maps-Bibliotheken wie im folgenden Snippet gezeigt. Weitere Informationen und Anleitungen finden Sie in der Dokumentation zur Maps JavaScript API.
async function init() { const {Settings} = await google.maps.importLibrary('core'); const {Map} = await google.maps.importLibrary('maps'); }
Schritt 4: Maps API und App Check API initialisieren
- Initialisieren Sie App Check mit der Konfiguration, die von der Firebase Console bereitgestellt wird.
- Achten Sie darauf, dass Anfragen an die Maps JS API App Check-Tokens enthalten:
import {initializeApp} from 'firebase/app'; import { getToken, initializeAppCheck, ReCaptchaEnterpriseProvider, } from 'firebase/app-check'; async function init() { const {Settings} = await google.maps.importLibrary('core'); const {Map} = await google.maps.importLibrary('maps'); const app = initializeApp({ // Your firebase configuration object }); // Pass your reCAPTCHA Enterprise site key to initializeAppCheck(). const appCheck = initializeAppCheck(app, { provider: new ReCaptchaEnterpriseProvider( 'abcdefghijklmnopqrstuvwxy-1234567890abcd', ), // Optional argument. If true, the SDK automatically refreshes App Check // tokens as needed. isTokenAutoRefreshEnabled: true, }); Settings.getInstance().fetchAppCheckToken = () => getToken(appCheck, /* forceRefresh = */ false); // Load a map map = new Map(document.getElementById("map"), { center: { lat: 37.4161493, lng: -122.0812166 }, zoom: 8, }); }
Schritt 5: Debugging aktivieren (optional)
Wenn Sie Ihre App lokal entwickeln und testen oder in einer Continuous Integration-Umgebung (CI) ausführen möchten, können Sie ein Debug-Build Ihrer App erstellen, das einen geheimen Debug-Schlüssel verwendet, um gültige App Check-Tokens zu erhalten. So können Sie in Ihrem Debug-Build auf echte Attestierungsanbieter verzichten.
So testen Sie Ihre App lokal:
- Aktivieren Sie den Debug-Anbieter für Entwicklungszwecke.
- Sie erhalten eine automatisch generierte zufällige UUID4 (in der App Check-Dokumentation als _Debug-Token_ bezeichnet) aus den Debug-Logs des SDK. Fügen Sie dieses Token der Firebase Console hinzu.
- Weitere Informationen und Anleitungen finden Sie in der App Check-Dokumentation.
So führen Sie Ihre App in einer CI-Umgebung aus:
- Generieren Sie eine zufällige UUID4 in der Firebase Console.
- Fügen Sie die UUID4 als Debug-Token hinzu und kopieren Sie sie dann in einen geheimen Speicher, auf den die CI-Tests pro Testlauf zugreifen.
- Weitere Informationen und Anleitungen finden Sie in der App Check-Dokumentation.
Schritt 6: Anfragen Ihrer App überwachen und Erzwingung aktivieren
Bevor Sie die Erzwingung aktivieren, sollten Sie sicherstellen, dass Sie legitime Nutzer Ihrer App nicht stören. Rufen Sie dazu den Bildschirm mit den App Check-Messwerten auf, um zu sehen, wie viel Prozent des Traffics Ihrer App bestätigt, veraltet oder unzulässig sind. Sobald Sie sehen, dass der Großteil Ihres Traffics bestätigt ist, können Sie die Erzwingung aktivieren.
Weitere Informationen und Anleitungen finden Sie in der Dokumentation zu Firebase App Check.