Apa sebenarnya OAuth (Open Authorization)?
OAuth memungkinkan memberi tahu penyedia sumber daya (misalnya Facebook) bahwa pemilik sumber daya (misalnya Anda) memberikan izin kepada pihak ketiga (misalnya Aplikasi Facebook) untuk mengakses informasi mereka (misalnya daftar teman Anda).
Jika Anda membacanya dinyatakan dengan jelas, saya akan mengerti kebingungan Anda. Jadi mari kita pergi dengan contoh nyata: bergabung dengan jejaring sosial lain!
Katakanlah Anda memiliki akun GMail yang ada. Anda memutuskan untuk bergabung dengan LinkedIn. Menambahkan semua teman Anda , banyak teman secara manual melelahkan dan rawan kesalahan. Anda mungkin muak setengah jalan atau memasukkan kesalahan ketik di alamat surel mereka untuk undangan. Jadi, Anda mungkin tergoda untuk tidak membuat akun.
Menghadapi situasi ini, LinkedIn memiliki Good Idea (TM) untuk menulis sebuah program yang menambahkan daftar teman Anda secara otomatis karena komputer jauh lebih efisien dan efektif untuk tugas yang melelahkan dan rawan kesalahan. Karena bergabung dengan jaringan sekarang sangat mudah, tidak mungkin Anda menolak tawaran seperti itu, bukan?
Tanpa API untuk bertukar daftar kontak ini, Anda harus memberi LinkedIn nama pengguna dan kata sandi ke akun GMail Anda, sehingga memberi mereka terlalu banyak kekuatan .
Di sinilah OAuth masuk. Jika GMail Anda mendukung protokol OAuth, maka LinkedIn dapat meminta Anda untuk memberi otorisasi kepada mereka untuk mengakses daftar kontak GMail Anda.
OAuth memungkinkan untuk:
- Tingkat akses yang berbeda: read-only VS read-write. Ini memungkinkan Anda untuk memberikan akses ke daftar pengguna atau akses dua arah untuk menyinkronkan teman LinkedIn baru Anda secara otomatis ke kontak GMail Anda.
- Granularity akses: Anda dapat memutuskan untuk memberikan akses hanya ke informasi kontak Anda (nama pengguna, email, tanggal lahir, dll.) Atau ke seluruh daftar teman, kalender, dan apa yang tidak.
- Ini memungkinkan Anda untuk mengelola akses dari aplikasi penyedia sumber daya. Jika aplikasi pihak ketiga tidak menyediakan mekanisme untuk membatalkan akses, Anda akan terjebak dengan mereka yang memiliki akses ke informasi Anda. Dengan OAuth, ada ketentuan untuk mencabut akses kapan saja.
Apakah ini akan menjadi de facto (standar?) Dalam waktu dekat?
Yah, meskipun OAuth adalah langkah maju yang signifikan, itu tidak menyelesaikan masalah jika orang tidak menggunakannya dengan benar. Misalnya, jika penyedia sumber daya hanya memberikan satu tingkat akses baca-tulis ke semua sumber daya Anda sekaligus dan tidak menyediakan mekanisme untuk mengelola akses, maka tidak ada gunanya. Dengan kata lain, OAuth adalah kerangka kerja untuk menyediakan fungsionalitas otorisasi dan bukan hanya otentikasi.
Dalam praktiknya, ini sangat cocok dengan model jaringan sosial. Ini sangat populer untuk jejaring sosial yang ingin mengizinkan "plugin" pihak ketiga. Ini adalah area di mana akses ke sumber daya secara inheren diperlukan dan juga inheren tidak dapat diandalkan (yaitu Anda memiliki sedikit atau tidak ada kontrol kualitas atas aplikasi tersebut).
Saya belum melihat banyak kegunaan lain di alam liar. Maksudku, aku tidak tahu dari sebuah perusahaan nasihat keuangan online yang akan mengakses catatan bank Anda secara otomatis, meskipun bisa secara teknis digunakan seperti itu.