API-Schlüssel mit App Check schützen
Firebase App Check schützt Aufrufe von Ihrer App an die Google Maps Platform, indem Traffic von anderen Quellen als legitimen Apps blockiert wird. Dazu wird nach einem Token von einem Attestierungsanbieter wie reCAPTCHA Enterprise gesucht. Wenn Sie Ihre Apps in App Check einbinden, können Sie sich vor schädlichen Anfragen schützen und werden nicht für nicht autorisierte API-Aufrufe belastet.
Ist App Check das Richtige für mich?
App Check wird in den meisten Fällen empfohlen, ist jedoch in den folgenden Fällen nicht erforderlich oder wird nicht unterstützt:
- Sie verwenden das ursprüngliche Places SDK. App Check wird nur für das Places SDK (New) unterstützt.
- Interne 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 GMP kommuniziert, jedoch von öffentlichen Clients (z. B. mobilen Apps) verwendet wird, sollten Sie App Check verwenden, um diesen Server zu schützen, anstatt GMP zu verwenden.
Übersicht über die Implementierungsschritte
Auf übergeordneter Ebene sind die folgenden Schritte erforderlich, um Ihre App in App Check zu integrieren:
- Fügen Sie Ihrer Anwendung Firebase hinzu.
- Fügen Sie die App Check-Bibliothek hinzu und initialisieren Sie sie.
- Fügen Sie den Tokenanbieter Ihrer App hinzu.
- Places API und App Check API initialisieren
- Aktivieren Sie das Debugging.
- App-Anfragen im Blick behalten und über Maßnahmen entscheiden
Nach der Einbindung von App Check können Sie in der Firebase Console Messwerte zum Backend-Traffic sehen. Diese Messwerte enthalten eine Aufschlüsselung der Anfragen danach, ob sie von einem gültigen App Check-Token begleitet werden. Weitere Informationen finden Sie in der Dokumentation zu Firebase App Check.
Wenn Sie sicher sind, dass die meisten Anfragen von legitimen Quellen stammen und Nutzer die aktuelle Version Ihrer App mit Ihrer Implementierung von App Check installiert haben, 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-Integration
Hier sind einige Punkte, die Sie bei der Planung Ihrer Integration berücksichtigen sollten:
- Einer der von uns empfohlenen Attestierungsanbieter, reCAPTCHA Enterprise,berechnet Gebühren für mehr als 10.000 Bewertungen pro Monat.
Der andere von uns empfohlene Attestierungsanbieter, reCAPTCHA V3, hat ein Kontingent, nach dessen Erreichen der Traffic nicht mehr bewertet wird.
Sie können einen benutzerdefinierten Attestierungsanbieter verwenden. Dies ist jedoch ein erweiterter Anwendungsfall. Weitere Informationen finden Sie in der Dokumentation zu App Check.
-
Nutzer Ihrer App werden beim Start eine gewisse Latenz feststellen. Danach erfolgt die regelmäßige erneute Bestätigung im Hintergrund und Nutzer sollten keine Latenz mehr bemerken. Die genaue Latenz beim Start hängt vom ausgewählten Attestierungsanbieter ab.
Die Gültigkeitsdauer des App Check-Tokens (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 TTL 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 aktuelle wöchentliche oder vierteljährliche Version der Maps JS API, die Core-Bibliothek und die Places-Bibliothek geladen sind.
- Ein Cloud-Projekt mit aktivierter Maps JavaScript API und Places API (New).
- 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 zur App hinzufügen
Folgen Sie der Anleitung in der Firebase-Entwicklerdokumentation, um Firebase zu Ihrer App hinzuzufügen.
Schritt 2: App Check-Bibliothek hinzufügen und App Check initialisieren
Firebase bietet Anleitungen für jeden Standard-Attestierungsanbieter. In dieser Anleitung erfahren Sie, wie Sie ein Firebase-Projekt einrichten und die App Check-Bibliothek zu Ihrer App hinzufügen. Folgen Sie den bereitgestellten Codebeispielen, um App Check zu initialisieren.
Schritt 3: Maps JS API-Bibliotheken laden
Laden Sie die Core-, Maps- und Places-Bibliotheken wie im folgenden Snippet gezeigt. Weitere Informationen und Anleitungen finden Sie in der Dokumentation zur Maps JavaScript API-Klasse „Place“.
async function init() { const {Settings} = await google.maps.importLibrary('core'); const {Map} = await google.maps.importLibrary('maps'); const {Place} = await google.maps.importLibrary('places'); }
Schritt 4: Places API und App Check API initialisieren
- Initialisieren Sie App Check mit der von der Firebase Console bereitgestellten Konfiguration.
- Achten Sie darauf, dass Anfragen an die Maps JS API von App Check-Tokens begleitet werden:
async function init() { const {Settings} = await google.maps.importLibrary('core'); const {Map} = await google.maps.importLibrary('maps'); const {Place} = await google.maps.importLibrary('places'); 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); // Make a Places JS request const place = new Place({id: 'ChIJN5Nz71W3j4ARhx5bwpTQEGg'}); await place.fetchFields({fields: ['*']}); // 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 CI-Umgebung (Continuous Integration) ausführen möchten, können Sie einen Debug-Build Ihrer App erstellen, der ein Debug-Secret verwendet, um gültige App Check-Tokens abzurufen. So können Sie vermeiden, dass in Ihrem Debug-Build echte Attestierungsanbieter verwendet werden.
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 Debugging-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 in der Firebase Console eine zufällige UUID4.
- Fügen Sie die UUID4 als Debug-Token hinzu und kopieren Sie sie dann in einen Secret-Speicher, auf den die CI-Tests pro Testlauf zugreifen.
- Weitere Informationen und Anleitungen finden Sie in der App Check-Dokumentation.
Schritt 6: App-Anfragen im Blick behalten und über Maßnahmen entscheiden
Bevor Sie mit der Erzwingung beginnen, sollten Sie sicherstellen, dass Sie legitime Nutzer Ihrer App nicht beeinträchtigen. Rufen Sie dazu den Bildschirm mit den App Check-Messwerten auf, um zu sehen, welcher Prozentsatz des Traffics Ihrer App verifiziert, veraltet oder illegitim ist. Sobald Sie sehen, dass der Großteil Ihres Traffics verifiziert ist, können Sie die Erzwingung aktivieren.
Weitere Informationen und Anleitungen finden Sie in der Dokumentation zu Firebase App Check.