Lewati ke konten utama
Didit Raih $7,5 Juta untuk Membangun Infrastruktur Identitas dan Fraud
Didit
Kembali ke blog
Blog · 11 April 2026

Keamanan OAuth: Panduan untuk Pengembang (ID)

Pelajari cara mengamankan alur otorisasi OAuth, melindungi token akses, dan mengurangi kerentanan umum. Terapkan praktik terbaik keamanan API yang kuat dengan panduan komprehensif ini.

Oleh DiditDiperbarui
oauth-security-a-developers-guide.png

Keamanan OAuth: Panduan untuk Pengembang

OAuth 2.0 adalah standar industri untuk otorisasi yang didelegasikan. Ini memungkinkan aplikasi pihak ketiga untuk mengakses sumber daya terbatas atas nama pengguna tanpa mengekspos kredensial mereka. Namun, menerapkan OAuth secara aman itu kompleks. Panduan ini memberikan tinjauan mendalam tentang praktik terbaik keamanan OAuth untuk pengembang, membahas kerentanan umum dan strategi mitigasi.

Poin Penting 1 Keamanan OAuth bukan hanya tentang penyedia OAuth; ini adalah tanggung jawab bersama antara penyedia, aplikasi klien, dan server sumber daya.

Poin Penting 2 Validasi URI pengalihan yang tepat sangat penting untuk mencegah serangan penyadapan kode otorisasi.

Poin Penting 3 Menggunakan token akses berumur pendek dan rotasi token refresh secara signifikan mengurangi dampak kompromi token.

Poin Penting 4 Melakukan audit implementasi OAuth Anda secara teratur dan tetap mendapatkan informasi terbaru tentang praktik terbaik keamanan sangat penting.

Memahami Alur dan Kerentanan OAuth

OAuth 2.0 mendefinisikan beberapa jenis pemberian hak, masing-masing sesuai untuk skenario aplikasi yang berbeda. Yang paling umum adalah:

  • Pemberian Kode Otorisasi: Digunakan untuk aplikasi web dan seluler tempat klien dapat menyimpan rahasia klien dengan aman.
  • Pemberian Implisit: (Tidak Disarankan) Digunakan untuk aplikasi halaman tunggal (SPA) tetapi kurang aman karena paparan token akses di URL.
  • Pemberian Kredensial Kata Sandi Pemilik Sumber Daya: (Tidak Disarankan) Memerlukan klien untuk mengumpulkan nama pengguna dan kata sandi pengguna, yang merupakan risiko keamanan.
  • Pemberian Kredensial Klien: Digunakan untuk autentikasi mesin-ke-mesin di mana konteks pengguna tidak tersedia.

Beberapa kerentanan dapat muncul selama alur OAuth:

  • Penyadapan Kode Otorisasi: Penyerang mengarahkan pengguna ke situs berbahaya yang terlihat seperti server otorisasi, mencuri kode otorisasi.
  • Manipulasi URI Pengalihan: Mengeksploitasi URI pengalihan yang salah konfigurasi untuk mengirim kode otorisasi ke server yang dikendalikan penyerang.
  • Pemalsuan Permintaan Lintas Situs (CSRF): Penyerang menipu pengguna untuk mengotorisasi aplikasi berbahaya.
  • Pencurian Token: Mengkompromikan token akses atau token refresh melalui kerentanan penyimpanan atau penyadapan jaringan.
  • Impersonasi Klien: Penyerang menggunakan ID klien dan rahasia yang dikompromikan untuk mengakses sumber daya.

Mengamankan Implementasi OAuth Anda

Mitigasi kerentanan ini memerlukan pendekatan berlapis:

1. Validasi URI Pengalihan

Validasi URI pengalihan dengan ketat. Hanya izinkan URI pengalihan yang telah terdaftar sebelumnya dan didefinisikan secara eksplisit. Terapkan pendekatan daftar putih dan hindari pola wildcard. Pastikan bahwa skema URI pengalihan (http vs. https) juga divalidasi. OAuth 2.0 RFC 6749 bagian 3.1.2 menekankan pentingnya validasi URI pengalihan.

2. Parameter State dan Nonce

Gunakan parameter state untuk mencegah serangan CSRF. Hasilkan nilai state yang acak secara kriptografis sebelum mengarahkan ke server otorisasi dan verifikasi saat menerima callback. Pertimbangkan juga untuk menggunakan parameter nonce untuk keamanan tambahan.

3. PKCE (Proof Key for Code Exchange)

Terapkan PKCE, terutama untuk klien publik (misalnya, aplikasi seluler, SPA) yang tidak dapat menyimpan rahasia klien dengan aman. PKCE menambahkan lapisan perlindungan tambahan dengan memastikan bahwa hanya aplikasi yang memulai permintaan otorisasi yang dapat menukar kode otorisasi dengan token akses.

// Contoh kode PKCE (disederhanakan)
// Hasilkan code verifier
let codeVerifier = generateRandomString();
// Hasilkan code challenge dari code verifier
let codeChallenge = generateCodeChallenge(codeVerifier);
// Sertakan codeChallenge dan codeChallengeMethod dalam permintaan otorisasi
// ...
// Tukar kode otorisasi dengan token akses, dengan memberikan code verifier
// ...

4. Manajemen Token

Gunakan token akses berumur pendek untuk meminimalkan dampak kompromi token. Terapkan rotasi token refresh, di mana token refresh baru dikeluarkan dengan setiap refresh token akses, menonaktifkan token refresh sebelumnya. Simpan token dengan aman menggunakan enkripsi dan kontrol akses. Jangan pernah menyimpan token dalam kode sisi klien.

Pertimbangan Keamanan API

Mengamankan titik akhir API Anda sama pentingnya dengan mengamankan alur OAuth. Terapkan praktik terbaik ini:

  • Validasi Token: Validasi token akses secara menyeluruh sebelum memberikan akses ke sumber daya. Verifikasi tanda tangan token, waktu kedaluwarsa, dan audiens (aud claim).
  • Validasi Cakupan: Terapkan pembatasan cakupan. Pastikan bahwa token akses memiliki cakupan yang diperlukan untuk mengakses sumber daya yang diminta.
  • Pembatasan Tingkat: Terapkan pembatasan tingkat untuk mencegah penyalahgunaan dan serangan penolakan layanan.
  • Validasi Input: Validasi semua input API untuk mencegah serangan injeksi.
  • Hanya HTTPS: Terapkan HTTPS untuk semua komunikasi API.

Bagaimana Didit Membantu

Didit menyediakan kemampuan verifikasi identitas dan penilaian risiko yang kuat yang melengkapi keamanan OAuth. Dengan mengintegrasikan Didit ke dalam alur OAuth Anda, Anda dapat:

  • Verifikasi identitas pengguna sebelum mengeluarkan token akses.
  • Deteksi aktivitas penipuan dan mencegah akses tidak sah.
  • Tingkatkan keamanan API dengan kontrol akses berbasis risiko.
  • Patuhi persyaratan peraturan terkait verifikasi identitas dan AML.

Modul Penyaringan AML Didit dapat diintegrasikan untuk memeriksa pengguna terhadap daftar pantauan global selama proses OAuth, menambahkan lapisan keamanan tambahan.

Siap Memulai?

Menerapkan keamanan OAuth yang kuat sangat penting untuk melindungi aplikasi dan data pengguna Anda. Dengan mengikuti praktik terbaik yang diuraikan dalam panduan ini, Anda dapat secara signifikan mengurangi risiko kerentanan terkait OAuth.

Sumber Daya:

Infrastruktur untuk identitas dan fraud.

Satu API untuk KYC, KYB, Transaction Monitoring, dan Wallet Screening. Integrasi dalam 5 menit.

Minta AI untuk merangkum halaman ini
Keamanan OAuth: Panduan Pengembang.