Praktik Terbaik

Halaman ini membahas beberapa praktik terbaik umum untuk berintegrasi dengan OAuth 2.0. Pertimbangkan praktik terbaik ini di samping panduan spesifik untuk jenis aplikasi dan platform pengembangan Anda. Baca juga saran guna 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 melakukan hardcode pada kredensial, meng-commit kredensial ke repositori kode, atau memublikasikannya 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 lagi diperlukan dan hapus secara permanen dari sistem Anda.

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

  • Untuk aplikasi sisi server yang menyimpan token bagi banyak pengguna, enkripsi token dalam penyimpanan dan pastikan penyimpanan data Anda tidak dapat diakses secara publik di Internet.
  • Untuk aplikasi desktop native, penggunaan protokol Proof Key for Code Exchange (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 habis masa berlakunya. Token dapat dibatalkan karena berbagai alasan, misalnya masa berlaku token telah habis atau akses aplikasi Anda telah dicabut oleh pengguna atau proses otomatis. Dalam hal ini, pertimbangkan dengan cermat cara aplikasi merespons, termasuk meminta pengguna untuk login berikutnya atau membersihkan data mereka. Agar mendapatkan notifikasi tentang pencabutan token, integrasikan dengan layanan Perlindungan Lintas Akun.

Gunakan otorisasi tambahan

Gunakan otorisasi inkremental untuk meminta cakupan OAuth yang sesuai jika fungsionalitas diperlukan oleh aplikasi Anda.

Anda tidak boleh meminta akses ke data saat pengguna melakukan autentikasi untuk pertama kalinya, kecuali jika hal ini penting untuk fungsi inti aplikasi Anda. Sebaliknya, minta hanya cakupan spesifik yang diperlukan untuk tugas, dengan mengikuti prinsip untuk memilih cakupan terkecil dan paling terbatas.

Selalu minta cakupan sesuai konteks untuk membantu pengguna memahami alasan aplikasi Anda meminta akses serta bagaimana data akan digunakan.

Misalnya, aplikasi Anda dapat 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 khusus ini 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 ini 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 Anda minta. Aplikasi Anda harus menangani denial of scope dengan menonaktifkan fungsi yang relevan.

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

Anda hanya dapat meminta pengguna kembali setelah mereka menunjukkan dengan jelas intent 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 Anda memilih jenis klien OAuth yang benar dan mengintegrasikan OAuth sebagaimana mestinya untuk 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, pertimbangkan untuk menggunakan akun layanan.