Autorisierung für Google-Dienste

Für den Zugriff auf private Daten aus integrierten Google-Diensten oder erweiterten Google-Diensten ist in Google Apps Script eine Nutzerautorisierung erforderlich.

Funktionsweise der Autorisierung für Google-Dienste

Wenn ein Skript Zugriff auf Google-Dienste benötigt, wird dieser allgemeine Prozess durchlaufen:

  1. Erkennung: Apps Script scannt das Script, um zu ermitteln, welche Dienste es verwendet, z. B. SpreadsheetApp oder GmailApp.
  2. Bereichsbestimmung: Basierend auf dem Scan ermittelt Apps Script eine Reihe von OAuth-Bereichen, die für die Ausführung des Skripts erforderlich sind.
  3. Autorisierungsprüfung: Wenn das Script ausgeführt wird, wird geprüft, ob der Nutzer diese Bereiche bereits autorisiert hat.
  4. Nutzeraufforderung: Wenn die Autorisierung fehlt, wird ein Dialogfeld angezeigt, in dem der Nutzer aufgefordert wird, die Berechtigung zu erteilen.
  5. Ausführung: Nachdem das Skript autorisiert wurde, kann es auf die angeforderten Daten für diesen Nutzer zugreifen.

Berechtigungen und Arten von Skripts

Die Nutzeridentität, mit der ein Script ausgeführt wird, und damit die Daten, auf die es zugreifen kann, variieren je nach Szenario, in dem das Script ausgeführt wird. Das geht aus der folgenden Tabelle hervor.

Skriptart Script wird ausgeführt als…
Eigenständig, Google Workspace-Add-on oder an Google Docs, Google Sheets, Google Präsentationen oder Google Formulare gebunden Nutzer an der Tastatur
Benutzerdefinierte Funktion in einer Tabelle Anonymer Nutzer; Kontingentlimits werden jedoch auf den Nutzer am Computer angerechnet.
Web-App oder Google Sites-Gadget Nutzer an der Tastatur oder Skriptinhaber, je nach ausgewählten Optionen beim Bereitstellen der App
Installierbarer Trigger Nutzer, der den Trigger erstellt hat

Zugriffsrechte erteilen

Apps Script bestimmt die Autorisierungsbereiche (z. B. Zugriff auf Ihre Sheets-Dateien oder Gmail) automatisch anhand einer Überprüfung des Codes. Auch auskommentierter Code kann eine Autorisierungsanfrage generieren. Wenn für ein Script eine Autorisierung erforderlich ist, wird beim Ausführen ein Autorisierungsdialogfeld angezeigt.

Für Skripts, die Sie zuvor autorisiert haben, ist ebenfalls eine zusätzliche Autorisierung erforderlich, wenn durch eine Codeänderung neue Dienste hinzugefügt werden. Für Scripts, auf die als Webanwendung zugegriffen wird, die unter der Nutzeridentität des Scriptinhabers ausgeführt wird, darf keine Autorisierung angefordert werden.

Zugriffsrechte widerrufen

So widerrufen Sie den Zugriff eines Skripts auf Ihre Daten:

  1. Rufen Sie in Ihrem Google-Konto den Bereich „Sicherheit“ auf.
  2. Klicken Sie unter Ihre Verbindungen zu Drittanbieter-Apps und ‑Diensten auf Alle Verbindungen ansehen.
  3. Wählen Sie das Skript oder die App aus, für die Sie den Zugriff widerrufen möchten.
  4. Klicken Sie auf Alle Verbindungen mit APP_NAME löschen und dann auf Bestätigen.

Bereich auf das aktuelle Dokument beschränken

Wenn Sie ein Add-on oder ein anderes Skript erstellen, das den Tabellendienst, den Dokumentdienst, den Präsentationen-Dienst oder den Formulare-Dienst verwendet, können Sie erzwingen, dass im Autorisierungsdialog nur der Zugriff auf Dateien angefordert wird, in denen das Add-on oder Skript verwendet wird, und nicht auf alle Tabellen, Dokumente oder Formulare eines Nutzers. Fügen Sie dazu die folgende JSDoc-Annotation in einen Kommentar auf Dateiebene ein:

/**
 * @OnlyCurrentDoc
 */

Die gegenteilige Anmerkung @NotOnlyCurrentDoc ist verfügbar, wenn Ihr Skript eine Bibliothek enthält, in der @OnlyCurrentDoc deklariert ist, das primäre Skript jedoch Zugriff auf mehr als die aktuelle Datei benötigt.

Autorisierungslebenszyklus für Add-ons

Add-ons für Google Sheets, Google Docs, Google Präsentationen und Google Formulare folgen im Allgemeinen demselben Autorisierungsmodell wie Skripts, die an ein Dokument gebunden sind. Unter bestimmten Umständen werden ihre onOpen(e)- und onEdit(e)-Funktionen jedoch in einem Modus ohne Autorisierung ausgeführt, was einige zusätzliche Komplikationen mit sich bringt. Weitere Informationen finden Sie im Leitfaden zum Autorisierungslebenszyklus von Add-ons.

Nutzerlimits für OAuth-Anwendungen

Für Anwendungen, die OAuth für den Zugriff auf Google-Nutzerdaten verwenden, einschließlich Apps Script-Projekten, gelten Autorisierungslimits. Weitere Informationen finden Sie unter OAuth-Anwendungsnutzerlimits.

Verhalten bei erneuter Authentifizierung mit Apps Script

In Apps Script wird die Häufigkeit der erneuten Authentifizierung, die in den Google Cloud-Diensteinstellungen konfiguriert ist, nicht erzwungen. Das liegt daran, dass Apps Script automatisch über Trigger ausgeführt werden kann, die ohne direkte Nutzerinteraktion funktionieren. Bei diesen automatisierten Ausführungen werden keine Aufforderungen zur erneuten Authentifizierung ausgelöst. Ihre Apps Script-Anwendung fordert Sie nach dem angegebenen Zeitraum (z. B. 12 Stunden) nicht automatisch auf, sich noch einmal zu authentifizieren.

Explizite Bereiche im Manifest festlegen

Apps Script ermittelt die erforderlichen Bereiche automatisch, indem der Code nach Funktionsaufrufen durchsucht wird. Wenn Sie mehr Kontrolle benötigen, können Sie die Bereiche im Projektmanifest (appsscript.json) explizit festlegen. Dies wird für veröffentlichte Skripts empfohlen, um sicherzustellen, dass Sie die minimal erforderlichen Berechtigungen verwenden.

Eine Anleitung finden Sie unter Explizite Bereiche festlegen.

Fehlerbehebung

  • Fehler „Autorisierung erforderlich“ beim Ausführen eines Triggers: Trigger müssen von dem Nutzer autorisiert werden, der sie erstellt hat. Wenn Sie Code hinzufügen, für den neue Berechtigungen erforderlich sind, müssen Sie einmal manuell eine Funktion im Skripteditor ausführen, um das Autorisierungsdialogfeld aufzurufen.
  • Bereiche werden nicht aktualisiert: Wenn Sie Ihren Code aktualisiert haben, die Änderungen aber nicht im Autorisierungsdialogfeld angezeigt werden, speichern Sie das Projekt und aktualisieren Sie den Editor. Wenn Sie explizite Bereiche im Manifest verwenden, müssen Sie den neuen Bereich dem oauthScopes-Array hinzufügen.
  • „Diese App ist blockiert“ oder Warnung zu nicht bestätigter App: Dies tritt auf, wenn in Ihrem Skript vertrauliche oder eingeschränkte Bereiche verwendet werden und es nicht von Google bestätigt wurde. Weitere Informationen finden Sie unter OAuth-Clientüberprüfung.