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
- eine Google-Anwendung oder die Google-Kontoeinstellungen
- Ihre Plattform
- 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 |
|
Weitere Informationen zu Feldtypen und -formaten finden Sie unter JSON Web Token (JWT) .