Durch die Kontoverknüpfung können Google-Kontoinhaber schnell, nahtlos und sicher eine Verbindung zu Ihren Diensten herstellen. Sie können die Google-Kontoverknüpfung implementieren, um die Daten eines Nutzers von Ihrer Plattform für Google-Apps und ‑Dienste freizugeben.
Mit dem sicheren OAuth 2.0-Protokoll können Sie das Google-Konto eines Nutzers sicher mit seinem Konto auf Ihrer Plattform verknüpfen und Google-Anwendungen und ‑Geräten so Zugriff auf Ihre Dienste gewähren.
Nutzer können ihre Konten verknüpfen oder die Verknüpfung aufheben und optional über die Google-Kontoverknüpfung ein neues Konto auf deiner Plattform erstellen.
Anwendungsfälle
Hier sind einige Gründe für die Implementierung der Google-Kontoverknüpfung:
Daten eines Nutzers von Ihrer Plattform für Google-Apps und -Dienste freigeben
Spielen Sie Ihre Video- und Filminhalte über Google TV ab.
Mit der Google Home App und Google Assistant verbundene Geräte im Google Smart Home verwalten und steuern, z. B. „Hey Google, mach das Licht an“.
Mit konversationsbasierten Aktionen wie „Hey Google, bestell mir meinen Kaffee bei Starbucks“ können Sie personalisierte Google Assistant-Funktionen erstellen.
Nutzer können sich Prämien verdienen, wenn sie sich bestimmte Livestreams auf YouTube ansehen, nachdem sie ihr Google-Konto mit einem Konto eines Belohnungspartners verknüpft haben.
Neue Konten können bei der Registrierung mit Daten aus einem Google-Kontoprofil vorab ausgefüllt werden, die mit Einwilligung der Nutzer freigegeben wurden.
Unterstützte Funktionen
Diese Funktionen werden durch die Google-Kontoverknüpfung unterstützt:
Mit dem impliziten OAuth-Verknüpfungsablauf können Sie Ihre Daten schnell und einfach freigeben.
Mit dem Ablauf OAuth-Verknüpfung mit Autorisierungscode lässt sich die Sicherheit verbessern.
Sie können bestehende Nutzer auf Ihrer Plattform anmelden oder neue von Google bestätigte Nutzer registrieren, ihre Einwilligung einholen und Daten mithilfe der vereinfachten Verknüpfung sicher teilen.
Mit App Flip können Sie die Nutzerfreundlichkeit verbessern. Wenn Sie in einer vertrauenswürdigen Google-App auf Ihre bestätigte Android- oder iOS-App tippen, wird sie sicher geöffnet. Außerdem wird die Nutzereinwilligung erteilt und Konten werden verknüpft.
Verbessern Sie den Datenschutz für Nutzer, indem Sie benutzerdefinierte Bereiche definieren, um nur die erforderlichen Daten zu teilen. Steigern Sie das Vertrauen der Nutzer, indem Sie klar definieren, wie ihre Daten verwendet werden.
Der Zugriff auf Daten und Dienste, die auf Ihrer Plattform gehostet werden, kann widerrufen werden, indem Sie die Verknüpfung von Konten aufheben. Wenn Sie einen optionalen Endpunkt für die Tokenwiderruf implementieren, bleiben Sie mit von Google initiierten Ereignissen synchronisiert. Mit dem Kontoübergreifenden Schutz können Sie Google über alle Ereignisse informieren, bei denen die Verknüpfung auf Ihrer Plattform aufgehoben wird.
Abläufe für die Kontoverknüpfung
Es gibt drei Google-Kontoverknüpfungsvorgänge, die alle auf OAuth basieren und bei denen Sie OAuth 2.0-konforme Autorisierungs- und Token-Austauschendpunkte verwalten oder steuern müssen.
Während der Verknüpfung stellen Sie Google Zugriffstokens für einzelne Google-Konten aus, nachdem Sie die Einwilligung der Kontoinhaber zur Verknüpfung ihrer Konten und zur Freigabe von Daten eingeholt haben.
OAuth-Verknüpfung (Web-OAuth)
Das ist der grundlegende OAuth-Ablauf, bei dem Nutzer zur Verknüpfung auf Ihre Website weitergeleitet werden. Der Nutzer wird auf Ihre Website weitergeleitet, um sich in seinem Konto anzumelden. Nach der Anmeldung stimmt der Nutzer zu, dass seine Daten über Ihren Dienst an Google weitergegeben werden. Zu diesem Zeitpunkt sind das Google-Konto des Nutzers und Ihr Dienst verknüpft.
Die OAuth-Verknüpfung unterstützt den Autorisierungscode und die impliziten OAuth-Abläufe. Ihr Dienst muss einen OAuth 2.0-kompatiblen Autorisierungsendpunkt für den impliziten Ablauf hosten und bei Verwendung des Autorisierungscode-Ablaufs sowohl einen Autorisierungs- als auch einen Token-Austauschendpunkt bereitstellen.
Abbildung 1. Kontoverknüpfung auf dem Smartphone eines Nutzers mit Web-OAuth
OAuth-basierte App-Flip-Verknüpfung („App Flip“)
Ein OAuth-Ablauf, bei dem Nutzer zur Verknüpfung zu deiner App weitergeleitet werden.
OAuth-basierte App-Flip-Verknüpfung führt Nutzer beim Wechsel zwischen Ihren bestätigten Android- oder iOS-Apps und der Google-Plattform dazu, die vorgeschlagenen Änderungen beim Datenzugriff zu prüfen und ihre Einwilligung zur Verknüpfung ihres Kontos auf Ihrer Plattform mit ihrem Google-Konto zu erteilen. Damit App-Flip aktiviert werden kann, muss Ihr Dienst die OAuth-Verknüpfung oder die OAuth-basierte Google Log-in-Verknüpfung mit dem Autorisierungscode unterstützen.
App-Flip wird sowohl für Android als auch für iOS unterstützt.
Funktionsweise
Die Google App prüft, ob Ihre App auf dem Gerät des Nutzers installiert ist:
- Wenn die App gefunden wird, wird der Nutzer zu Ihrer App weitergeleitet. In Ihrer App wird die Einwilligung des Nutzers zur Verknüpfung des Kontos mit Google eingeholt und er wird dann wieder zur Google-Oberfläche zurückgeleitet.
- Wenn die App nicht gefunden wird oder während der App-Verknüpfung ein Fehler auftritt, wird der Nutzer zum optimierten oder Web-OAuth-Ablauf weitergeleitet.
Abbildung 2. Kontoverknüpfung auf dem Smartphone eines Nutzers mit App Flip
OAuth-basierte optimierte Verknüpfung („Optimiert“)
Bei der vereinfachten OAuth-basierten Google Sign-In-Verknüpfung wird Google Sign-In zusätzlich zur OAuth-Verknüpfung hinzugefügt. So können Nutzer die Verknüpfung abschließen, ohne die Google-Oberfläche zu verlassen. Das reduziert Reibungsverluste und Ausstiege. Die OAuth-basierte optimierte Verknüpfung bietet eine optimale Nutzererfahrung mit nahtloser Anmeldung, Kontoerstellung und Kontoverknüpfung, da die Google-Anmeldung mit der OAuth-Verknüpfung kombiniert wird. Ihr Dienst muss OAuth 2.0-konforme Autorisierungs- und Tokenaustausch-Endpunkte unterstützen.
Außerdem muss Ihr Token-Austausch-Endpunkt JSON Web Token (JWT)-Behauptungen unterstützen und die Intents check
, create
und get
implementieren.
So gehts:
Google bestätigt das Nutzerkonto und gibt folgende Informationen an Sie weiter:
- Wenn in Ihrer Datenbank ein Konto für den Nutzer vorhanden ist, verknüpft der Nutzer sein Google-Konto erfolgreich mit seinem Konto bei Ihrem Dienst.
- Wenn für den Nutzer in Ihrer Datenbank kein Konto vorhanden ist, kann er entweder ein neues Drittanbieterkonto mit den von Google bereitgestellten Informationen wie E-Mail-Adresse, Name und Profilbild erstellen oder sich für die Verknüpfung mit einer anderen E-Mail-Adresse anmelden. In diesem Fall müssen sich die Nutzer über Web-OAuth in Ihrem Dienst anmelden.
Abbildung 3. Kontoverknüpfung auf dem Smartphone eines Nutzers mit der optimierten Verknüpfung
Welchen Ablauf sollten Sie verwenden?
Wir empfehlen, alle Abläufe zu implementieren, damit Nutzer die Verknüpfung optimal nutzen können. Die optimierten und App-Flip-Abläufe reduzieren die Verknüpfungsprobleme, da Nutzer die Verknüpfung in wenigen Schritten abschließen können. Die Web-OAuth-Verknüpfung ist am wenigsten zeitaufwendig und eignet sich gut als Ausgangspunkt. Anschließend können Sie die anderen Verknüpfungsabläufe hinzufügen.
Mit Tokens arbeiten
Die Google-Kontoverknüpfung basiert auf dem Branchenstandard OAuth 2.0.
Sie stellen Google Zugriffstokens für einzelne Google-Konten aus, nachdem Sie die Einwilligung der Kontoinhaber zur Verknüpfung ihrer Konten und zur Freigabe von Daten eingeholt haben.
Arten von Tokens
Bei OAuth 2.0 werden Strings, sogenannte Tokens, verwendet, um zwischen dem User-Agent, der Clientanwendung und dem OAuth 2.0-Server zu kommunizieren.
Bei der Kontoverknüpfung können drei Arten von OAuth 2.0-Tokens verwendet werden:
Autorisierungscode: Ein kurzlebiges Token, das gegen ein Zugriffs- und ein Aktualisierungstoken eingetauscht werden kann. Aus Sicherheitsgründen ruft Google Ihren Autorisierungsendpunkt auf, um einen einmaligen oder sehr kurzlebigen Code abzurufen.
Zugriffstoken: Ein Token, das dem Inhaber Zugriff auf eine Ressource gewährt. Um das Risiko zu begrenzen, das durch den Verlust dieses Tokens entstehen könnte, hat es eine begrenzte Lebensdauer, die in der Regel nach etwa einer Stunde abläuft.
Aktualisierungstoken Ein langlebiges Token, das gegen ein neues Zugriffstoken eingetauscht werden kann, wenn ein Zugriffstoken abläuft. Bei der Einbindung Ihres Dienstes in Google wird dieses Token ausschließlich von Google gespeichert und verwendet. Google ruft Ihren Tokenaustausch-Endpunkt auf, um Aktualisierungstokens gegen Zugriffstokens auszutauschen, die wiederum für den Zugriff auf Nutzerdaten verwendet werden.
Token-Verarbeitung
Race-Bedingungen in geclusterten Umgebungen und Client-Server-Austauschen können bei der Arbeit mit Tokens zu komplexen Timing- und Fehlerbehandlungsszenarien führen. Beispiel:
- Sie erhalten eine Anfrage für ein neues Zugriffstoken und stellen ein neues aus. Gleichzeitig erhalten Sie eine Anfrage für den Zugriff auf die Ressource Ihres Dienstes mit dem vorherigen, nicht abgelaufenen Zugriffstoken.
- Google hat die Antwort auf deine Aktualisierungstokenanfrage noch nicht erhalten (oder wird sie nie erhalten). In der Zwischenzeit wird in einer Anfrage von Google das zuvor gültige Aktualisierungstoken verwendet.
Anfragen und Antworten können in beliebiger Reihenfolge oder gar nicht eintreffen, weil asynchrone Dienste in einem Cluster ausgeführt werden, aufgrund von Netzwerkverhalten oder aus anderen Gründen.
Ein sofortiger und vollständig konsistenter gemeinsamer Status sowohl innerhalb als auch zwischen den Token-Verarbeitungssystemen von Ihnen und Google kann nicht garantiert werden. Mehrere gültige, nicht abgelaufene Tokens können innerhalb oder zwischen Systemen innerhalb kurzer Zeit nebeneinander existieren. Um negative Auswirkungen auf die Nutzer zu minimieren, empfehlen wir Folgendes:
- Nicht abgelaufene Zugriffstokens akzeptieren, auch wenn ein neueres Token ausgestellt wurde.
- Alternativen zur Tokenrotation verwenden
- Unterstützung mehrerer gleichzeitig gültiger Zugriffs- und Aktualisierungstokens. Aus Sicherheitsgründen sollten Sie die Anzahl der Tokens und die Tokenlebensdauer begrenzen.
Wartungs- und Ausfallbehandlung
Bei Wartungsarbeiten oder unerwarteten Ausfällen kann Google Ihre Autorisierungs- oder Token-Austauschendpunkte möglicherweise nicht aufrufen, um Zugriffs- und Aktualisierungstokens zu erhalten.
Ihre Endpunkte sollten mit einem 503
-Fehlercode und einem leeren Text antworten. In diesem Fall wiederholt Google fehlgeschlagene Tokentauschanfragen für eine begrenzte Zeit. Wenn Google später Aktualisierungs- und Zugriffstokens abrufen kann, sind fehlgeschlagene Anfragen für Nutzer nicht sichtbar.
Fehlgeschlagene Anfragen für ein Zugriffstoken führen zu einem sichtbaren Fehler, wenn sie von einem Nutzer initiiert werden. Wenn der implizite OAuth 2.0-Vorgang verwendet wird, müssen Nutzer noch einmal versuchen, eine Verknüpfung herzustellen.
Empfehlungen
Es gibt viele Lösungen, um die Auswirkungen auf die Wartung zu minimieren. Hier sind einige Optionen:
Behalten Sie Ihren vorhandenen Dienst bei und leiten Sie eine begrenzte Anzahl von Anfragen an Ihren neu aktualisierten Dienst weiter. Migrieren Sie alle Anfragen erst, nachdem Sie die erwartete Funktionalität bestätigt haben.
Reduzieren Sie die Anzahl der Tokenanfragen während der Wartungszeit:
Begrenzen Sie Wartungszeiträume auf eine kürzere Dauer als die Lebensdauer des Zugriffstokens.
Lebensdauer des Zugriffstokens vorübergehend verlängern:
- Tokenlebensdauer auf länger als den Wartungszeitraum erhöhen.
- Warten Sie doppelt so lange wie die Lebensdauer des Zugriffstokens, damit Nutzer kurzlebige Tokens gegen Tokens mit längerer Gültigkeitsdauer eintauschen können.
- Wartung eingeben
- Antworten Sie auf Tokenanfragen mit dem Fehlercode
503
und einem leeren Textkörper. - Beenden Sie die Wartung.
- Verringern Sie die Tokenlebensdauer wieder auf den Normalwert.
Bei Google registrieren
Wir benötigen Details zu Ihrer OAuth 2.0-Einrichtung und zum Teilen der Anmeldedaten, um die Kontoverknüpfung zu ermöglichen. Weitere Informationen finden Sie unter Registrierung.