Verknüpfung von Konten aufheben

Die Aufhebung der Verknüpfung kann über Ihre Plattform oder Google erfolgen. Wenn auf beiden Seiten derselbe Verknüpfungsstatus angezeigt wird, ist die Nutzerfreundlichkeit am höchsten. Die Unterstützung eines Endpunkts für den Widerruf von Tokens oder des produktübergreifenden Kontoschutzes ist für die Google-Kontoverknüpfung optional.

Die Verknüpfung von Konten kann aus folgenden Gründen aufgehoben werden:

  • Nutzeranfrage von
    • Einstellungen einer Google-Anwendung oder des Google-Kontos
    • Ihre Plattform
  • Abgelaufenes Aktualisierungstoken kann nicht verlängert werden
  • Andere Ereignisse, die von Ihnen oder Google initiiert werden. Beispiel: Kontosperrung durch Dienste zur Erkennung von Missbrauch und Bedrohungen.

Nutzer hat die Aufhebung der Verknüpfung mit Google beantragt

Wenn die Aufhebung der Kontoverknüpfung über das Google-Konto oder die App eines Nutzers initiiert wird, werden alle zuvor ausgestellten Zugriffs- und Aktualisierungstokens gelöscht, die Nutzereinwilligung entfernt und optional Ihr Tokenwiderrufsendepunkt aufgerufen, sofern Sie einen solchen implementiert haben.

Ein Nutzer hat das Aufheben der Verknüpfung mit Ihrer Plattform angefordert

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

Sie können die Funktion „Risiko- und Vorfallfreigabe und -zusammenarbeit“ (Risk & Incident Sharing and Collaboration, RISC) implementieren und Google über Änderungen am Kontoverknüpfungsstatus des Nutzers benachrichtigen. So wird die Nutzerfreundlichkeit verbessert, da sowohl auf Ihrer Plattform als auch bei Google ein aktueller und konsistenter Verknüpfungsstatus angezeigt wird, ohne dass eine Aktualisierung oder Zugriffstokenanfrage erforderlich ist.

Ablauf des Tokens

Um eine reibungslose Nutzererfahrung zu ermöglichen und Dienstunterbrechungen zu vermeiden, versucht Google, Aktualisierungstokens gegen Ende ihrer Lebensdauer zu erneuern. In einigen Szenarien ist möglicherweise die Einwilligung des Nutzers erforderlich, um Konten wieder zu verknüpfen, wenn kein gültiges Aktualisierungstoken verfügbar ist.

Wenn Sie Ihre Plattform so konzipieren, dass sie mehrere nicht abgelaufene Zugriffs- und Aktualisierungstokens unterstützt, können Sie Race-Bedingungen bei Client-Server-Austauschen zwischen geclusterten Umgebungen minimieren, Unterbrechungen für Nutzer vermeiden und komplexe Zeit- und Fehlerbehandlungsszenarien minimieren. Zwar können sowohl frühere als auch neu ausgestellte, noch nicht abgelaufene Tokens während des Austauschs von Client-Server-Tokens und vor der Clustersynchronisierung für kurze Zeit verwendet werden. Beispiel: Eine Google-Anfrage an Ihren Dienst, die das vorherige nicht abgelaufene Zugriffstoken verwendet, erfolgt kurz nach der Ausgabe eines neuen Zugriffstokens, aber noch vor dem Empfang und der Clustersynchronisierung bei Google. Wir empfehlen alternative Sicherheitsmaßnahmen zur Tokenrotation.

Weitere Ereignisse

Die Verknüpfung von Konten kann aus verschiedenen anderen Gründen aufgehoben werden, z. B. aufgrund von Inaktivität, Sperrung oder böswilligem Verhalten. In solchen Fällen können Ihre Plattform und Google Nutzerkonten am besten verwalten und neu verknüpfen, indem sie sich gegenseitig über Änderungen am Konto- und Verknüpfungsstatus informieren.

Implementieren Sie einen Endpunkt zum Widerrufen von Tokens, den Google aufrufen kann, und benachrichtigen Sie Google über Ihre Tokenwiderrufsereignisse mithilfe von RISC, damit Ihre Plattform und Google den Status der Nutzerkontoverknüpfung einheitlich verwalten können.

Endpunkt zum Widerrufen des Tokens

如果您支持 OAuth 2.0 令牌撤消端点, 您的平台可以接收来自 Google 的通知这样,您就可以告知用户 链接状态更改、使令牌失效,以及清理安全凭据和 授权。

请求的格式如下:

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

您的令牌撤消端点必须能够处理以下参数:

撤消端点参数
client_id 用于将请求来源标识为 Google 的字符串。此字符串必须 在您的系统中注册为 Google 的唯一标识符。
client_secret 您在 Google 中为您的服务注册的密钥字符串。
token 要撤消的令牌。
token_type_hint (可选)要撤消的令牌的类型,可以是 access_tokenrefresh_token。如果未指定,则默认为 access_token

在令牌被删除或无效时返回响应。请参阅以下内容: 示例:

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

如果由于任何原因导致令牌无法删除,则返回 503 响应代码。 如以下示例中所示:

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

Google 稍后或按照 Retry-After 的请求重试请求。

Produktübergreifender Kontoschutz (RISC)

Wenn Sie den produktübergreifenden Kontoschutz unterstützen, kann Ihre Plattform Google benachrichtigen, Zugriffs- oder Aktualisierungstokens werden widerrufen. So kann Google Nutzer über Änderungen des Verknüpfungsstatus, das Entwerten des Tokens, das Bereinigen von Sicherheitsanmeldedaten Autorisierungen erteilt.

Der produktübergreifende Kontoschutz basiert auf den RISC-Standard entwickelt im OpenID Foundation

Ein Token für Sicherheitsereignisse wird verwendet, um Google über den Widerruf von Tokens zu informieren.

Nach der Decodierung sieht ein Token-Widerrufsereignis so 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"
    }
  }
}

Tokens für Sicherheitsereignisse, mit denen Sie Google über Token-Widerrufe informieren müssen den Anforderungen in der folgenden Tabelle entsprechen:

Ereignisse zum Widerrufen von Tokens
iss Ausstelleranforderung:Dies ist eine URL, die Sie hosten und mit der sie geteilt wird. Google bei der Registrierung.
aud Audience Claim (Zielgruppenanforderung): Hiermit wird Google als JWT-Empfänger identifiziert. Es muss auf google_account_linking festgelegt sein.
jti JWT-ID-Anforderung:Dies ist eine eindeutige ID, die für jeden Tag generiert wird. Sicherheitsereignis-Tokens.
iat Ausgestellt bei Anspruch: Dies ist ein NumericDate-Wert. der den Zeitpunkt darstellt, zu dem dieses Sicherheitsereignistoken erstellt wurde.
toe Zeitpunkt des Anspruchs auf das Ereignis:Dies ist ein optionales NumericDate-Wert, der den Zeitpunkt darstellt, zu dem der Token wurde widerrufen.
exp Anspruch bezüglich Ablaufzeit: Dieses Feld darf nicht eingefügt werden. da das Ereignis, das zu dieser Benachrichtigung geführt hat, bereits stattgefunden hat.
events
Anforderung zu Sicherheitsereignissen: Dies ist ein JSON-Objekt und darf nur ein einziges Token-Widerrufsereignis enthalten.
subject_type Muss auf oauth_token festgelegt werden.
token_type Dies ist der Tokentyp, der widerrufen wird, 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-Webtoken (JWT).