API-Schlüssel mit App Check schützen
Firebase App Check schützt Aufrufe von Ihrer App an die Google Maps Platform, indem Traffic blockiert wird, der nicht von legitimen Apps stammt. Dazu wird nach einem Token von einem Attestierungsanbieter wie reCAPTCHA Enterprise gesucht. Wenn Sie Ihre Apps in App Check integrieren, können Sie sich vor schädlichen Anfragen schützen und werden nicht für nicht autorisierte API-Aufrufe in Rechnung gestellt.
Ist App Check für mich geeignet?
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:
- Sie verwenden das ursprüngliche Places SDK. App Check wird nur für das Places SDK (neu) unterstützt.
- Interne oder experimentelle Apps Wenn Ihre App nicht öffentlich zugänglich ist, ist App Check nicht erforderlich.
- Wenn Ihre App nur serverübergreifend 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 stattdessen App Check zum Schutz dieses Servers verwenden.
Implementierungsschritte im Überblick
So integrieren Sie Ihre App in App Check:
- 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 Places API und die App Check API.
- Aktivieren Sie die Fehlerbehebung.
- Überwachen Sie Ihre App-Anfragen und entscheiden Sie, ob Sie Maßnahmen ergreifen möchten.
Nach der Einbindung von App Check können Sie Back-End-Traffic-Messwerte in der Firebase Console sehen. Diese Messwerte geben Aufschluss darüber, ob Anfragen ein gültiges App Check-Token enthalten. Weitere Informationen finden Sie in der Firebase App Check-Dokumentation.
Wenn Sie sicher sind, dass die meisten Anfragen von legitimen Quellen stammen und dass Nutzer die neueste Version Ihrer App mit Ihrer App-Check-Implementierung 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
Bei der Planung Ihrer Integration sollten Sie Folgendes beachten:
- 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 dem Zugriffe nicht mehr ausgewertet werden.
Sie können auch einen benutzerdefinierten Attestierungsanbieter verwenden. Dies ist jedoch ein erweiterter Anwendungsfall. Weitere Informationen finden Sie in der App-Check-Dokumentation.
-
Beim Starten Ihrer App kommt es zu einer gewissen Latenz. Danach erfolgt die regelmäßige Reattestierung jedoch im Hintergrund und Nutzer sollten keine Verzögerungen mehr feststellen. Die genaue Latenz beim Starten hängt vom ausgewählten Attestierungsanbieter ab.
Die Häufigkeit der Wiederholung der Attestierung wird durch die Gültigkeitsdauer des App Check-Tokens (die Gültigkeitsdauer oder TTL) bestimmt. Diese Dauer kann in der Firebase Console konfiguriert werden. Die erneute Attestierung erfolgt, wenn etwa die Hälfte der TTL verstrichen 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 Wochen- oder Quartalsversion der Maps JS API, Core und Places-Bibliotheken geladen ist.
- Ein Cloud-Projekt mit aktivierten APIs der Maps JS und der Places API (New).
- Sie müssen 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 Firebase Ihrer App hinzuzufügen.
Schritt 2: App Check-Bibliothek hinzufügen und App Check initialisieren
Firebase bietet Anleitungen für jeden Standardattestierungsanbieter. In dieser Anleitung erfahren Sie, wie Sie ein Firebase-Projekt einrichten und Ihrer App die App Check-Bibliothek 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 Ortsklasse der Maps JavaScript API.
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
- App Check mit der Konfiguration aus der Firebase Console initialisieren
- Achten Sie darauf, dass Anfragen an die Maps JS API App Check-Tokens enthalten:
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: Debuggen aktivieren (optional)
Wenn Sie Ihre App lokal entwickeln und testen oder in einer Continuous Integration-Umgebung (CI) ausführen möchten, können Sie einen Debug-Build Ihrer App erstellen, der ein Debug-Secret verwendet, um gültige App Check-Tokens zu erhalten. So können Sie echte Attestierungsanbieter in Ihrem Debug-Build vermeiden.
So testen Sie Ihre App lokal:
- Aktivieren Sie den Debuganbieter zu Entwicklungszwecken.
- Sie erhalten eine automatisch generierte zufällige UUID4 (in der App Check-Dokumentation als _Debug-Token_ bezeichnet) aus den Debug-Protokollen des SDKs. 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: App-Anfragen im Blick behalten und Maßnahmen ergreifen
Bevor Sie mit der Erzwingung beginnen, sollten Sie sich vergewissern, dass Sie keine legitimen Nutzer Ihrer App beeinträchtigen. Rufen Sie dazu den Bildschirm mit den App Check-Messwerten auf, um zu sehen, welcher Prozentsatz der Zugriffe auf Ihre App bestätigt, veraltet oder nicht legitim ist. Sobald der Großteil Ihrer Zugriffe bestätigt wurde, können Sie die Erzwingung aktivieren.
Weitere Informationen und Anleitungen finden Sie in der Firebase App Check-Dokumentation.