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 ke aplikasi dan layanan Google.

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

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

Kasus penggunaan

Beberapa alasan penerapan Penautan Akun Google adalah:

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

  • Putar konten video dan film Anda menggunakan Google TV.

  • Mengelola dan mengontrol 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 seperti biasa dari Starbucks".

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

  • Isi 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.

  • Tingkatkan keamanan dengan alur Kode otorisasi Penautan OAuth.

  • Buat pengguna lama login atau daftarkan pengguna baru yang diverifikasi Google ke platform Anda, dapatkan izin mereka, dan bagikan data secara aman dengan Penautan yang ringkas.

  • Kurangi hambatan dengan Flip Aplikasi. Dari aplikasi Google tepercaya, ketuk sekali akan membuka aplikasi Android atau iOS terverifikasi Anda dengan aman, dan sekali ketuk akan memberi pengguna izin dan menautkan akun.

  • Meningkatkan privasi pengguna dengan menentukan cakupan kustom agar hanya berbagi data yang diperlukan, meningkatkan kepercayaan pengguna dengan menetapkan cara penggunaan data mereka dengan 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, sementara Perlindungan Lintas Akun (RISC) memungkinkan Anda memberi tahu Google tentang 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 dapat mengirimkan token akses ke Google untuk Akun Google perorangan setelah mendapatkan izin dari pemegang akun untuk menautkan akunnya 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 dengan 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 mematuhi OAuth 2.0 untuk alur implisit, dan harus mengekspos endpoint pertukaran token otorisasi dan otorisasi saat menggunakan alur kode otorisasi.

Gambar 1. Penautan Akun di ponsel pengguna dengan OAuth Web

Penautan Aplikasi Berbasis OAuth ('Flip Aplikasi')

Alur OAuth yang mengarahkan pengguna ke aplikasi Anda untuk penautan.

Penautan Aplikasi Flip berbasis OAuth memandu pengguna saat mereka berpindah antara aplikasi seluler Android atau iOS yang terverifikasi dan platform Google untuk meninjau perubahan akses data yang diusulkan dan memberikan izin untuk menautkan akun mereka di platform Anda dengan Akun Google mereka. Untuk mengaktifkan Balik Aplikasi, 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 'dilipat' ke aplikasi Anda. Aplikasi Anda akan mengumpulkan izin dari pengguna untuk menautkan akun dengan Google, lalu 'membalik kembali' ke platform Google.
  • Jika aplikasi tidak ditemukan atau terjadi error selama proses penautan aplikasi, pengguna akan dialihkan ke alur OAuth atau OAuth Web yang disederhanakan.

Gambar 2. Penautan Akun di ponsel pengguna dengan App Flip

Penautan yang Berbasis OAuth ('Selaras')

Penautan Login dengan Google yang berbasis OAuth menambahkan Login dengan Google di atas penautan OAuth, yang memungkinkan pengguna menyelesaikan proses penautan tanpa meninggalkan platform Google, sehingga mengurangi hambatan dan pengguna yang tidak menyelesaikan survei. Penautan yang Menyederhanakan Berbasis OAuth menawarkan pengalaman pengguna terbaik melalui 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 harus mendukung pernyataan Token Web JSON (JWT) dan menerapkan intent check, create, dan get.

Cara kerjanya:

Google menegaskan akun pengguna dan meneruskan informasi ini kepada Anda:

  • Jika akun ada untuk pengguna di database Anda, pengguna tersebut berhasil menautkan Akun Google-nya dengan akunnya di layanan Anda.
  • jika tidak ada akun untuk pengguna di database Anda, pengguna dapat membuat akun 3P baru dengan informasi tegas yang diberikan Google: email, nama, dan foto profil, atau memilih untuk login dan menautkan dengan email lain (ini akan mewajibkan 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 Beralih Aplikasi dan yang Dipermudah mengurangi hambatan penautan karena pengguna dapat menyelesaikan proses penautan dalam waktu yang sangat singkat. Penautan OAuth Web memiliki tingkat upaya terendah dan merupakan tempat yang baik untuk memulai setelah Anda dapat menambahkan pada alur penautan lainnya.

Bekerja dengan token

Penautan Akun Google didasarkan pada standar industri OAuth 2.0.

Anda memberikan token akses ke Google untuk Akun Google perorangan setelah mendapatkan izin pemegang akun untuk menautkan akun mereka dan berbagi 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 mengetahui detailnya.