계정 연결 해제

연결 해제는 플랫폼 또는 Google에서 시작할 수 있으며, 두 플랫폼 모두에 일관된 링크 상태가 표시되어 최상의 사용자 환경을 제공합니다. 토큰 취소 엔드포인트 또는 계정 간 보호 지원은 Google 계정 연결의 선택사항입니다.

다음과 같은 이유로 계정이 연결 해제될 수 있습니다.

    • 의 사용자 요청
    • Google 애플리케이션 또는 Google 계정 설정
    • 플랫폼
  • 만료된 갱신 토큰 갱신 실패
  • 나 또는 Google에서 시작한 기타 이벤트 예를 들어 악용 및 위협 감지 서비스에 의한 계정 정지

사용자가 Google에서 연결 해제를 요청함

사용자의 Google 계정 또는 앱을 통해 계정 연결 해제가 시작되면 이전에 발급된 액세스 및 갱신 토큰이 삭제되고, 사용자 동의가 삭제되며, 토큰 취소 엔드포인트를 구현하기로 한 경우 선택적으로 토큰 취소 엔드포인트를 호출합니다.

사용자가 플랫폼에서 연결 해제를 요청함

사용자 계정의 URL과 같이 사용자가 연결을 해제할 수 있는 메커니즘을 제공해야 합니다. 사용자에게 연결 해제 방법을 제공하지 않는 경우 사용자가 연결된 계정을 관리할 수 있도록 Google 계정 링크를 포함하세요.

위험 및 이슈 공유 및 공동작업 (RISC)을 구현하고 사용자 계정 연결 상태 변경사항을 Google에 알릴 수 있습니다. 이를 통해 플랫폼과 Google 모두 업데이트 상태를 새로고침하거나 액세스 토큰 요청에 의존하지 않고도 현재의 일관된 연결 상태를 표시하는 개선된 사용자 환경을 제공할 수 있습니다.

토큰 만료

원활한 사용자 환경을 제공하고 서비스 중단을 방지하기 위해 Google은 전체 기간이 거의 끝나갈 때 리프레시 토큰을 갱신하려고 시도합니다. 유효한 갱신 토큰을 사용할 수 없는 경우 계정을 다시 연결하는 데 사용자 동의가 필요한 시나리오가 있습니다.

만료되지 않은 여러 액세스 토큰과 새로고침 토큰을 지원하도록 플랫폼을 설계하면 클러스터링된 환경 간의 클라이언트-서버 교환에 존재하는 경합 상태를 최소화하고, 사용자 중단을 방지하며, 복잡한 타이밍 및 오류 처리 시나리오를 최소화할 수 있습니다. 최종적으로 일관성이 있지만 이전에 발급된 토큰과 새로 발급된 만료되지 않은 토큰이 모두 클라이언트-서버 토큰 갱신 교환 중과 클러스터 동기화 전에 잠시 사용될 수 있습니다. 예를 들어 이전 만료되지 않은 액세스 토큰을 사용하는 서비스에 대한 Google 요청은 새 액세스 토큰을 발급한 직후, 하지만 Google에서 수신 및 클러스터 동기화가 실행되기 전에 발생합니다. 갱신 토큰 순환의 대체 보안 조치를 사용하는 것이 좋습니다.

기타 이벤트

계정은 비활성 상태, 정지, 악의적인 행위 등 다양한 이유로 연결 해제될 수 있습니다. 이러한 시나리오에서 플랫폼과 Google은 계정 및 연결 상태의 변경사항을 서로 알림으로 전송하여 사용자 계정을 가장 효과적으로 관리하고 다시 연결할 수 있습니다.

Google에서 호출할 토큰 취소 엔드포인트를 구현하고 RISC를 사용하여 토큰 취소 이벤트를 Google에 알림으로 전송하여 플랫폼과 Google이 일관된 사용자 계정 연결 상태를 유지하도록 합니다.

토큰 취소 엔드포인트

如果您支持 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 的请求重试请求。

계정 간 보안 (RISC)

如果您支持跨账号保护功能,您的平台可以在以下情况下通知 Google: 访问或刷新令牌会被撤消。这样,Google 就可以告知用户 更改关联状态、使令牌失效、清理安全凭据 授权。

跨账号保护以 RISC 标准是 OpenID Foundation。

安全事件令牌 用于通知 Google 令牌撤消。

解码后,令牌撤消事件如以下示例所示:

{
  "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"
    }
  }
}

用于将令牌撤消事件通知 Google 的安全事件令牌 必须符合下表中的要求:

令牌撤消事件
iss Issuer Claim:这是由您托管的网址,并且会分享给 在注册过程中与 Google 联系。
aud 受众群体声明:这可将 Google 标识为 JWT 收件人。它 必须设置为 google_account_linking
jti JWT ID 声明:这是您为每次 JWT 生成的唯一 ID 安全事件令牌
iat Issued At Claim:这是一个 NumericDate 值 表示创建此安全性事件令牌的时间。
toe 事件声明时间:此为可选 NumericDate 值,该值表示 已撤消。
exp 到期时间声明请勿包含此字段。 因为导致此通知的事件已经发生。
events
安全性事件声明:这是一个 JSON 对象,并且 只能包含一个令牌撤消事件。
subject_type 此字段必须设置为 oauth_token
token_type 这是被撤消的令牌类型, access_tokenrefresh_token
token_identifier_alg 这是用于对令牌进行编码的算法,必须 hash_SHA512_double
token 这是已撤消的令牌的 ID。

如需详细了解字段类型和格式,请参阅 JSON 网络令牌 (JWT)