Отключение связи может быть инициировано с вашей платформы или с Google, а отображение одинакового состояния ссылки на обеих платформах обеспечивает наилучшее взаимодействие с пользователем. Поддержка конечной точки отзыва токена или защиты нескольких учетных записей не является обязательной для связывания учетных записей Google.
Учетные записи могут быть отсоединены любым из следующих способов:
- Запрос пользователя от
- настройки приложения Google или учетной записи Google
- Ваша платформа
- Невозможность продлить токен обновления с истекшим сроком действия.
- Другие события, инициированные вами или Google. Например, блокировка учетной записи службами обнаружения злоупотреблений и угроз.
Пользователь запросил отмену связи с Google
Отмена связи учетной записи, инициированная через учетную запись Google или приложение пользователя, удаляет все ранее выданные токены доступа и обновления, удаляет согласие пользователя и при необходимости вызывает конечную точку отзыва токена, если вы решили ее реализовать.
Пользователь запросил отмену связи с вашей платформой
Вы должны предоставить пользователям механизм отключения связи, например URL-адрес их учетной записи. Если вы не предлагаете пользователям возможность отсоединиться, добавьте ссылку на учетную запись Google , чтобы пользователи могли управлять своей связанной учетной записью.
Вы можете реализовать разделение рисков и инцидентов и сотрудничество (RISC) и уведомлять Google об изменениях в статусе привязки учетных записей пользователей. Это позволяет улучшить взаимодействие с пользователем, поскольку и ваша платформа, и Google отображают текущий и согласованный статус связывания без необходимости полагаться на запрос обновления или токена доступа для обновления состояния связывания.
Срок действия токена
Чтобы обеспечить удобство работы пользователей и избежать сбоев в работе служб, Google пытается обновить токены обновления ближе к концу их срока службы. В некоторых сценариях для повторного связывания учетных записей может потребоваться согласие пользователя, когда действительный токен обновления недоступен.
Разработка вашей платформы для поддержки нескольких токенов доступа и обновления с истекшим сроком действия может минимизировать условия гонки, присутствующие при обмене клиент-сервер между кластерными средами, избежать сбоев в работе пользователей и минимизировать сложные сценарии синхронизации и обработки ошибок. Несмотря на то, что в конечном итоге они являются согласованными, как предыдущие, так и новые выпущенные токены с истекшим сроком действия могут использоваться в течение короткого периода времени во время обновления токена клиент-сервер и до синхронизации кластера. Например, запрос Google к вашей службе, использующий предыдущий токен доступа с истекшим сроком действия, происходит сразу после выдачи нового токена доступа, но до того, как в Google произойдет получение и синхронизация кластера. Рекомендуется использовать альтернативные меры безопасности для обновления ротации токенов .
Другие события
Учетные записи могут быть отключены по различным другим причинам, таким как бездействие, блокировка, злонамеренное поведение и т. д. В таких сценариях ваша платформа и Google могут лучше всего управлять учетными записями пользователей и повторно связывать их, уведомляя друг друга об изменениях состояния учетной записи и связи.
Внедрите конечную точку отзыва токена, чтобы Google мог звонить, и уведомляйте Google о событиях отзыва ваших токенов с помощью RISC, чтобы гарантировать, что ваша платформа и 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_token 或 refresh_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 网络令牌 (JWT)。
,Отключение связи может быть инициировано с вашей платформы или с Google, а отображение одинакового состояния ссылки на обеих платформах обеспечивает наилучшее взаимодействие с пользователем. Поддержка конечной точки отзыва токена или защиты нескольких учетных записей не является обязательной для связывания учетных записей Google.
Учетные записи могут быть отсоединены любым из следующих способов:
- Запрос пользователя от
- настройки приложения Google или учетной записи Google
- Ваша платформа
- Невозможность продлить токен обновления с истекшим сроком действия.
- Другие события, инициированные вами или Google. Например, блокировка учетной записи службами обнаружения злоупотреблений и угроз.
Пользователь запросил отмену связи с Google
Отмена связи учетной записи, инициированная через учетную запись Google или приложение пользователя, удаляет все ранее выданные токены доступа и обновления, удаляет согласие пользователя и при необходимости вызывает конечную точку отзыва токена, если вы решили ее реализовать.
Пользователь запросил отмену связи с вашей платформой
Вы должны предоставить пользователям механизм отключения связи, например URL-адрес их учетной записи. Если вы не предлагаете пользователям возможность отсоединиться, добавьте ссылку на учетную запись Google , чтобы пользователи могли управлять своей связанной учетной записью.
Вы можете реализовать разделение рисков и инцидентов и сотрудничество (RISC) и уведомлять Google об изменениях в статусе привязки учетных записей пользователей. Это позволяет улучшить взаимодействие с пользователем, поскольку и ваша платформа, и Google отображают текущий и согласованный статус связывания без необходимости полагаться на запрос обновления или токена доступа для обновления состояния связывания.
Срок действия токена
Чтобы обеспечить удобство работы пользователей и избежать сбоев в работе служб, Google пытается обновить токены обновления ближе к концу их срока службы. В некоторых сценариях для повторного связывания учетных записей может потребоваться согласие пользователя, когда действительный токен обновления недоступен.
Разработка вашей платформы для поддержки нескольких токенов доступа и обновления с истекшим сроком действия может минимизировать условия гонки, присутствующие при обмене клиент-сервер между кластерными средами, избежать сбоев в работе пользователей и минимизировать сложные сценарии синхронизации и обработки ошибок. Хотя в конечном итоге они являются согласованными, как предыдущие, так и новые выпущенные токены с истекшим сроком действия могут использоваться в течение короткого периода времени во время обновления токена клиент-сервер и до синхронизации кластера. Например, запрос Google к вашей службе, использующий предыдущий токен доступа с истекшим сроком действия, происходит сразу после выдачи нового токена доступа, но до того, как в Google произойдет получение и синхронизация кластера. Рекомендуется использовать альтернативные меры безопасности для обновления ротации токенов .
Другие события
Учетные записи могут быть отключены по ряду других причин, таких как бездействие, блокировка, злонамеренное поведение и т. д. В таких сценариях ваша платформа и Google могут лучше всего управлять учетными записями пользователей и повторно связывать их, уведомляя друг друга об изменениях состояния учетной записи и связи.
Внедрите конечную точку отзыва токена, чтобы Google мог звонить, и уведомляйте Google о событиях отзыва ваших токенов с помощью RISC, чтобы гарантировать, что ваша платформа и 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_token 或 refresh_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 网络令牌 (JWT)。