Überblick

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 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.

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.