Plugins FAQ Anleitungen Blog Support Kontakt Plugins ansehen

Google Drive API: Dienstkonto oder OAuth, einfach erklärt

Google Drive PortalAktualisiert am 30. September 20267 Min. Lesezeit

Google Drive Portal

Bei der Google Drive API lässt OAuth eine Website im Namen einer Person handeln: Jemand meldet sich bei Google an, stimmt dem Zugriff zu, und die Website leiht sich die Berechtigung dieser Person. Ein Dienstkonto (Service Account) ist dagegen eine eigene Google-Identität, die der Website gehört und nur die Ordner sieht, die du mit ihr teilst. OAuth-Verbindungen mit einer eigenen Google-App können nach 7 Tagen ablaufen oder eine Überprüfung durch Google brauchen; ein Dienstkonto vermeidet beides, gibt dir aber eine Schlüsseldatei, die du sicher aufbewahren musst.

Zwei Wege, wie eine Website an Google Drive kommt

Ein WordPress-Plugin, das Drive-Dateien anzeigt, muss Google nachweisen, dass es sie lesen darf. Google bietet dafür zwei Hauptwege an, und der Unterschied lässt sich mit einem Vergleich aus dem Alltag am leichtesten zeigen.

OAuth: den eigenen Zugang verleihen

Stell dir einen Hotelgast vor, der ein Formular unterschreibt, damit der Concierge Pakete für ihn abholen darf. Bei OAuth klickst du auf Über Google anmelden, Google zeigt einen Bildschirm, welche App fragt und was sie sehen will, und du klickst auf Zulassen. Google gibt der Website dann einen dauerhaften Passierschein (ein sogenanntes Aktualisierungstoken, englisch refresh token), damit sie wiederkommen kann, ohne dich erneut zu fragen. Die Website sieht, was dein Konto sieht, im Rahmen dessen, was sie angefragt hat.

Dienstkonto: ein neuer Kollege mit eigenem Ausweis

Stell dir jetzt vor, du stellst eine Assistenz mit eigenem Mitarbeiterausweis ein. Sie hat zu Beginn auf nichts Zugriff. Du teilst einen Ordner mit ihr, so wie mit einem Kollegen, und nur den kann sie öffnen. Ein Dienstkonto funktioniert genauso: Es ist eine Google-Identität für Software, mit eigener E-Mail-Adresse (endet auf iam.gserviceaccount.com). Die Anleitung von Google sagt, dass die E-Mail-Adresse des Dienstkontos in den Freigabeeinstellungen wie ein Nutzerkonto behandelt werden kann. Niemand meldet sich an, und es gibt keinen Zustimmungsbildschirm.

Warum Google-Drive-Verbindungen auf Websites ablaufen

Wenn ein Drive-Plugin dich jede Woche bittet, die Verbindung neu herzustellen, oder einen Fehler wie invalid_grant zeigt, liegt die Ursache meist beim OAuth-Passierschein, nicht beim Plugin.

Viele Plugins verlangen, dass du eine eigene Google-App anlegst: ein Projekt in Google Cloud mit Zustimmungsbildschirm, Client-ID, Weiterleitungsadresse und einer Liste von Testnutzern. Eine neue App startet im Veröffentlichungsstatus Testing. Die Dokumentation von Google ist eindeutig: Für eine App in diesem Status wird ein Aktualisierungstoken mit einer Gültigkeitsdauer von 7 Tagen ausgestellt, außer die App fragt nur nach grundlegenden Profilinformationen (Name, E-Mail, Profil). Drive zu lesen gehört nicht dazu, der Passierschein funktioniert also eine Woche nach dem Verbinden nicht mehr.

Die App aus dem Testmodus zu holen (der Button Publish app auf der Seite Audience der Google Cloud Console) hebt das 7-Tage-Limit auf, bringt aber das nächste Thema mit sich: die Überprüfung. Außerdem kann auch der Passierschein einer veröffentlichten App aus anderen Gründen aufhören zu funktionieren, die Google auflistet:

  • die Person widerruft den Zugriff der App in ihrem Google-Konto;
  • der Passierschein wurde sechs Monate lang nicht benutzt;
  • das Konto hat das Google-Limit für aktive Passierscheine erreicht;
  • ein Google-Workspace-Administrator schränkt die App für die Organisation ein.

Dazu kommt ein menschlicher Punkt. Eine OAuth-Verbindung hängt am Konto einer Person. Wenn die Kollegin, die auf Zulassen geklickt hat, das Unternehmen verlässt und ihr Konto geschlossen wird, verliert die Website mit ihr den Zugriff.

Warum Google eine Überprüfung verlangt

Wenn eine App Zugriff anfragt, nennt sie einen oder mehrere Bereiche (Scopes): den Umfang des gewünschten Zugriffs. Google teilt Scopes in nicht sensible, sensible und eingeschränkte ein. Bei Drive gelten die Scopes, die alles im Drive einer Person lesen, auch der reine Lese-Scope, als eingeschränkt.

Eine veröffentlichte App, die eingeschränkte Scopes nutzt und sich an die Öffentlichkeit richtet, muss die Überprüfung für eingeschränkte Scopes bestehen. Wenn die Daten über einen Server laufen, wie bei einer Website, verlangt Google außerdem eine Sicherheitsbewertung durch einen unabhängigen Prüfer, die mindestens alle 12 Monate wiederholt wird. Google weist darauf hin, dass das Verfahren mehrere Wochen dauern kann.

Bis eine App überprüft ist, sehen Personen bei der Anmeldung eine Warnung, dass Google sie nicht überprüft hat, und die App ist auf 100 Nutzer begrenzt. Google erlaubt eine nicht überprüfte App für die private Nutzung durch weniger als 100 Personen, ein Websitebetreiber kann sich für seine eigene App also durch die Warnung klicken. Das funktioniert, ist aber nichts, was man einem Kunden übergibt.

Deshalb gehen Drive-Plugins meist einen von drei Wegen:

  1. Die überprüfte App des Plugin-Herstellers. Du klickst auf Über Google anmelden und stimmst der App des Herstellers zu. Keine Arbeit in Google Cloud für dich, aber du gibst dieser App über dein eigenes Konto Zugriff auf dein Drive.
  2. Deine eigene OAuth-App. Du legst die App selbst in Google Cloud an. Im Testmodus läuft sie wöchentlich ab, veröffentlicht zeigt sie die Warnung für nicht überprüfte Apps.
  3. Ein Dienstkonto. Keine Anmeldung und kein Zustimmungsbildschirm, also gilt nichts von alledem.

Es gibt auch einen engen Scope, oft „drive.file“ genannt, den Google als nicht sensibel einstuft. Er deckt nur die einzelnen Dateien ab, die eine Person mit dieser App öffnet oder erstellt. Er passt also zu Werkzeugen, die einzelne Dateien speichern oder auswählen, nicht zu einer Seite, die alles zeigen soll, was du in einen Ordner legst.

Was ein Dienstkonto ändert

Mit einem Dienstkonto hat die Website ihre eigene Identität, und was sie sieht, bestimmst du durch Teilen. Das ändert mehrere Dinge auf einmal.

  • Kein wöchentlicher Ablauf. Die Verbindung nutzt eine Schlüsseldatei, keine Anmeldung. Google schreibt: Standardmäßig laufen Dienstkontoschlüssel niemals ab. Der Schlüssel funktioniert nicht mehr, wenn du ihn in Google Cloud löschst oder deine Organisation eine Gültigkeitsdauer für Schlüssel festgelegt hat.
  • Kein Zustimmungsbildschirm, keine Testnutzer, keine App zum Veröffentlichen. Niemand stimmt etwas zu, also gibt es nichts, wovor Google warnen müsste.
  • Sichtbarer Zugriff. Das Dienstkonto sieht nur die Ordner, die mit ihm geteilt sind. Öffne in Drive das Freigabefenster des Ordners, und seine Adresse steht dort wie die einer Person. Entferne sie, und der Zugriff endet sofort.
  • Nicht an eine Person gebunden. Mitarbeitende kommen und gehen; die Website behält ihre eigene Identität.

Ganz ohne Nachteile ist es nicht. Die Schlüsseldatei ist ein Passwort: Wer sie hat, kann lesen, was das Dienstkonto lesen kann, sie gehört also nie in eine E-Mail oder einen öffentlichen Ordner. Die Einrichtung kostet etwa zehn Minuten in der Google Cloud Console. Und in Google Workspace können zwei Organisationseinstellungen im Weg stehen: Google-Cloud-Organisationen, die am oder nach dem 3. Mai 2024 erstellt wurden, sperren das Erstellen von Schlüsseln standardmäßig, und manche Organisationen verbieten das Teilen mit Adressen außerhalb der Domain. In beiden Fällen kann ein Administrator eine Ausnahme einrichten.

Fenster zur Auswahl eines Drive-Ordners im WordPress-Adminbereich mit der Liste der Ordner, die mit dem Dienstkonto geteilt sind, darunter drei geteilte Ablagen
Ein Dienstkonto sieht nur, was mit ihm geteilt wurde, auch geteilte Ablagen, in denen es Mitglied ist.

Geteilte Ablagen (Shared Drives) funktionieren ebenfalls. Du fügst entweder die Adresse des Dienstkontos als Mitglied der geteilten Ablage hinzu oder teilst einen einzelnen Ordner darin.

Dienstkonto oder OAuth für Google Drive: der direkte Vergleich

Überprüfte App des Plugin-HerstellersDeine eigene OAuth-AppDienstkonto
Wer meldet sich anDu, mit deinem Google-KontoDu, mit deinem Google-KontoNiemand
Kann von selbst aufhörenWiderruf, 6 Monate ungenutzt, Admin-RichtlinieNach 7 Tagen im Testmodus, plus dieselben GründeNein, nur wenn der Schlüssel gelöscht oder die Freigabe entfernt wird
Warnbildschirm von GoogleNeinJa, bis Google sie überprüftGar kein Bildschirm
Was sie sehen kannWas die App in deinem Drive angefragt hatWas die App in deinem Drive angefragt hatNur Ordner, die mit ihm geteilt sind
Dein EinrichtungsaufwandEin KlickZustimmungsbildschirm, Client-ID, Weiterleitungsadresse, TestnutzerEin Projekt, eine Schlüsseldatei, eine Freigabe
Am besten fürSchnelle Verbindungen, wenn du dem Anbieter vertraustEntwickler, die eigene Werkzeuge testenWebsites, die deine Dateien deinen Benutzern zeigen

Was deine Website nutzen sollte

OAuth ist das richtige Werkzeug, wenn jeder Besucher an sein eigenes Drive kommen muss, zum Beispiel bei einem Formular, in dem Leute eine Datei aus ihrem Google-Konto auswählen. Diese Erlaubnis kann nur die Person selbst geben, ein Dienstkonto kann das nicht ersetzen.

Ein Dienstkonto passt besser, wenn die Website deine Dateien deinen Benutzern zeigt: ein Kundenbereich, ein Händlerbereich, eine Dokumentenseite für Mitarbeitende. Hier braucht die Website eine stabile Verbindung zu wenigen Ordnern, und wer was sieht, entscheiden die Logins deiner Website, nicht Google.

Diese Wahl haben wir für Google Drive Portal getroffen. Es verbindet sich nur über ein Dienstkonto, es gibt also keine Weiterleitungsadresse zum Kopieren, keinen Zustimmungsbildschirm, keine Testnutzer und keine App, die veröffentlicht oder überprüft werden muss. Die Anleitung zur Verbindung führt durch Projekt, Schlüssel und Freigabe, und die Seite Verbindungsprobleme beheben erklärt jede Meldung in einfachen Worten. Wie das in einer echten Einrichtung aussieht, zeigt Google Drive Kundenportal in WordPress einrichten.

Kurz gesagt

OAuth leiht sich den Zugang einer Person. Mit einer eigenen Google-App läuft er im Testmodus alle 7 Tage ab, und nach der Veröffentlichung zeigt er eine Warnung, bis Google die App überprüft hat, ein Verfahren, das bei vollem Drive-Zugriff eine jährliche Sicherheitsbewertung einschließt. Die überprüfte App eines Plugin-Herstellers umgeht das, aber die Verbindung gehört trotzdem zum Konto einer Person.

Ein Dienstkonto gibt der Website eine eigene Identität, die nur sieht, was du teilst, standardmäßig nicht abläuft und keinen Überprüfungsbildschirm braucht. Der Preis dafür ist eine Schlüsseldatei, die du hüten musst, und eine kurze Einrichtung in Google Cloud. Für eine Website, die deine Drive-Ordner deinen Kunden oder Mitarbeitenden zeigt, ist es meist die ruhigere Wahl. Wenn du nur einen öffentlichen Ordner zeigen willst, brauchst du vielleicht keines von beiden: Lies Google-Drive-Ordner in WordPress einbinden.

Häufige Fragen

Warum trennt sich mein Google-Drive-Plugin alle 7 Tage?

Das Plugin nutzt sehr wahrscheinlich eine Google-App, die du angelegt hast und die noch im Veröffentlichungsstatus Testing ist. Google lässt die Zugangsberechtigungen von Apps in diesem Status nach 7 Tagen ablaufen, deshalb musst du jede Woche neu verbinden.

Läuft der Schlüssel eines Dienstkontos ab?

Standardmäßig nicht. Er funktioniert, bis du ihn in Google Cloud löschst, außer deine Organisation hat eine maximale Gültigkeitsdauer für Schlüssel festgelegt.

Braucht ein Dienstkonto eine Überprüfung der App durch Google?

Die App-Überprüfung von Google betrifft den Bildschirm, auf dem sich Personen anmelden und einer App zustimmen. Ein Dienstkonto hat weder Anmeldung noch Zustimmungsbildschirm: Du gibst ihm Zugriff, indem du Ordner mit seiner Adresse teilst.

Kann ein Dienstkonto mein ganzes Google Drive sehen?

Nein. Es hat zu Beginn auf nichts Zugriff und sieht nur die Dateien, Ordner und geteilten Ablagen, die du mit seiner E-Mail-Adresse teilst. Hebst du die Freigabe eines Ordners auf, verliert es den Zugriff.