Praktik Terbaik

Halaman ini membahas beberapa praktik terbaik umum untuk berintegrasi dengan OAuth 2.0. Pertimbangkan praktik terbaik ini selain panduan khusus untuk jenis aplikasi dan platform pengembangan Anda. Lihat juga saran untuk menyiapkan aplikasi Anda untuk produksi dan kebijakan OAuth 2.0 Google.

Menangani kredensial klien dengan aman

Kredensial klien OAuth mengidentifikasi identitas aplikasi Anda dan harus ditangani dengan hati-hati. Hanya simpan kredensial ini di penyimpanan yang aman, misalnya menggunakan secret manager seperti Google Cloud Secret Manager. Jangan hardcode kredensial, commit ke repositori kode, atau publikasikan secara publik.

Menangani token pengguna dengan aman

Token pengguna mencakup token refresh dan token akses yang digunakan oleh aplikasi Anda. Simpan token dengan aman dalam penyimpanan dan jangan pernah mengirimkannya dalam teks biasa. Gunakan sistem penyimpanan aman yang sesuai untuk platform Anda, seperti Keystore di Android, Keychain Services di iOS dan macOS, atau Credential Locker di Windows.

Cabut token segera setelah tidak diperlukan lagi dan hapus secara permanen dari sistem Anda.

Selain itu, pertimbangkan juga praktik terbaik berikut untuk platform Anda:

  • Untuk aplikasi sisi server yang menyimpan token untuk banyak pengguna, mengenkripsinya saat tidak digunakan dan memastikan bahwa penyimpanan data Anda tidak dapat diakses secara publik oleh Internet.
  • Untuk aplikasi desktop native, penggunaan protokol Proof Key untuk Pertukaran Kode (PKCE) sangat direkomendasikan untuk mendapatkan kode otorisasi yang dapat ditukarkan dengan token akses.

Menangani pencabutan dan akhir masa berlaku token refresh

Jika aplikasi Anda telah meminta token refresh untuk akses offline, Anda juga harus menangani pembatalan validasi atau masa berlakunya. Token dapat dibatalkan karena berbagai alasan, misalnya masa berlakunya telah berakhir atau akses aplikasi Anda mungkin telah dicabut oleh pengguna atau proses otomatis. Dalam hal ini, pertimbangkan dengan cermat bagaimana aplikasi Anda harus merespons, termasuk meminta pengguna saat login berikutnya atau menghapus data mereka. Untuk mendapatkan notifikasi tentang pencabutan token, integrasikan dengan layanan Perlindungan Lintas Akun.

Menggunakan otorisasi inkremental

Gunakan otorisasi inkremental untuk meminta cakupan OAuth yang sesuai saat fungsi tersebut diperlukan oleh aplikasi Anda.

Anda tidak boleh meminta akses ke data saat pengguna pertama kali melakukan autentikasi, kecuali hal itu penting untuk fungsi inti aplikasi Anda. Sebagai gantinya, minta hanya cakupan spesifik yang diperlukan untuk suatu tugas, dengan mengikuti prinsip untuk memilih cakupan terkecil dan seminimal mungkin.

Selalu minta cakupan dalam konteks untuk membantu pengguna memahami alasan aplikasi Anda meminta akses dan cara data akan digunakan.

Contohnya, permohonan Anda mungkin mengikuti model ini:

  1. Pengguna melakukan autentikasi dengan aplikasi Anda
    1. Tidak ada cakupan tambahan yang diminta. Aplikasi ini menyediakan fungsi dasar untuk memungkinkan pengguna menjelajahi dan menggunakan fitur yang tidak memerlukan data atau akses tambahan.
  2. Pengguna memilih fitur yang memerlukan akses ke data tambahan
    1. Aplikasi Anda membuat permintaan otorisasi untuk cakupan OAuth tertentu yang diperlukan untuk fitur ini. Jika fitur ini memerlukan beberapa cakupan, ikuti praktik terbaik di bawah.
    2. Jika pengguna menolak permintaan, aplikasi akan menonaktifkan fitur tersebut dan memberi pengguna konteks tambahan untuk meminta akses lagi.

Menangani izin untuk beberapa cakupan

Saat meminta beberapa cakupan sekaligus, pengguna mungkin tidak memberikan semua cakupan OAuth yang telah Anda minta. Aplikasi Anda harus menangani penolakan cakupan dengan menonaktifkan fungsi yang relevan.

Jika fungsi dasar aplikasi Anda memerlukan beberapa cakupan, jelaskan hal ini kepada pengguna sebelum meminta izin.

Anda hanya boleh meminta pengguna lagi setelah mereka dengan jelas menunjukkan niat untuk menggunakan fitur tertentu yang memerlukan cakupan. Aplikasi Anda harus memberikan konteks dan justifikasi yang relevan kepada pengguna sebelum meminta cakupan OAuth.

Anda harus meminimalkan jumlah cakupan yang diminta aplikasi Anda sekaligus. Sebagai gantinya, gunakan otorisasi inkremental untuk meminta cakupan dalam konteks fitur dan fungsi.

Menggunakan browser yang aman

Di web, permintaan otorisasi OAuth 2.0 hanya boleh dibuat dari browser web berfitur lengkap. Di platform lain, pastikan untuk memilih jenis klien OAuth yang benar dan mengintegrasikan OAuth sesuai dengan platform Anda. Jangan mengalihkan permintaan melalui lingkungan penjelajahan tersemat, termasuk webview di platform seluler, seperti WebView di Android atau WKWebView di iOS. Sebagai gantinya, gunakan library OAuth native atau Login dengan Google untuk platform Anda.

Pembuatan dan konfigurasi klien OAuth secara manual

Untuk mencegah penyalahgunaan, klien OAuth tidak dapat dibuat atau diubah secara terprogram. Anda harus menggunakan Google Developers Console untuk mengonfirmasi persyaratan layanan secara eksplisit, mengonfigurasi klien OAuth, dan mempersiapkan verifikasi OAuth.

Untuk alur kerja otomatis, sebaiknya gunakan akun layanan.