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 so Anwendungen und Geräten von Google Zugriff auf Ihre Dienste gewähren.
Nutzer können ihre Konten verknüpfen oder die Verknüpfung aufheben und optional mithilfe der Google-Kontoverknüpfung ein neues Konto auf Ihrer Plattform erstellen.
Anwendungsfälle
Einige der Gründe für die Implementierung der Google-Kontoverknüpfung:
Die Daten eines Nutzers von Ihrer Plattform für Google-Apps und -Dienste freigeben.
Spielen Sie Ihre Video- und Filminhalte über Google TV ab.
Mit Google Smart Home verbundene Geräte können Sie über die Google Home App und Google Assistant verwalten und steuern. Sagen Sie dazu „Hey Google, schalte das Licht an“.
Erstellen Sie benutzerdefinierte Google Assistant-Funktionen und -Funktionen mit Unterhaltungsaktionen („Hey Google, bestell mein Übliches bei Starbucks“).
Du kannst Nutzern ermöglichen, sich Prämien zu verdienen, indem sie sich ausgewählte Livestreams auf YouTube ansehen, nachdem sie ihr Google-Konto mit einem Prämienpartnerkonto verknüpft haben.
Neue Konten bei der Registrierung vorab mit den einvernehmlich freigegebenen Daten aus einem Google-Kontoprofil ausfüllen.
Unterstützte Features
Diese Funktionen werden durch die Google-Kontoverknüpfung unterstützt:
Mithilfe von impliziten OAuth-Verknüpfungen können Sie Ihre Daten schnell und einfach freigeben.
Der OAuth-Verknüpfungs-Autorisierungscode bietet verbesserte Sicherheit.
Melden Sie vorhandene Nutzer an oder registrieren Sie neue von Google bestätigte Nutzer auf Ihrer Plattform, holen Sie ihre Einwilligung ein und geben Sie Daten sicher über optimierte Verknüpfungen frei.
App-Flip hilft Ihnen, Reibungspunkte zu vermeiden. Durch einmaliges Tippen in einer vertrauenswürdigen Google-App wird die bestätigte Android- oder iOS-App durch einmaliges Tippen sicher geöffnet. Durch einmaliges Tippen wird die Nutzereinwilligung erteilt und Konten verknüpft.
Verbessern Sie den Datenschutz für Nutzer, indem Sie benutzerdefinierte Bereiche definieren, um nur notwendige Daten freizugeben, und stärken 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 der Konten aufheben. Durch die Implementierung eines optionalen Endpunkts zum Widerrufen eines Tokens können Sie mit von Google initiierten Ereignissen synchron bleiben. Mit dem kontoübergreifenden Schutz (RISC) können Sie Google über alle Ereignisse zum Aufheben von Verknüpfungen auf Ihrer Plattform informieren.
Abläufe zur Kontoverknüpfung
Es gibt drei OAuth-basierte Abläufe für die Google-Kontoverknüpfung, bei denen Sie OAuth 2.0-konforme Endpunkte für die Autorisierung und den Tokenaustausch 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“)
Dabei handelt es sich um den grundlegenden OAuth-Vorgang, bei dem Nutzer zur Verknüpfung auf Ihre Website geleitet werden. Der Nutzer wird auf Ihre Website weitergeleitet, wo er sich in seinem Konto anmelden kann. Nach der Anmeldung stimmt der Nutzer zu, seine Daten in Ihrem Dienst mit Google zu teilen. Das Google-Konto des Nutzers und Ihr Dienst sind dann verknüpft.
Die OAuth-Verknüpfung unterstützt den Autorisierungscode und implizite OAuth-Abläufe. Ihr Dienst muss für den impliziten Vorgang einen OAuth 2.0-kompatiblen Autorisierungsendpunkt hosten und bei Verwendung des Autorisierungscode-Vorgangs sowohl einen Autorisierungs- als auch einen Tokenaustausch-Endpunkt verfügbar machen.
Abbildung 1. Kontoverknüpfung auf dem Smartphone eines Nutzers mit Web OAuth
OAuth-basierte App-Flip-Verknüpfung („App-Flip“)
Ein OAuth-Ablauf, über den Nutzer zur Verknüpfung zu deiner App weitergeleitet werden.
Die OAuth-basierte App-Flip-Verknüpfung leitet Nutzer beim Wechsel zwischen Ihren bestätigten Android- oder iOS-Apps und der Google-Plattform dazu, die vorgeschlagenen Änderungen am Datenzugriff zu prüfen und ihre Einwilligung zur Verknüpfung ihres Kontos auf Ihrer Plattform mit ihrem Google-Konto zu erteilen. Zum Aktivieren von App-Flip 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 auf Ihre App umgeschaltet. In Ihrer App wird die Einwilligung des Nutzers zur Verknüpfung des Kontos mit Google eingeholt und dann zur Google-Oberfläche zurückgekehrt.
- Wenn die App nicht gefunden wird oder ein Fehler während des Verknüpfungsvorgangs für die App-Flip-Verknüpfung auftritt, wird der Nutzer zum optimierten OAuth-Vorgang oder zum Web-OAuth-Vorgang weitergeleitet.
Abbildung 2. Kontoverknüpfung auf dem Smartphone eines Nutzers mit App Flip
OAuth-basierte optimierte Verknüpfung („Optimiert“)
Bei der vereinfachten Verknüpfung mit OAuth-basiertem Google Log-in wird neben der OAuth-Verknüpfung auch Google Log-in hinzugefügt. So können Nutzer den Verknüpfungsvorgang abschließen, ohne die Google-Oberfläche verlassen zu müssen. Dadurch werden Reibungspunkte und Abbrüche verringert. OAuth-basierte, optimierte Verknüpfungen bieten die beste Nutzererfahrung mit nahtloser Anmeldung, Kontoerstellung und Kontoverknüpfung, indem Google Log-in mit OAuth-Verknüpfung kombiniert wird. Ihr Dienst muss OAuth 2.0-kompatible Endpunkte für die Autorisierung und den Tokenaustausch unterstützen.
Darüber hinaus muss der Endpunkt des Tokenaustauschs JSON-Webtoken-Assertions (JWT) unterstützen und die Intents check
, create
und get
implementieren.
Funktionsweise:
Google macht das Nutzerkonto geltend und gibt folgende Informationen an Sie weiter:
- Wenn für den Nutzer in Ihrer Datenbank ein Konto vorhanden ist, verknüpft er sein Google-Konto erfolgreich mit seinem Konto bei Ihrem Dienst.
- Wenn für den Nutzer in Ihrer Datenbank kein Konto vorhanden ist, kann der Nutzer entweder ein neues Drittanbieterkonto mit den von Google bereitgestellten Informationen erstellen (E-Mail-Adresse, Name und Profilbild) oder sich mit einer anderen E-Mail-Adresse anmelden und eine Verknüpfung dazu erstellen. Dazu muss er sich über Web OAuth bei 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 die Verknüpfung für Nutzer reibungslos funktioniert. Die Abläufe „Optimierte“ und „App-Flip“ verringern Probleme bei der Verknüpfung, da Nutzer den Verknüpfungsvorgang in wenigen Schritten abschließen können. Die Web-OAuth-Verknüpfung ist am einfachsten und ist ein guter Ausgangspunkt, nachdem Sie die anderen Verknüpfungsabläufe hinzufügen können.
Mit Tokens arbeiten
Die Google-Kontoverknüpfung basiert auf dem OAuth 2.0-Branchenstandard.
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.
Token-Typen
OAuth 2.0 verwendet Zeichenfolgen, die als Token bezeichnet werden, um zwischen dem Benutzeragenten, der Clientanwendung und dem OAuth 2.0-Server zu kommunizieren.
Während der Kontoverknüpfung können drei Arten von OAuth 2.0-Token verwendet werden:
Autorisierungscode . Ein kurzlebiges Token, das gegen ein Zugriffs- und ein Aktualisierungstoken ausgetauscht werden kann. Aus Sicherheitsgründen ruft Google Ihren Autorisierungsendpunkt an, um eine einmalige Verwendung oder einen sehr kurzlebigen Code zu erhalten.
Zugriffstoken . Ein Token, das dem Inhaber Zugriff auf eine Ressource gewährt. Um die Exposition zu begrenzen, die sich aus dem Verlust dieses Tokens ergeben könnte, hat es eine begrenzte Lebensdauer, die normalerweise nach etwa einer Stunde abläuft.
Token aktualisieren . Ein langlebiges Token, das nach Ablauf eines Zugriffstokens gegen ein neues Zugriffstoken ausgetauscht werden kann. Wenn Ihr Dienst in Google integriert ist, wird dieses Token ausschließlich von Google gespeichert und verwendet. Google ruft Ihren Token Exchange-Endpunkt auf, um Aktualisierungstoken gegen Zugriffstoken auszutauschen, die wiederum für den Zugriff auf Benutzerdaten verwendet werden.
Token-Handling
Race-Bedingungen in Cluster-Umgebungen und Client-Server-Austausch können bei der Arbeit mit Token zu komplexen Zeit- und Fehlerbehandlungsszenarien führen. Beispielsweise:
- Sie erhalten eine Anforderung für ein neues Zugriffstoken und stellen ein neues Zugriffstoken aus. Gleichzeitig erhalten Sie eine Anforderung für den Zugriff auf die Ressource Ihres Dienstes unter Verwendung des vorherigen, nicht abgelaufenen Zugriffstokens.
- Ihre Antwort auf das Aktualisierungstoken muss noch von Google empfangen werden (oder wird von Google nie empfangen). In der Zwischenzeit wird das zuvor gültige Aktualisierungstoken in einer Anfrage von Google verwendet.
Anfragen und Antworten können in beliebiger Reihenfolge oder gar nicht eingehen, da asynchrone Dienste in einem Cluster ausgeführt werden, das Netzwerkverhalten oder andere Mittel.
Ein sofortiger und vollständig konsistenter gemeinsamer Status sowohl innerhalb als auch zwischen Ihren und Googles Token-Handling-Systemen kann nicht garantiert werden. Mehrere gültige, nicht abgelaufene Token können innerhalb oder zwischen Systemen innerhalb kurzer Zeit nebeneinander existieren. Um negative Auswirkungen auf die Benutzer zu minimieren, empfehlen wir Folgendes:
- Akzeptieren Sie nicht abgelaufene Zugriffstoken, auch nachdem ein neueres Token ausgestellt wurde.
- Verwenden Sie Alternativen zum Aktualisieren der Token-Rotation .
- Unterstützt mehrere gleichzeitig gültige Zugriffs- und Aktualisierungstoken. Aus Sicherheitsgründen sollten Sie die Anzahl der Token und die Lebensdauer der Token begrenzen.
Wartung und Ausfallbehandlung
Während der Wartung oder bei ungeplanten Ausfällen kann Google möglicherweise Ihre Autorisierungs- oder Token-Exchange-Endpunkte nicht aufrufen, um Zugriff zu erhalten und Token zu aktualisieren.
Ihre Endpunkte sollten mit einem 503
Fehlercode und einem leeren Text antworten. In diesem Fall wiederholt Google fehlgeschlagene Token-Austauschanforderungen für eine begrenzte Zeit. Sofern Google später Aktualisierungs- und Zugriffstoken erhalten kann, sind fehlgeschlagene Anforderungen für Nutzer nicht sichtbar.
Fehlgeschlagene Anforderungen für ein Zugriffstoken führen zu einem sichtbaren Fehler, wenn sie von einem Benutzer initiiert werden. Benutzer müssen Verbindungsfehler erneut versuchen, wenn der implizite OAuth 2.0-Fluss verwendet wird.
Empfehlungen
Es gibt viele Lösungen, um die Auswirkungen auf die Wartung zu minimieren. Einige Optionen zu berücksichtigen:
Behalten Sie Ihren vorhandenen Dienst bei und leiten Sie eine begrenzte Anzahl von Anforderungen an Ihren neu aktualisierten Dienst weiter. Migrieren Sie alle Anforderungen erst, nachdem Sie die erwartete Funktionalität bestätigt haben.
Reduzieren Sie die Anzahl der Token-Anforderungen während des Wartungszeitraums:
Begrenzen Sie die Wartungszeiträume auf weniger als die Lebensdauer des Zugriffstokens.
Erhöhen Sie vorübergehend die Lebensdauer des Zugriffstokens:
- Erhöhen Sie die Token-Lebensdauer auf mehr als den Wartungszeitraum.
- Warten Sie doppelt so lange wie die Lebensdauer Ihres Zugriffstokens, damit Benutzer kurzlebige Token gegen Token mit längerer Dauer austauschen können.
- Geben Sie die Wartung ein.
- Antworten Sie auf Token-Anforderungen mit einem
503
Fehlercode und einem leeren Text. - Beenden Sie die Wartung.
- Verringern Sie die Token-Lebensdauer wieder auf den Normalwert.
Bei Google registrieren
Wir benötigen Details zu Ihrer OAuth 2.0-Einrichtung und zur Freigabe von Anmeldedaten, um die Kontoverknüpfung zu ermöglichen. Weitere Informationen finden Sie unter Registrierung.