Warnung:Diese Daten werden gemäß der Richtlinie zu Google-Nutzerdaten bereitgestellt. Bitte lesen Sie sich die Richtlinien durch und halten Sie sie ein. Andernfalls kann das zu einem Projekt oder einem Konto führen.

Funktionsweise der Nutzerautorisierung

Wenn Sie die Google Identity Services oder die Autorisierung neu oder nicht kennen, lesen Sie zuerst die Übersicht.

Google bietet eine JavaScript-Bibliothek, die Autorisierungsfunktionen zum Verwalten von Bereichen und zum Einholen von Nutzereinwilligungen bietet. Sie vereinfacht das Arbeiten mit Standard-OAuth 2.0-Abläufen. Ihre Webanwendung, die im Browser des Nutzers ausgeführt wird, verwendet diese Bibliothek, um den impliziten OAuth 2.0-Vorgang zu verwalten oder den Vorgang des Autorisierungscodes zu starten, der auf Ihrer Back-End-Plattform abgeschlossen ist.

Nur Authentifizierung

Mehrere Bereiche werden nur für die Nutzerauthentifizierung verwendet: email, profile und openid. Wenn Ihre Anwendung nur diese Bereiche verwendet, sollten Sie überlegen, ob ein JWT-ID-Token und Über Google anmelden für die Nutzerregistrierung und -anmeldung Ihren Anforderungen entspricht. In den meisten Fällen ist dies die einfachste und einfachste Methode für die Nutzerauthentifizierung.

Wichtige Begriffe und Konzepte

Hier wird davon ausgegangen, dass Sie ein grundlegendes Verständnis der OAuth 2.0-Konzepte und IETF-Standards wie RFC6749 haben. Die folgenden Begriffe werden in allen Autorisierungsleitfäden verwendet:

  • Zugriffstoken ist ein kurzlebiges Profil pro Nutzer, das von Google ausgestellt wird und verwendet, um Google APIs sicher aufzurufen und auf Nutzerdaten zuzugreifen.
  • Der Autorisierungscode ist ein vorübergehender Code, der von Google zur sicheren Identifizierung einzelner Nutzer erstellt wird, die sich über einen Browser in ihrem Google-Konto anmelden. Diese Back-End-Plattform tauscht diesen Code gegen Zugriffs- und Aktualisierungstokens aus.
  • Aktualisierungstoken ist eine langlebige Anmeldedaten von Google, die sicher auf Ihrer Plattform gespeichert werden und dazu verwendet werden können, ein neues, gültiges Zugriffstoken abzurufen, wenn der Nutzer nicht vorhanden ist.
  • Durch den Umfang werden Tokens auf eine festgelegte und begrenzte Anzahl von Nutzerdaten beschränkt. Weitere Informationen finden Sie unter OAuth 2.0-Bereiche für Google APIs.
  • Der Pop-up-Modus ist ein Autorisierungscode, der auf einem JavaScript-Callback basiert, der im Browser des Nutzers ausgeführt wird. Google ruft Ihren Callback-Handler auf, der dann für das Senden des Authentifizierungscodes an Ihre Plattform verantwortlich ist. Wie Sie dabei vorgehen, bleibt Ihnen überlassen.
  • Der Weiterleitungsmodus ist ein Autorisierungscode, der auf HTTP-Weiterleitungen basiert. Der User-Agent wird zuerst an Google weitergeleitet, eine zweite Weiterleitung von Google an den Autorisierungscode-Endpunkt deiner Plattform enthält den Code.

Die Lebensdauer von Tokens wird von Google als Aussteller festgelegt. Aufgrund verschiedener Faktoren kann die genaue Dauer variieren.

OAuth 2.0-Abläufe

Es werden zwei Abläufe erläutert – implizit und Autorisierungscode. In beiden Fällen wird ein Zugriffstoken zurückgegeben, das für die Verwendung mit Google APIs geeignet ist.

Der Autorisierungscode wird empfohlen, da er eine höhere Nutzersicherheit bietet. Außerdem wird bei diesem Vorgang ein Aktualisierungstoken zurückgegeben, mit dem Zugriffstokens abgerufen werden können, ohne dass der Nutzer anwesend ist. Dadurch kann Ihre Plattform leichter asynchrone Aktionen ausführen und z. B. eine SMS-Erinnerung an eine anstehende Besprechung senden, die in der letzten Minute geplant wurde. Unter Ein Autorisierungsmodell auswählen werden die Unterschiede zwischen den beiden Abläufen im Detail erklärt.

Die JavaScript-Bibliothek von Google Identity Services folgt dem OAuth 2.0-Standard:

  • den impliziten Vorgang verwalten, damit Ihre Webanwendung im Browser schnell und einfach ein Zugriffstoken von Google abrufen kann, das zum Aufrufen von Google APIs erforderlich ist.
  • Starten Sie den Autorisierungscode über den Browser des Nutzers.

Häufig verwendete Schritte

Der implizite Vorgang und der Vorgang mit Autorisierungscode beginnen auf dieselbe Weise:

  1. Ihre Anwendung fordert Zugriff auf einen oder mehrere Bereiche an.
  2. Google zeigt dem Nutzer ein Dialogfeld zur Einwilligung an und meldet den Nutzer gegebenenfalls zuerst in seinem Google-Konto an.
  3. Der Nutzer genehmigt jeden angeforderten Bereich einzeln.

Jeder Ablauf endet mit verschiedenen Schritten.

Bei Verwendung des impliziten Vorgang

  • Google verwendet einen Callback-Handler, um Ihre App über das Ergebnis der Einwilligung zu informieren und ein Zugriffstoken für alle genehmigten Bereiche zurückzugeben.

Bei Verwendung des Autorisierungscode-Ablaufs

  • Google antwortet mit einem Autorisierungscode pro Nutzer:
    • Im Weiterleitungsmodus wird der Code an den Autorisierungscode-Endpunkt deiner Plattform zurückgegeben.
    • Im Pop-up-Modus wird der Code an den Callback-Handler Ihrer Browser-App zurückgegeben, ohne dass Nutzer Ihre Website verlassen müssen.
  • Ab Schritt 4: Behandlung der OAuth 2.0-Serverantwort, führt Ihre Back-End-Plattform einen Server-zu-Server-Austausch mit Google durch. Die Aktualisierung erfolgt dann auf Ebene des Nutzers und des Zugriffstokens.

Bevor ein Zugriffstoken abgerufen werden kann, müssen einzelne Nutzer einwilligen, dass Ihre Anwendung auf die angeforderten Bereiche zugreifen kann. Dazu zeigt Google in Schritt 2 oben ein Dialogfeld zur Einwilligung an und zeichnet das Ergebnis unter myaccount.google.com/permissions auf.

Der Name der App, das Logo, die Datenschutzerklärung, Nutzungsbedingungen und angeforderte Bereiche werden dem Nutzer zusammen mit der Option zum Genehmigen oder Abbrechen der Anfrage angezeigt.

In Abbildung 1 ist das Dialogfeld für die Einwilligung für einen einzelnen Bereich zu sehen. Wenn ein einzelner Bereich angefordert wird, sind keine Kästchen erforderlich, um einen Bereich zu genehmigen oder abzulehnen.

Dialogfeld für die Nutzereinwilligung mit Schaltflächen „Abbrechen“ oder „Weiter“ und einem einzelnen Bereich; keine Kästchen werden angezeigt.

Abbildung 1: Dialogfeld zur Nutzereinwilligung mit nur einem Umfang.

In Abbildung 2 wird das Dialogfeld für die Einwilligung für mehrere Bereiche angezeigt. Wenn mehrere Bereiche angefordert werden, müssen einzelne Kästchen angeklickt werden, damit der Nutzer den jeweiligen Bereich genehmigen oder ablehnen kann.

Dialogfeld für die Nutzereinwilligung mit Schaltflächen „Abbrechen“ oder „Weiter“ sowie mehreren Bereichen: Jeder Bereich hat eine Kästchenauswahl.

Abbildung 2:Dialogfeld zur Nutzereinwilligung mit mehreren Bereichen.

Nutzerkonten

Ein Google-Konto ist erforderlich, um die Einwilligung einzuholen und ein Zugriffstoken auszustellen. Vorher müssen sich einzelne Nutzer bei Google authentifizieren, indem sie sich in einem Google-Konto anmelden.

Es wird zwar nicht empfohlen, aber die Funktion „Über Google anmelden“ wird für die Registrierung und Anmeldung bei Ihrer Webanwendung oder Back-End-Plattform empfohlen. So wird die Anzahl der erforderlichen Schritte minimiert und Sie können Zugriffstokens auf Wunsch einfach mit einzelnen Konten auf Ihrer Plattform verknüpfen.

Durch die Verwendung von „Über Google anmelden“ wird beispielsweise eine aktive Google-Kontositzung erstellt. Dadurch wird vermieden, dass der Nutzer später bei einer Autorisierungsanfrage in einem Google-Konto angemeldet werden muss. Wenn Sie sich für die Authentifizierung von Nutzern Ihrer Anwendung auf andere Weise, etwa mit einem Nutzernamen und einem Passwort, oder für andere Identitätsanbieter entscheiden, müssen diese sich zuerst in einem Google-Konto anmelden und ihre Einwilligung erteilen.

Wenn Sie bei der Initialisierung der Autorisierung einen Hinweis hinzufügen – in der Regel die E-Mail-Adresse des Google-Kontos des Nutzers –, kann Google die Anzeige einer Kontoauswahl überspringen. So sparen Nutzer einen Schritt. Die von „Über Google anmelden“ zurückgegebenen Anmeldedaten des Tokens enthalten die E-Mail-Adresse des Nutzers.

Webanwendungen, die nur im Browser ausgeführt werden, können sich ausschließlich auf Google für die Nutzerauthentifizierung verlassen. Es wird dann kein System für die Nutzerkontoverwaltung implementiert. In diesem Szenario, das als impliziter Vorgang bezeichnet wird, ist es nicht erforderlich, ein Aktualisierungstoken mit einem Nutzerkonto und einem sicheren Speicher zur Verwaltung zu verknüpfen.

Alternativ ist auch ein Nutzerkontosystem erforderlich. Aktualisierungstokens pro Nutzer müssen einem einzelnen Konto auf Ihrer Back-End-Plattform zugeordnet sein und zur späteren Verwendung gespeichert werden. Das Implementieren, Arbeiten und Verwalten eines Nutzerkontosystems ist plattformspezifisch. Es wird nicht im Detail erläutert.

Nutzer können die Einwilligung jederzeit in den Einstellungen ihres Google-Kontos einsehen oder widerrufen.

Optional kann Ihre Webanwendung oder Plattform google.accounts.oauth2.revoke aufrufen, um Tokens zu widerrufen und die Nutzereinwilligung zu entfernen. Das ist nützlich, wenn ein Nutzer sein Konto von der Plattform löscht.

Weitere Autorisierungsoptionen

Alternativ können Browser Zugriffstokens im impliziten Ablauf abrufen, indem die OAuth 2.0-Endpunkte von Google wie in OAuth 2.0 für clientseitige Webanwendungen beschrieben direkt aufgerufen werden.

Ebenso können Sie für den Autorisierungscode Ihre eigenen Methoden implementieren und die Schritte unter OAuth 2.0 für Webserveranwendungen verwenden ausführen.

In beiden Fällen empfehlen wir dringend, die Google Identity Services-Bibliothek zu verwenden, um die Entwicklungszeit und den Aufwand zu verringern und die Sicherheitsrisiken zu minimieren, wie sie unter Best Practices für OAuth 2.0-Sicherheit beschrieben werden.