Tips

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. 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 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 aplikasi saat nonaktif 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 habis masa berlaku token refresh

Jika aplikasi Anda telah meminta token refresh untuk akses offline, Anda juga harus menangani pembatalan validasi atau masa berlaku token tersebut. Token dapat dibatalkan karena berbagai alasan, misalnya masa berlaku token telah habis atau akses aplikasi Anda telah dicabut oleh pengguna atau karena proses otomatis. Dalam hal ini, pertimbangkan dengan cermat bagaimana aplikasi Anda harus merespons, termasuk memperingatkan pengguna pada saat 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 fungsi diperlukan oleh aplikasi Anda.

Sebaiknya Anda tidak meminta akses ke data saat pengguna pertama kali melakukan autentikasi, kecuali jika hal itu penting untuk fungsi inti aplikasi Anda. Sebaliknya, mintalah hanya cakupan tertentu yang diperlukan untuk suatu tugas, dengan mengikuti prinsip untuk memilih cakupan terkecil dan paling terbatas.

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

Misalnya, aplikasi Anda mungkin mengikuti model ini:

  1. Pengguna melakukan autentikasi dengan aplikasi Anda
    1. Tidak ada cakupan tambahan yang diminta. Aplikasi ini menyediakan fungsi dasar agar pengguna dapat 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 yang diperlukan untuk fitur ini. Jika fitur ini memerlukan beberapa cakupan, ikuti praktik terbaik di bawah.
    2. Jika pengguna menolak permintaan tersebut, aplikasi akan menonaktifkan fitur dan memberikan konteks tambahan kepada pengguna untuk meminta akses kembali.

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 lagi setelah mereka dengan jelas menunjukkan niat untuk menggunakan fitur tertentu yang memerlukan cakupan tersebut. Aplikasi 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.

Gunakan browser yang aman

Di web, permintaan otorisasi OAuth 2.0 hanya boleh dilakukan dari browser web berfitur lengkap. Di platform lain, pastikan Anda memilih jenis klien OAuth yang tepat dan integrasikan OAuth yang sesuai untuk platform Anda. Jangan mengalihkan permintaan melalui lingkungan penjelajahan yang 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.