Membatalkan tautan akun

Membatalkan tautan dapat dimulai dari platform Anda atau Google, dan tampilan status tautan yang konsisten di keduanya memberikan pengalaman pengguna terbaik. Dukungan untuk titik akhir pencabutan token atau Perlindungan Lintas Akun bersifat opsional untuk Penautan Akun Google.

Akun dapat dibatalkan tautannya oleh salah satu dari berikut ini:

  • Permintaan pengguna dari
  • Gagal memperbarui token penyegaran yang telah kedaluwarsa
  • Acara lain yang diprakarsai oleh Anda atau Google. Misalnya, penangguhan akun oleh penyalahgunaan dan layanan deteksi ancaman.

Pengguna meminta untuk membatalkan tautan dari Google

Membatalkan tautan akun yang dimulai melalui Akun Google pengguna atau aplikasi akan menghapus akses yang dikeluarkan sebelumnya dan menyegarkan token, menghapus izin pengguna, dan secara opsional memanggil titik akhir pencabutan token Anda jika Anda memilih untuk menerapkannya.

Pengguna meminta untuk membatalkan tautan dari platform Anda

Anda harus menyediakan mekanisme bagi pengguna untuk membatalkan tautan, seperti URL ke akun mereka. Jika Anda tidak menawarkan cara bagi pengguna untuk membatalkan tautan, sertakan tautan ke Akun Google sehingga pengguna dapat mengelola akun tertaut mereka.

Anda dapat memilih untuk menerapkan Risk & Incident Sharing and Collaboration (RISC) dan memberi tahu Google tentang perubahan status penautan akun pengguna. Hal ini memungkinkan pengalaman pengguna yang lebih baik di mana platform Anda dan Google menampilkan status penautan yang terkini dan konsisten tanpa perlu mengandalkan penyegaran atau permintaan token akses untuk memperbarui status penautan.

Token kedaluwarsa

Untuk memberikan pengalaman pengguna yang lancar dan menghindari gangguan layanan, Google mencoba memperbarui token penyegaran mendekati akhir masa pakainya. Dalam beberapa skenario, izin pengguna mungkin diperlukan untuk menautkan kembali akun ketika token penyegaran yang valid tidak tersedia.

Merancang platform Anda untuk mendukung beberapa akses yang tidak kedaluwarsa dan token penyegaran dapat meminimalkan kondisi balapan yang ada dalam pertukaran klien-server antara lingkungan berkerumun, menghindari gangguan pengguna, dan meminimalkan waktu yang kompleks dan skenario penanganan kesalahan. Meskipun pada akhirnya konsisten, token yang belum kedaluwarsa dan yang baru diterbitkan mungkin digunakan untuk waktu yang singkat selama pertukaran pembaruan token server-klien dan sebelum sinkronisasi klaster. Misalnya, permintaan Google ke layanan Anda yang menggunakan token akses yang belum habis masa berlakunya terjadi tepat setelah Anda mengeluarkan token akses baru, tetapi sebelum penerimaan dan sinkronisasi cluster dilakukan di Google. Langkah-langkah keamanan alternatif untuk Refresh Token Rotation direkomendasikan.

Acara lainnya

Akun bisa saja dibatalkan tautannya karena berbagai alasan lain, seperti tidak aktif, penangguhan, perilaku jahat, dan lain sebagainya. Dalam skenario seperti itu, platform Anda dan Google dapat mengelola akun pengguna dan menautkan ulang dengan paling baik dengan memberi tahu satu sama lain tentang perubahan pada akun dan status tautan.

Terapkan titik akhir pencabutan token untuk dipanggil oleh Google, dan beri tahu Google tentang peristiwa pencabutan token Anda menggunakan RISC untuk memastikan platform Anda dan Google mempertahankan status tautan akun pengguna yang konsisten.

Titik akhir pencabutan token

If you support an OAuth 2.0 token revocation endpoint, your platform can receive notifications from Google. This lets you inform users of link state changes, invalidate a token, and cleanup security credentials and authorization grants.

The request has the following form:

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

Your token revocation endpoint must be able to handle the following parameters:

Revocation endpoint parameters
client_id A string that identifies the request origin as Google. This string must be registered within your system as Google's unique identifier.
client_secret A secret string that you registered with Google for your service.
token The token to be revoked.
token_type_hint (Optional) The type of token being revoked, either an access_token or refresh_token. If unspecified, defaults to access_token.

Return a response when the token is deleted or invalid. See the following for an example:

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

If the token can't be deleted for any reason, return a 503 response code, as shown in the following example:

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

Google retries the request later or as requested by Retry-After.

Perlindungan Lintas Akun (RISC)

Jika Anda mendukung Perlindungan Lintas Akun, platform Anda dapat memberi tahu Google saat token penyegaran atau akses dicabut. Ini memungkinkan Google memberi tahu pengguna tentang perubahan status tautan, membatalkan token, membersihkan kredensial keamanan, dan pemberian otorisasi.

Perlindungan Lintas Akun didasarkan pada standar RISC yang dikembangkan di OpenID Foundation.

Security Event Token digunakan untuk memberi tahu Google tentang pencabutan token.

Saat didekodekan, peristiwa pencabutan token terlihat seperti contoh berikut:

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

Token Peristiwa Keamanan yang Anda gunakan untuk memberi tahu Google tentang peristiwa pencabutan token harus sesuai dengan persyaratan di tabel berikut:

Peristiwa pencabutan token
iss Klaim Penerbit: Ini adalah URL yang Anda hosting, dan dibagikan dengan Google selama pendaftaran.
aud Klaim Audiens: Ini mengidentifikasi Google sebagai penerima JWT. Ini harus disetel ke google_account_linking .
jti Klaim JWT ID: Ini adalah ID unik yang Anda buat untuk setiap token peristiwa keamanan.
iat Dikeluarkan Saat Klaim: Ini adalah nilai NumericDate yang mewakili waktu saat token peristiwa keamanan ini dibuat.
toe Waktu Klaim Peristiwa: Ini adalah nilai NumericDate opsional yang mewakili waktu saat token dicabut.
exp Berakhirnya Waktu Klaim: Do tidak termasuk bidang ini, sebagai acara mengakibatkan pemberitahuan ini telah terjadi.
events
Klaim Peristiwa Keamanan: Ini adalah objek JSON, dan hanya boleh menyertakan satu peristiwa pencabutan token.
subject_type Ini harus disetel ke oauth_token .
token_type Ini adalah jenis token yang dicabut, baik access_token atau refresh_token .
token_identifier_alg Ini adalah algoritme yang digunakan untuk menyandikan token, dan harus berupa hash_SHA512_double .
token Ini adalah ID dari token yang dicabut.

Untuk informasi lebih lanjut tentang jenis dan format kolom, lihat JSON Web Token (JWT) .