Ringkasan

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

Protokol OAuth 2.0 yang aman memungkinkan Anda menautkan Akun Google pengguna secara aman dengan akun mereka di platform Anda, sehingga aplikasi dan perangkat Google dapat mengakses layanan Anda.

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:

  • Bagikan data pengguna dari platform Anda dengan aplikasi dan layanan Google.

  • Putar konten video dan film menggunakan Google TV.

  • Mengelola dan mengontrol Google Smart Home perangkat terhubung menggunakan aplikasi Google Home dan Asisten Google, "Ok Google nyalakan lampu".

  • Buat pengalaman dan fungsionalitas Asisten Google yang disesuaikan pengguna dengan Tindakan Percakapan, "Ok Google, pesan seperti biasa dari Starbucks".

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

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

Fitur yang didukung

Fitur-fitur ini didukung oleh Penautan Akun Google:

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

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

  • Proses login pengguna yang ada atau daftarkan pengguna baru terverifikasi Google ke platform Anda, dapatkan izin mereka, dan bagikan data secara aman menggunakan Penautan yang disederhanakan.

  • Perlancar akses dengan App Flip. Dari aplikasi Google tepercaya, sekali ketuk akan membuka aplikasi Android atau iOS terverifikasi Anda dengan aman, dan sekali 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 cara data mereka digunakan secara jelas.

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

Alur penautan akun

Terdapat 3 alur Penautan Akun Google, yang semuanya berbasis OAuth dan mengharuskan Anda mengelola atau mengontrol endpoint pertukaran token dan otorisasi yang sesuai dengan OAuth 2.0.

Selama proses penautan, Anda memberikan token akses ke Google untuk Akun Google perorangan setelah mendapatkan pemegang akun setuju untuk menautkan akun mereka dan membagikan data.

Penautan OAuth ('OAuth Web')

Ini adalah alur OAuth dasar yang mengarahkan pengguna ke situs Anda untuk ditautkan. Pengguna dialihkan ke situs Anda untuk login ke akunnya. Setelah login, pengguna setuju untuk membagikan data mereka, di layanan Anda, kepada Google. Pada saat itu, 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 pertukaran token saat menggunakan alur kode otorisasi.

Gambar 1. Penautan Akun di ponsel pengguna dengan OAuth Web

Penautan Balik Aplikasi berbasis OAuth ('Balik Aplikasi')

Alur OAuth yang mengarahkan pengguna ke aplikasi Anda untuk ditautkan.

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

App Flip didukung untuk Android dan iOS.

Cara kerjanya:

Aplikasi Google memeriksa apakah aplikasi diinstal di perangkat pengguna:

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

Gambar 2. Penautan Akun di ponsel pengguna dengan App Flip

Penautan Sederhana berbasis OAuth ('Ramping')

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

Cara kerjanya:

Google menegaskan akun pengguna dan meneruskan informasi ini kepada Anda:

  • Jika sudah ada akun untuk pengguna di database Anda, berarti pengguna berhasil menautkan Akun Google 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 oleh Google : email, nama, dan foto profil, atau memilih untuk login dan menautkan dengan email lain (ini akan mengharuskan pengguna untuk login ke layanan Anda melalui Web OAuth).

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 balik Aplikasi dan yang disederhanakan mengurangi hambatan penautan karena pengguna dapat menyelesaikan proses penautan dalam beberapa langkah. Penautan Web OAuth memiliki tingkat upaya terendah dan merupakan tempat yang baik untuk memulai. Setelah itu, Anda dapat menambahkan alur penautan lainnya.

Menangani token

Penautan Akun Google didasarkan pada standar industri OAuth 2.0.

Anda memberikan token akses kepada Google untuk Akun Google perorangan setelah mendapatkan pemegang akun setuju 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 ke Google

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