Ringkasan

Penautan akun memungkinkan pemegang Akun Google terhubung ke layanan Anda dengan cepat, lancar, dan aman. Anda dapat memilih untuk menerapkan Penautan Akun Google untuk membagikan data pengguna dari platform Anda dengan aplikasi dan layanan Google.

Protokol OAuth 2.0 yang aman memungkinkan Anda menautkan Akun Google pengguna dengan akun mereka di platform Anda dengan aman, sehingga memberikan akses ke layanan Anda kepada aplikasi dan perangkat Google.

Pengguna dapat menautkan atau membatalkan tautan akun mereka dan secara opsional membuat akun baru di platform Anda dengan Penautan Akun Google.

Kasus penggunaan

Beberapa alasan untuk menerapkan Penautan Akun Google adalah:

  • Membagikan data pengguna dari platform Anda kepada aplikasi dan layanan Google.

  • Putar konten video dan film Anda menggunakan Google TV.

  • Kelola dan kontrol perangkat yang terhubung ke Google Smart Home menggunakan aplikasi Google Home dan Asisten Google, "Ok Google, nyalakan lampu".

  • Buat pengalaman dan fungsi Asisten Google yang disesuaikan pengguna dengan Action Percakapan, "Ok Google, pesan pesanan saya yang biasa dari Starbucks".

  • Beri pengguna reward dengan melihat live stream yang memenuhi syarat di YouTube setelah menautkan Akun Google mereka ke akun partner reward.

  • Isi otomatis akun baru selama pendaftaran dengan data yang dibagikan secara konsensual dari profil Akun Google.

Fitur yang didukung

Fitur ini didukung oleh Penautan Akun Google:

  • Bagikan data Anda dengan cepat dan mudah menggunakan alur Penautan OAuth implisit.

  • Berikan keamanan yang lebih baik dengan alur kode otorisasi Penautan OAuth.

  • Login pengguna lama atau daftarkan pengguna baru yang diverifikasi Google ke platform Anda, dapatkan izin mereka, dan bagikan data dengan aman menggunakan Penautan yang disederhanakan.

  • Kurangi hambatan dengan App Flip. Dari aplikasi Google tepercaya, satu ketuk akan membuka aplikasi Android atau iOS terverifikasi dengan aman dan satu ketuk akan memberikan izin pengguna dan menautkan akun.

  • Tingkatkan privasi pengguna dengan menentukan cakupan kustom untuk hanya membagikan data yang diperlukan, meningkatkan kepercayaan pengguna dengan menentukan secara jelas cara data mereka digunakan.

  • Akses ke data dan layanan yang dihosting di platform Anda dapat dicabut dengan membatalkan tautan akun. Dengan menerapkan endpoint pencabutan token opsional, Anda dapat tetap sinkron dengan peristiwa yang dimulai Google, sementara Perlindungan lintas akun (RISC) memungkinkan Anda memberi tahu Google tentang peristiwa pembatalan tautan yang terjadi di platform Anda.

Alur penautan akun

Ada 3 alur Penautan Akun Google yang semuanya berbasis OAuth dan mengharuskan Anda mengelola atau mengontrol endpoint pertukaran token dan otorisasi yang mematuhi OAuth 2.0.

Selama proses penautan, Anda menerbitkan token akses ke Google untuk setiap Akun Google setelah mendapatkan izin pemegang akun untuk menautkan akun mereka dan membagikan data.

Penautan OAuth ('OAuth Web')

Ini adalah alur OAuth dasar yang mengarahkan pengguna ke situs Anda untuk melakukan penautan. Pengguna dialihkan ke situs Anda untuk login ke akunnya. Setelah login, pengguna setuju untuk membagikan data mereka, di layanan Anda, kepada Google. Pada tahap ini, Akun Google pengguna dan layanan Anda akan ditautkan.

Penautan OAuth mendukung kode otorisasi dan alur OAuth implisit. Layanan Anda harus menghosting endpoint otorisasi yang sesuai dengan OAuth 2.0 untuk alur implisit, dan harus mengekspos endpoint otorisasi dan token exchange saat menggunakan alur kode otorisasi.

Gambar 1. Penautan Akun di ponsel pengguna dengan OAuth Web

Penautan Balik Aplikasi berbasis OAuth ('Plip Aplikasi')

Alur OAuth yang mengarahkan pengguna ke aplikasi Anda untuk penautan.

Penautan App Flip berbasis OAuth memandu pengguna saat mereka berpindah antara aplikasi seluler Android atau iOS terverifikasi dan platform Google untuk meninjau perubahan akses data yang diusulkan dan memberikan izin mereka untuk menautkan akun mereka di platform Anda dengan Akun Google mereka. Untuk mengaktifkan App Flip, layanan Anda harus mendukung Penautan OAuth atau Penautan Login dengan Google berbasis OAuth menggunakan alur kode otorisasi.

App Flip didukung untuk Android dan iOS.

Cara kerjanya:

Aplikasi Google memeriksa apakah aplikasi Anda diinstal di perangkat pengguna:

  • Jika aplikasi ditemukan, pengguna akan 'dialihkan' ke aplikasi Anda. Aplikasi Anda mengumpulkan izin dari pengguna untuk menautkan akun dengan Google, lalu 'dialihkan kembali' ke platform Google.
  • Jika aplikasi tidak ditemukan atau terjadi error selama proses penautan flip aplikasi, pengguna akan dialihkan ke alur OAuth Web atau yang Disederhanakan.

Gambar 2. Penautan Akun di ponsel pengguna dengan App Flip

Penautan yang Disederhanakan Berbasis OAuth ('Disederhanakan')

Penautan yang Disederhanakan untuk Login dengan Google berbasis OAuth menambahkan Login dengan Google di atas penautan OAuth, sehingga pengguna dapat menyelesaikan proses penautan tanpa keluar dari platform Google, sehingga mengurangi hambatan dan penurunan. Penautan Efisien berbasis OAuth menawarkan pengalaman pengguna terbaik dengan login yang lancar, pembuatan akun, dan penautan akun dengan menggabungkan Login dengan Google dengan penautan OAuth. Layanan Anda harus mendukung endpoint pertukaran token dan otorisasi yang mematuhi OAuth 2.0. Selain itu, endpoint pertukaran token Anda harus mendukung pernyataan JSON Web Token (JWT) serta menerapkan intent check, create, dan get.

Cara kerjanya:

Google menegaskan akun pengguna dan meneruskan informasi ini kepada Anda:

  • Jika ada akun untuk pengguna di database Anda, pengguna berhasil menautkan Akun Google-nya dengan akunnya di layanan Anda.
  • Jika tidak ada akun untuk pengguna di database Anda, pengguna dapat membuat akun pihak ketiga baru dengan informasi yang dinyatakan yang diberikan Google : email, nama, dan foto profil, atau memilih untuk login dan menautkan dengan email lain (tindakan ini akan mengharuskan mereka login ke layanan Anda melalui OAuth Web).

Gambar 3. Penautan Akun di ponsel pengguna dengan Penautan yang Disederhanakan

Alur mana yang harus Anda gunakan?

Sebaiknya terapkan semua alur untuk memastikan pengguna mendapatkan pengalaman penautan terbaik. Alur Pengalihan yang Disederhanakan dan Alur flip Aplikasi mengurangi hambatan penautan karena pengguna dapat menyelesaikan proses penautan dalam sangat sedikit langkah. Penautan OAuth Web memiliki tingkat upaya terendah dan merupakan tempat yang baik untuk memulai, setelah itu Anda dapat menambahkan alur penautan lainnya.

Menggunakan token

Penautan Akun Google didasarkan pada standar industri OAuth 2.0.

Anda menerbitkan token akses ke Google untuk setiap Akun Google setelah mendapatkan izin pemegang akun untuk menautkan akun mereka dan membagikan data.

Token types

OAuth 2.0 uses strings called tokens to communicate between the user agent, the client application, and the OAuth 2.0 server.

Three types of OAuth 2.0 tokens can be used during account linking:

  • Authorization code. A short-lived token that can be exchanged for an access and a refresh token. For security purposes, Google calls your authorization endpoint to obtain a single use or very short-lived code.

  • Access token. A token that grants the bearer access to a resource. To limit exposure that could result from the loss of this token, it has a limited lifetime, usually expiring after an hour or so.

  • Refresh token. A long-lived token that can be exchanged for a new access token when an access token expires. When your service integrates with Google, this token is exclusively stored and used by Google. Google calls your token exchange endpoint to exchange refresh tokens for access tokens, which are in turn used to access user data.

Token handling

Race conditions in clustered environments and client-server exchanges can result in complex timing and error handling scenarios when working with tokens. For example:

  • You receive a request for a new access token, and you issue a new access token. Concurrently, you receive a request for access to your service's resource using the previous, unexpired access token.
  • Your refresh token reply is yet to be received (or is never received) by Google. Meanwhile, the previously valid refresh token is used in a request from Google.

Requests and replies can arrive in any order, or not at all due to asynchronous services running in a cluster, network behavior, or other means.

Immediate and fully consistent shared state both within, and between, your and Google's token handling systems cannot be guaranteed. Multiple valid, unexpired tokens can coexist within or across systems short period of time. To minimize negative user impact we recommend you do the following:

  • Accept unexpired access tokens, even after a newer token is issued.
  • Use alternatives to Refresh Token Rotation.
  • Support multiple, concurrently valid access and refresh tokens. For security, you should limit the number of tokens and token lifetime.
Maintenance and outage handling

During maintenance or unplanned outages Google might be unable to call your authorization or token exchange endpoints to obtain access and refresh tokens.

Your endpoints should respond with a 503 error code and empty body. In this case, Google retries failed token exchange requests for a limited time. Provided that Google is later able to obtain refresh and access tokens, failed requests are not visible to users.

Failing requests for an access token result in a visible error, if initiated by a user. Users will be required to retry linking failures if the implicit OAuth 2.0 flow is used.

Recommendations

There are many solutions to minimize maintenance impact. Some options to consider:

  • Maintain your existing service and route a limited number of requests to your newly updated service. Migrate all requests only after confirming expected functionality.

  • Reduce the number of token requests during the maintenance period:

    • Limit maintenance periods to less than the access token lifetime.

    • Temporarily increase the access token lifetime:

      1. Increase token lifetime to greater than maintenance period.
      2. Wait twice the duration of your access token lifetime, enabling users to exchange short lived tokens for longer duration tokens.
      3. Enter maintenance.
      4. Respond to token requests with a 503 error code and empty body.
      5. Exit maintenance.
      6. Decrease token lifetime back to normal.

Mendaftar dengan Google

Kami memerlukan detail penyiapan OAuth 2.0 Anda dan untuk membagikan kredensial guna memungkinkan penautan akun. Lihat pendaftaran untuk mengetahui detailnya.