OAuth
OAuth (Open Authorization) adalah kerangka kerja otorisasi yang umum digunakan untuk mengizinkan akses yang aman dan terdelegasi antara aplikasi tanpa mengekspos kredensial yang sensitif.
Definisi
OAuth, singkatan dari Otorisasi Terbuka, adalah protokol standar terbuka yang memungkinkan pengguna memberikan akses terbatas ke sumber daya yang dilindungi pada layanan lain kepada aplikasi pihak ketiga tanpa berbagi kredensial masuk mereka. Protokol ini beroperasi dengan menerbitkan token akses yang terbatas oleh skop yang menentukan data dan tindakan apa yang dapat dilakukan aplikasi yang meminta oleh pengguna. Meskipun sering dikaitkan dengan alur "login dengan X", tujuan intinya adalah otorisasi bukan autentikasi. OAuth 2.0, versi yang paling umum, mendefinisikan beberapa jenis otorisasi untuk mendukung skenario akses web, mobile, dan mesin ke mesin, memungkinkan interaksi API yang aman dan akses sumber daya yang terdelegasi dalam aplikasi modern. Implementasinya bervariasi di berbagai ekosistem, tetapi prinsip dasarnya tetap pada akses berbasis token dengan skop tanpa eksposur kredensial.
Kelebihan
- Meningkatkan keamanan dengan menghindari penyerahan langsung kredensial pengguna ke aplikasi pihak ketiga.
- Kontrol akses yang terperinci melalui skop membatasi izin hanya pada apa yang diperlukan.
- Didukung secara luas di ekosistem web, mobile, dan API.
- Model berbasis token yang distandarisasi mempermudah integrasi dengan layanan eksternal.
- Mengurangi hambatan bagi pengguna dengan memungkinkan alur persetujuan tunggal untuk berbagai layanan.
Kekurangan
- Bisa kompleks untuk diimplementasikan dengan benar karena berbagai alur dan spesifikasi opsional.
- OAuth sendiri tidak mengautentikasi identitas pengguna.
- Manajemen token dan siklus hidupnya harus dikelola dengan hati-hati untuk menghindari masalah keamanan.
- Implementasi berbeda oleh penyedia dapat menyebabkan tantangan interoperabilitas.
- Kesalahan konfigurasi dapat mengekspos token akses atau memberikan izin yang berlebihan.
Kasus Penggunaan
- Memungkinkan aplikasi pihak ketiga mengakses data profil pengguna tanpa memerlukan kata sandi mereka.
- Mengintegrasikan layanan seperti kalender atau kontak lintas platform secara aman.
- Mengizinkan akses API untuk komunikasi server-to-server menggunakan kredensial klien.
- Mendukung opsi login sosial (misalnya, "Masuk dengan Google") melalui otorisasi terdelegasi.
- Mengotorisasi perangkat IoT atau aplikasi native untuk mengakses sumber daya awan atas nama pengguna.