Hesapların bağlantısını kaldırma

Bağlantıyı kaldırma işlemi platformunuzdan veya Google'dan başlatılabilir. Her ikisinde de tutarlı bir bağlantı durumu gösterilmesi en iyi kullanıcı deneyimini sağlar. Google Hesabı Bağlantısı için jeton iptal uç noktası veya Hesaplar Arası Koruma desteği isteğe bağlıdır.

Hesapların bağlantısı aşağıdakilerden herhangi biri tarafından kaldırılabilir:

    • tarafından gönderilen kullanıcı isteği
    • Google uygulaması veya Google Hesabı ayarları
    • Platformunuz
  • Süresi dolmuş yenileme jetonunun yenilenememesi
  • Sizin tarafınızdan veya Google tarafından başlatılan diğer etkinlikler. Örneğin, kötüye kullanım ve tehdit algılama hizmetleri tarafından hesap askıya alma.

Kullanıcı, Google ile bağlantısının kaldırılmasını istedi

Kullanıcının Google Hesabı veya uygulaması üzerinden başlatılan hesap bağlantısı kaldırma işlemi, daha önce verilen tüm erişim ve yenileme jetonlarını siler, kullanıcı iznini kaldırır ve isteğe bağlı olarak, uygulamayı kullanmayı seçtiyseniz jeton iptal uç noktanızı çağırır.

Kullanıcı, platformunuzla bağlantının kaldırılmasını istedi

Kullanıcıların bağlantıyı kaldırabileceği bir mekanizma (ör. hesaplarının URL'si) sağlamanız gerekir. Kullanıcıların bağlantıyı kaldırmaları için bir yöntem sunmuyorsanız bağlı hesaplarını yönetebilmeleri amacıyla Google Hesabı bağlantısı ekleyin.

Risk ve Olay Paylaşımı ve Ortak Çalışma (RISC) özelliğini uygulamayı ve kullanıcı hesaplarının bağlantı durumuyla ilgili değişiklikleri Google'a bildirmeyi seçebilirsiniz. Bu sayede, bağlantı durumunu güncellemek için yenileme veya erişim jetonu isteğine gerek kalmadan hem platformunuzun hem de Google'ın güncel ve tutarlı bir bağlantı durumu gösterdiği daha iyi bir kullanıcı deneyimi elde edebilirsiniz.

Jetonun son kullanma tarihi

Google, sorunsuz bir kullanıcı deneyimi sunmak ve hizmet kesintisini önlemek için yenileme jetonlarını geçerlilik sürelerinin sonuna yakın bir zamanda yenilemeye çalışır. Bazı durumlarda, geçerli bir yenileme jetonu mevcut olmadığında hesapları yeniden bağlamak için kullanıcı izni gerekebilir.

Platformunuzu, süresi dolmamış birden fazla erişim ve yenileme jetonunu destekleyecek şekilde tasarlamak, kümelenmiş ortamlar arasındaki istemci-sunucu alışverişlerinde bulunan yarış koşullarını en aza indirebilir, kullanıcı kesintilerini önleyebilir ve karmaşık zamanlama ve hata işleme senaryolarını en aza indirebilir. Sonunda tutarlı olsa da hem önceki hem de yeni verilen ve süresi dolmamış jetonlar, istemci-sunucu jetonu yenileme değişimi sırasında ve küme senkronizasyonundan önce kısa bir süre boyunca kullanılabilir. Örneğin, yeni bir erişim jetonu yayınladıktan hemen sonra ancak Google'da alınması ve küme senkronizasyonunun yapılmasından önce hizmetinize gönderilen ve süresi dolmamış önceki erişim jetonunu kullanan bir Google isteği gerçekleşir. Jeton Rotasyonunu Yenileme için alternatif güvenlik önlemleri önerilir.

Diğer etkinlikler

Hesapların bağlantısı, etkin olmama, askıya alınma, kötü amaçlı davranış gibi çeşitli nedenlerle kaldırılabilir. Bu tür senaryolarda platformunuz ve Google, kullanıcı hesaplarını en iyi şekilde yönetebilir ve hesap ve bağlantı durumundaki değişiklikleri birbirine bildirerek yeniden bağlantı oluşturabilir.

Google'ın çağırması için bir jeton iptali uç noktası uygulayın. Platformunuzun ve Google'ın, kullanıcı hesabı bağlantısı durumunun tutarlı olmasını sağlamak için RISC'yi kullanarak jeton iptali etkinliklerinizi Google'a bildirin.

Jeton iptali uç noktası

OAuth 2.0'ı destekliyorsanız jeton iptali uç noktası, platformunuz Google'dan bildirim alabilir. Bu, kullanıcıları jetonu geçersiz kılma ve güvenlik kimlik bilgilerini temizleme ve güvenlik bilgilerini temizleme izin verir.

Talep aşağıdaki biçimdedir:

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

Jeton iptali uç noktanızın aşağıdaki parametreleri işleyebilmesi gerekir:

İptal uç noktası parametreleri
client_id İsteğin kaynağını Google olarak tanımlayan bir dize. Bu dize sisteminizde Google'ın benzersiz tanımlayıcısı olarak kayıtlı olmalıdır.
client_secret Hizmetiniz için Google'a kaydettiğiniz gizli dize.
token İptal edilecek jeton.
token_type_hint (İsteğe bağlı) İptal edilen jeton türü (access_token veya refresh_token). Belirtilmezse varsayılan olarak access_token olur.

Jeton silindiğinde veya geçersiz olduğunda yanıt döndürün. Aşağıdakilere göz atın: Örnek:

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

Jeton herhangi bir nedenle silinemiyorsa bir 503 yanıt kodu döndürün, aşağıdaki örnekte gösterildiği gibi:

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

Google, isteği daha sonra veya Retry-After tarafından istendiği şekilde yeniden dener.

Hesaplar Arası Koruma (RISC)

If you support Cross-Account Protection, your platform can notify Google when access or refresh tokens are revoked. This allows Google to inform users of link state changes, invalidate the token, cleanup security credentials, and authorization grants.

Cross-Account Protection is based on the RISC standard developed at the OpenID Foundation.

A Security Event Token is used to notify Google of token revocation.

When decoded, a token revocation event looks like the following example:

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

Security Event Tokens that you use to notify Google of token revocation events must conform to the requirements in the following table:

Token revocation events
iss Issuer Claim: This is a URL which you host, and it's shared with Google during registration.
aud Audience Claim: This identifies Google as the JWT recipient. It must be set to google_account_linking.
jti JWT ID Claim: This is a unique ID that you generate for every security event token.
iat Issued At Claim: This is a NumericDate value that represents the time when this security event token was created.
toe Time of Event Claim: This is an optional NumericDate value that represents the time at which the token was revoked.
exp Expiration Time Claim: Do not include this field, as the event resulting in this notification has already taken place.
events
Security Events Claim: This is a JSON object, and must include only a single token revocation event.
subject_type This must be set to oauth_token.
token_type This is the type of token being revoked, either access_token or refresh_token.
token_identifier_alg This is the algorithm used to encode the token, and it must be hash_SHA512_double.
token This is the ID of the revoked token.

For more information on field types and formats, see JSON Web Token (JWT).