Überblick

Durch die Verknüpfung von Konten können Google-Kontoinhaber schnell, nahtlos und sicher eine Verbindung zu Ihren Diensten herstellen. Sie können Google Account Linking 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 Benutzers sicher mit seinem Konto auf Ihrer Plattform verknüpfen und so Google-Anwendungen und -Geräten Zugriff auf Ihre Dienste gewähren.

Benutzer können ihre Konten mit Google Account Linking verknüpfen oder die Verknüpfung aufheben und optional ein neues Konto auf Ihrer Plattform erstellen.

Anwendungsfälle

Einige der Gründe für die Implementierung von Google Account Linking sind:

  • Teilen Sie die Daten eines Nutzers von Ihrer Plattform mit Google Apps und Diensten.

  • Spielen Sie Ihre Video- und Filminhalte mit Google TV ab .

  • Verwalten und steuern Sie mit Google Smart Home verbundene Geräte mithilfe der Google Home-App und des Google-Assistenten "Hey Google, mach das Licht an".

  • Erstellen Sie mit Conversational Actions "Hey Google, bestellen Sie mein übliches bei Starbucks" benutzerdefinierte Google Assistant-Erlebnisse und -Funktionen.

  • Ermöglichen Sie Nutzern, Prämien zu verdienen, indem Sie berechtigte Live-Streams auf YouTube anzeigen, nachdem Sie ihr Google-Konto mit einem Prämien-Partnerkonto verknüpft haben.

  • Füllen Sie neue Konten während der Anmeldung mit einvernehmlich freigegebenen Daten aus einem Google-Kontoprofil vor .

Unterstützte Funktionen

Diese Funktionen werden von Google Account Linking unterstützt:

  • Teilen Sie Ihre Daten schnell und einfach mithilfe des impliziten OAuth Linking- Flusses.

  • Bieten Sie mit dem OAuth Linking-Autorisierungscode- Fluss eine verbesserte Sicherheit.

  • Melden Sie vorhandene Benutzer an oder melden Sie neue von Google verifizierte Benutzer bei Ihrer Plattform an, holen Sie deren Zustimmung ein und teilen Sie Daten sicher mit Streamlined Linking .

  • Reduzieren Sie die Reibung mit App Flip . In einer vertrauenswürdigen Google-App wird Ihre verifizierte Android- oder iOS-App durch einmaliges Tippen sicher geöffnet, und durch einmaliges Tippen wird die Zustimmung des Benutzers erteilt und Konten verknüpft.

  • Verbessern Sie die Privatsphäre der Benutzer, indem Sie benutzerdefinierte Bereiche definieren, um nur die erforderlichen Daten gemeinsam zu nutzen. Erhöhen Sie das Vertrauen der Benutzer, indem Sie klar definieren, wie ihre Daten verwendet werden.

  • Der Zugriff auf Daten und Dienste, die auf Ihrer Plattform gehostet werden, kann durch Aufheben der Verknüpfung von Konten widerrufen werden. Durch die Implementierung eines optionalen Token-Sperrendpunkts können Sie mit von Google initiierten Ereignissen synchron bleiben, während Sie mit Cross-Account Protection (RISC) Google über nicht verknüpfte Ereignisse auf Ihrer Plattform informieren können.

Kontoverknüpfungsabläufe

Es gibt 3 Google Account Linking-Flows, die alle auf OAuth basieren und erfordern, dass Sie OAuth 2.0-konforme Autorisierungs- und Token-Exchange-Endpunkte verwalten oder steuern.

Während des Verknüpfungsprozesses stellen Sie Zugriffstoken für einzelne Google-Konten an Google aus, nachdem Sie die Zustimmung der Kontoinhaber erhalten haben, ihre Konten zu verknüpfen und Daten zu teilen.

OAuth-Verknüpfung ('Web OAuth')

Dies ist der grundlegende OAuth-Ablauf , der Benutzer zum Verknüpfen an Ihre Website sendet. Der Benutzer wird auf Ihre Website weitergeleitet, um sich in seinem Konto anzumelden. Nach der Anmeldung stimmt der Nutzer zu, seine Daten in Ihrem Dienst mit Google zu teilen. Zu diesem Zeitpunkt sind das Google-Konto des Nutzers und Ihr Dienst verknüpft.

OAuth Linking unterstützt den Autorisierungscode und implizite OAuth-Flows. Ihr Dienst muss einen OAuth 2.0-kompatiblen Autorisierungsendpunkt für den impliziten Fluss hosten und bei Verwendung des Autorisierungscodeflusses sowohl einen Autorisierungs- als auch einen Token-Austauschendpunkt verfügbar machen.

Abbildung 1 . Kontoverknüpfung auf dem Telefon eines Benutzers mit Web OAuth

OAuth-basiertes App Flip Linking ('App Flip')

Ein OAuth-Flow, der Benutzer zur Verknüpfung an Ihre App sendet.

OAuth-basiertes App Flip Linking führt Benutzer beim Wechsel zwischen Ihren verifizierten mobilen Android- oder iOS-Apps und der Google-Plattform dazu, die vorgeschlagenen Änderungen beim Datenzugriff zu überprüfen und ihre Zustimmung zu erteilen, ihr Konto auf Ihrer Plattform mit ihrem Google-Konto zu verknüpfen. Um App Flip zu aktivieren, muss Ihr Dienst OAuth Linking oder OAuth-basiertes Google Sign-In Linking mithilfe des Autorisierungscode- Flusses unterstützen.

App Flip wird sowohl für Android als auch für iOS unterstützt .

Wie es funktioniert:

Die Google App prüft, ob Ihre App auf dem Gerät des Nutzers installiert ist:

  • Wenn die App gefunden wird, wird der Benutzer zu Ihrer App "gespiegelt". Ihre App holt die Zustimmung des Nutzers ein, das Konto mit Google zu verknüpfen, und wechselt dann zurück zur Google-Oberfläche.
  • Wenn die App nicht gefunden wird oder während des App-Flip-Linking-Prozesses ein Fehler auftritt, wird der Benutzer zum Streamlined- oder Web-OAuth-Flow umgeleitet.

Abbildung 2 . Kontoverknüpfung auf dem Telefon eines Benutzers mit App Flip

OAuth-basiertes Streamlined Linking ('Streamlined')

OAuth-basiertes Google-Anmelden Durch die optimierte Verknüpfung wird Google-Anmeldung zusätzlich zur OAuth-Verknüpfung hinzugefügt, sodass Benutzer den Verknüpfungsprozess vollständig verknüpfen können, ohne die Google-Oberfläche zu verlassen, wodurch Reibungen und Drop-Offs verringert werden. OAuth-basiertes Streamlined Linking bietet die beste Benutzererfahrung mit nahtloser Anmeldung, Kontoerstellung und Kontoverknüpfung, indem Google Sign-In mit OAuth-Verknüpfung kombiniert wird. Ihr Dienst muss OAuth 2.0-kompatible Autorisierungs- und Token-Exchange-Endpunkte unterstützen. Darüber hinaus muss der Token - Austausch-Endpunkt unterstützen JSON Web Token (JWT) Behauptungen und die Umsetzung check , create und get , Absichten.

Wie es funktioniert:

Google bestätigt das Benutzerkonto und gibt diese Informationen an Sie weiter:

  • Wenn für den Nutzer in Ihrer Datenbank ein Konto vorhanden ist, verknüpft der Nutzer sein Google-Konto erfolgreich mit seinem Konto in Ihrem Dienst.
  • Wenn für den Benutzer in Ihrer Datenbank kein Konto vorhanden ist, kann der Benutzer entweder ein neues 3P-Konto mit den von Google bereitgestellten Informationen erstellen: E-Mail, Name und Profilbild , oder sich anmelden und mit einer anderen E-Mail verknüpfen (dies erfordert sie) um sich über Web OAuth bei Ihrem Dienst anzumelden).

Abbildung 3 . Kontoverknüpfung auf dem Telefon eines Benutzers mit optimierter Verknüpfung

Welchen Flow solltest du verwenden?

Wir empfehlen, alle Flows zu implementieren, um sicherzustellen, dass Benutzer die beste Verknüpfungserfahrung erhalten. Die Streamlined- und App-Flip-Flows reduzieren die Verbindungsreibung, da Benutzer den Verknüpfungsprozess in sehr wenigen Schritten abschließen können. Die Web-OAuth-Verknüpfung hat den geringsten Aufwand und ist ein guter Ausgangspunkt, um die anderen Verknüpfungsabläufe hinzuzufügen.

Arbeiten mit Token

Die Verknüpfung von Google-Konten basiert auf dem Industriestandard OAuth 2.0.

Sie stellen Zugriffstoken für einzelne Google-Konten an Google aus, nachdem Sie die Zustimmung der Kontoinhaber erhalten haben, ihre Konten zu verknüpfen und Daten zu teilen.

Token types

OAuth 2.0 uses strings called tokens to communicate between the user agent, the client application, and the OAuth 2.0 server.

Three types of OAuth 2.0 tokens can be used during account linking:

  • Authorization code. A short-lived token that can be exchanged for an access and a refresh token. For security purposes, Google calls your authorization endpoint to obtain a single use or very short-lived code.

  • Access token. A token that grants the bearer access to a resource. To limit exposure that could result from the loss of this token, it has a limited lifetime, usually expiring after an hour or so.

  • Refresh token. A long-lived token that can be exchanged for a new access token when an access token expires. When your service integrates with Google, this token is exclusively stored and used by Google. Google calls your token exchange endpoint to exchange refresh tokens for access tokens, which are in turn used to access user data.

Token handling

Race conditions in clustered environments and client-server exchanges can result in complex timing and error handling scenarios when working with tokens. For example:

  • You receive a request for a new access token, and you issue a new access token. Concurrently, you receive a request for access to your service's resource using the previous, unexpired access token.
  • Your refresh token reply is yet to be received (or is never received) by Google. Meanwhile, the previously valid refresh token is used in a request from Google.

Requests and replies can arrive in any order, or not at all due to asynchronous services running in a cluster, network behavior, or other means.

Immediate and fully consistent shared state both within, and between, your and Google's token handling systems cannot be guaranteed. Multiple valid, unexpired tokens can coexist within or across systems short period of time. To minimize negative user impact we recommend you do the following:

  • Accept unexpired access tokens, even after a newer token is issued.
  • Use alternatives to Refresh Token Rotation.
  • Support multiple, concurrently valid access and refresh tokens. For security, you should limit the number of tokens and token lifetime.
Maintenance and outage handling

During maintenance or unplanned outages Google might be unable to call your authorization or token exchange endpoints to obtain access and refresh tokens.

Your endpoints should respond with a 503 error code and empty body. In this case, Google retries failed token exchange requests for a limited time. Provided that Google is later able to obtain refresh and access tokens, failed requests are not visible to users.

Failing requests for an access token result in a visible error, if initiated by a user. Users will be required to retry linking failures if the implicit OAuth 2.0 flow is used.

Recommendations

There are many solutions to minimize maintenance impact. Some options to consider:

  • Maintain your existing service and route a limited number of requests to your newly updated service. Migrate all requests only after confirming expected functionality.

  • Reduce the number of token requests during the maintenance period:

    • Limit maintenance periods to less than the access token lifetime.

    • Temporarily increase the access token lifetime:

      1. Increase token lifetime to greater than maintenance period.
      2. Wait twice the duration of your access token lifetime, enabling users to exchange short lived tokens for longer duration tokens.
      3. Enter maintenance.
      4. Respond to token requests with a 503 error code and empty body.
      5. Exit maintenance.
      6. Decrease token lifetime back to normal.

Registrierung bei Google

Wir benötigen Details zu Ihrem OAuth 2.0-Setup und zur Freigabe von Anmeldeinformationen, um die Kontoverknüpfung zu ermöglichen. Siehe Registrierung für Details.