Datensicherheit im GA4 Auditor - wie wir Konten und Daten schützen
Wenn ein Drittanbieter-Tool auf deine Google-Analytics-Daten zugreift, ist die Frage nach Datensicherheit berechtigt - und sie muss eine technische Antwort bekommen, nicht nur eine Marketing-Floskel. Dieser Beitrag beschreibt, wie der GA4 Auditor diese Antwort konkret umsetzt: welche Berechtigungen er anfordert, wie lange Tokens existieren und welche Daten überhaupt gespeichert werden.
OAuth 2.0 statt Passwort-Weitergabe
Der Auditor nutzt Google OAuth 2.0 (OpenID Connect). Konkret heißt das:
- Kein Passwort verlässt den Google-Anmeldebildschirm.
- Die Authentifizierung passiert komplett bei Google; der Auditor sieht nur das Ergebnis (einen kurzlebigen Access-Token).
- Du kannst die Verbindung jederzeit unter myaccount.google.com/permissions widerrufen - danach funktioniert kein weiterer API-Call mehr.
Minimale Berechtigungen - Least Privilege als Code
Die OAuth-Scopes sind in
app/config.py zentral und sichtbar definiert
(OAUTH_SCOPES_LIST):
| Scope | Zweck |
|---|---|
openid |
Identitäts-Token (Google-Authentifizierung) |
email |
Konto-E-Mail zur eindeutigen Zuordnung |
analytics.readonly |
Lesezugriff auf GA4 Admin- und Data-API |
bigquery.readonly |
Lesezugriff auf BigQuery-Datasets (optional, nur wenn Export verknüpft) |
Beide Google-API-Scopes sind explizit .readonly. Das ist keine
Vertrauensfrage, sondern technisch garantiert: Mit diesen Scopes kann der
Auditor nichts in deinem GA4-Setup ändern, nichts löschen, keine Tags
ausspielen, keine Audiences anlegen. Read-only ist read-only.
Tokens leben kurz und nur im Speicher
Access-Tokens haben in Google OAuth eine Standard-Lebensdauer von etwa einer Stunde. Refresh-Tokens (über die ein Access-Token erneuert werden könnte) hält der Auditor nur während der aktiven Session - sie werden weder dauerhaft verschlüsselt abgelegt noch zwischen Sessions wiederverwendet.
Konkrete Folgen:
- Nach
GA4_SESSION_TIMEOUT_MINUTES(Default: 30 Minuten Inaktivität) ist die Session weg. - Ein Server-Neustart invalidiert sämtliche Tokens.
- Ein hypothetischer Datenbank-Snapshot durch einen Angreifer würde keine brauchbaren Zugriffs-Tokens enthalten - die liegen ausschließlich im Application-Speicher der aktiven Session.
Datensparsamkeit als Default
Die Datenschutzerklärung (siehe /de/datenschutzerklaerung, §3) führt es im Detail aus - kurz zusammengefasst:
- GA4-Rohdaten werden nicht persistiert. Reports und Live-Checks werden zur Laufzeit aus den Google-APIs gezogen und im UI dargestellt. Was beim Schließen des Tabs in der Session noch lag, ist beim nächsten Login weg.
- GA4-Property-IDs werden als organisationsgebundene HMAC-Hashes abgespeichert. Wer die Datenbank in die Hand bekommt, sieht keine Klartext-IDs.
- Server-Logs werden in der Regel nach 14 Tagen rotiert (siehe Datenschutzerklärung §9), Backups nach maximal 35 Tagen.
Verschlüsselung, Hosting, Cookies
- TLS für alle Verbindungen (HTTPS-only in Produktion).
- Session-Cookies mit
HttpOnly,SameSite=LaxundSecure-Flag. - Hosting auf Google Cloud Platform (EU-Region) mit Auftragsverarbeitungsverträgen.
- Kein Tracking ohne Einwilligung - Matomo (self-hosted) läuft nur nach aktivem Opt-in.
Was du tun kannst, wenn du den Zugriff zurücknehmen willst
- Auf myaccount.google.com/permissions den Eintrag „GA4 Auditor" anklicken und Zugriff entziehen.
- Optional: Account-Löschung per E-Mail an
info@webmasterei-prange.de- wird in der Regel innerhalb von 30 Tagen abgearbeitet.
Was du in der App selbst tun kannst
- Tracking-Debugger in der App nutzen, um zu sehen, welche Daten wirklich an Google fließen - siehe Hilfeseite Tracking-Debugger Schritt für Schritt.
- Consent Mode v2 sauber konfigurieren, damit die App nicht versehentlich mehr „sieht" als gewollt - siehe Hilfeseite Consent Mode v2 verstehen.
Fazit
Datensicherheit ist im GA4 Auditor kein eigenes Feature, sondern Architektur: OAuth statt Passwort, read-only statt admin, In-Memory-Tokens statt Persistenz, HMAC-Hashes statt Klartext-IDs, EU-Hosting statt US-Default. Wer es genauer wissen will, findet die vollständige rechtliche Ausformulierung in der Datenschutzerklärung.