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

Jika Anda mendukung titik akhir pencabutan token OAuth 2.0, platform Anda dapat menerima pemberitahuan dari Google. Ini memungkinkan Anda memberi tahu pengguna tentang perubahan status tautan, membatalkan token, dan membersihkan kredensial keamanan dan pemberian otorisasi.

Bentuk permintaannya adalah sebagai berikut:

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

Titik akhir pencabutan token Anda harus mampu menangani parameter berikut:

Parameter titik akhir pencabutan
client_id Sebuah string yang mengidentifikasi asal permintaan sebagai Google. String ini harus terdaftar dalam sistem Anda sebagai pengenal unik Google.
client_secret String rahasia yang Anda daftarkan ke Google untuk layanan Anda.
token Token yang akan dicabut.
token_type_hint (Opsional) Jenis token yang dicabut, baik access_token atau refresh_token . Jika tidak ditentukan, defaultnya adalah access_token .

Kembalikan respons ketika token dihapus atau tidak valid. Lihat contoh berikut ini:

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

Jika token tidak dapat dihapus karena alasan apa pun, kembalikan kode respons 503, seperti yang ditunjukkan pada contoh berikut:

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

Google mencoba lagi permintaan itu nanti atau seperti yang diminta oleh 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) .