Verknüpfung von Konten aufheben

Die Verknüpfung kann über deine Plattform oder Google initiiert werden. Außerdem ist die Anzeige beider Seiten jeweils einheitlich, wenn dies der Fall ist. Die Unterstützung eines Tokens zum Widerrufen des Tokens oder des kontoübergreifenden Schutzes ist für die Google-Kontoverknüpfung optional.

Die Verknüpfung von Konten kann folgendermaßen aufgehoben werden:

  • Nutzeranfrage von
  • Abgelaufenes Aktualisierungstoken kann nicht verlängert werden
  • Andere von Ihnen oder Google initiierte Ereignisse Beispiel: Sperrung von Konten durch Dienste zur Missbrauchs- und Bedrohungserkennung

Nutzer hat die Verknüpfung mit Google angefordert

Wenn die Verknüpfung über ein Google-Konto oder die App eines Nutzers aufgehoben wird, werden alle zuvor gewährten Zugriffs- und Aktualisierungstokens gelöscht. Außerdem wird die Nutzereinwilligung entfernt und optional der Widerrufsendpunkt für Tokens aufgerufen, sofern Sie einen implementiert haben.

Nutzer hat die Verknüpfung mit deiner Plattform angefordert

Du solltest Nutzern eine Möglichkeit bieten, die Verknüpfung aufzuheben, z. B. eine URL zu ihrem Konto. Wenn Sie Nutzern nicht die Möglichkeit bieten, die Verknüpfung aufzuheben, fügen Sie einen Link zum Google-Konto hinzu, damit die Nutzer ihr verknüpftes Konto verwalten können.

Sie können festlegen, dass das Risiko- und Risikomanagement (RISC) genutzt wird, und Google über Änderungen am Verknüpfungsstatus des Nutzerkontos informieren. Dies verbessert die Nutzererfahrung, da sowohl Ihre Plattform als auch Google einen aktuellen und konsistenten Verknüpfungsstatus anzeigen, ohne dass Sie zum Aktualisieren des Verknüpfungsstatus eine Aktualisierungs- oder Zugriffstokenanfrage benötigen.

Ablauf des Tokens

Für eine reibungslose Nutzererfahrung und um Dienstunterbrechungen zu vermeiden, versucht Google, die Aktualisierungstokens am Ende ihrer Lebensdauer zu verlängern. In einigen Szenarien ist die Zustimmung des Nutzers erforderlich, um Konten wieder zu verknüpfen, wenn kein gültiges Aktualisierungstoken verfügbar ist.

Wenn Sie Ihre Plattform so konfigurieren, dass mehrere nicht abgelaufene Zugriffs- und Aktualisierungstokens unterstützt werden, können Sie Race-Bedingungen in Client-Server-Austauschen zwischen geclusterten Umgebungen minimieren, Nutzerunterbrechungen vermeiden und komplexe Timing- und Fehlerbehandlungsszenarien minimieren. Letztendlich können sowohl vorherige als auch neu ausgestellte, noch nicht abgelaufene Tokens für kurze Zeit während des Austauschs des Client-Server-Tokens und vor der Clustersynchronisierung verwendet werden. Beispiel: Eine Google-Anfrage an Ihren Dienst, die das vorherige abgelaufene Zugriffstoken verwendet, erfolgt unmittelbar nach der Ausgabe eines neuen Zugriffstokens, aber vor Erhalt und Clustersynchronisierung bei Google. Es werden alternative Sicherheitsmaßnahmen zum Aktualisieren der Rotation von Tokens empfohlen.

Weitere Ereignisse

Die Verknüpfung der Konten kann auch aus anderen Gründen aufgehoben werden, z. B. wegen Inaktivität, Sperrung oder böswilligem Verhalten. In solchen Szenarien können deine Plattform und Google am besten Nutzerkonten verwalten und neu verknüpfen, indem sie sich gegenseitig über Änderungen am Konto- und Verknüpfungsstatus benachrichtigen.

Implementiere einen Endpunkt für den Widerruf eines Tokens, den Google anrufen soll, und teile Google mithilfe von RISC über deine Widerrufsereignisse mit ein, um sicherzustellen, dass deine Plattform und Google den Kontoverknüpfungsstatus einheitlich halten.

Endpunkt für Widerruf des Tokens

Wenn Sie einen OAuth 2.0- Token-Sperrendpunkt unterstützen , kann Ihre Plattform Benachrichtigungen von Google erhalten. Auf diese Weise können Sie Benutzer über Änderungen des Verbindungsstatus informieren, ein Token ungültig machen sowie Sicherheitsanmeldeinformationen und Berechtigungsberechtigungen bereinigen.

Die Anfrage hat das folgende Formular:

POST /revoke HTTP/1.1
Host: oauth2.example.com
Content-Type: application/x-www-form-urlencoded

client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET&token=TOKEN&token_type_hint=refresh_token

Ihr Token-Sperrendpunkt muss in der Lage sein, die folgenden Parameter zu verarbeiten:

Sperrendpunktparameter
client_id Eine Zeichenfolge, die den Anforderungsursprung als Google identifiziert. Diese Zeichenfolge muss in Ihrem System als eindeutige Kennung von Google registriert sein.
client_secret Eine geheime Zeichenfolge, die Sie bei Google für Ihren Dienst registriert haben.
token Das zu widerrufende Token.
token_type_hint (Optional) Der Typ des access_token Tokens, entweder ein access_token oder ein refresh_token . Wenn nicht angegeben, wird standardmäßig access_token .

Gibt eine Antwort zurück, wenn das Token gelöscht oder ungültig ist. Ein Beispiel finden Sie im Folgenden:

HTTP/1.1 200 Success
Content-Type: application/json;charset=UTF-8

Wenn das Token aus irgendeinem Grund nicht gelöscht werden kann, geben Sie einen 503-Antwortcode zurück, wie im folgenden Beispiel gezeigt:

HTTP/1.1 503 Service Unavailable
Content-Type: application/json;charset=UTF-8
Retry-After: HTTP-date / delay-seconds

Google wiederholt die Anfrage später oder wie von Retry-After angefordert.

Kontoübergreifender Schutz

Wenn Sie den Cross-Account-Schutz unterstützen, kann Ihre Plattform Google benachrichtigen, wenn Zugriffs- oder Aktualisierungstoken widerrufen werden. Auf diese Weise kann Google Nutzer über Änderungen des Verbindungsstatus informieren, das Token ungültig machen, Sicherheitsanmeldeinformationen bereinigen und Berechtigungen erteilen.

Der kontenübergreifende Schutz basiert auf dem von der OpenID Foundation entwickelten RISC-Standard .

Ein Sicherheitsereignistoken wird verwendet, um Google über den Widerruf von Token zu informieren.

Beim Dekodieren sieht ein Token-Sperrereignis wie folgt aus:

{
  "iss":"http://risc.example.com",
  "iat":1521068887,
  "aud":"google_account_linking",
  "jti":"101942095",
  "toe": "1508184602",
  "events": {
    "https://schemas.openid.net/secevent/oauth/event-type/token-revoked":{
      "subject_type": "oauth_token",
      "token_type": "refresh_token",
      "token_identifier_alg": "hash_SHA512_double",
      "token": "double SHA-512 hash value of token"
    }
  }
}

Sicherheitsereignistoken, mit denen Sie Google über Token-Widerrufsereignisse informieren, müssen den Anforderungen in der folgenden Tabelle entsprechen:

Token-Sperrereignisse
iss Emittentenanspruch: Dies ist eine URL, die Sie hosten und die bei der Registrierung für Google freigegeben wird.
aud Zielgruppenanspruch: Hiermit wird Google als JWT-Empfänger identifiziert. Es muss auf google_account_linking .
jti JWT-ID-Anspruch: Dies ist eine eindeutige ID, die Sie für jedes Sicherheitsereignistoken generieren.
iat Bei Anspruch ausgegeben: Dies ist ein NumericDate Wert, der den Zeitpunkt darstellt, zu dem dieses Sicherheitsereignistoken erstellt wurde.
toe Time of Event Claim: Dies ist ein optionaler NumericDate Wert, der den Zeitpunkt darstellt, zu dem das Token widerrufen wurde.
exp Ablaufzeit Claim: dieses Feld nicht enthalten, da das Ereignis in dieser Mitteilung resultierenden hat bereits stattgefunden.
events
Anspruch auf Sicherheitsereignisse: Dies ist ein JSON-Objekt und darf nur ein einziges Token-Sperrereignis enthalten.
subject_type Dies muss auf oauth_token .
token_type Dies ist die Art des access_token Tokens, entweder access_token oder refresh_token .
token_identifier_alg Dies ist der Algorithmus, der zum Codieren des Tokens verwendet wird. Er muss hash_SHA512_double .
token Dies ist die ID des widerrufenen Tokens.

Weitere Informationen zu Feldtypen und -formaten finden Sie unter JSON Web Token (JWT) .