Saya tidak tahu apakah saya hanya memiliki semacam blind spot atau apa, tetapi saya telah membaca spec OAuth 2 berkali-kali dan membaca arsip milis, dan saya belum menemukan penjelasan yang baik tentang mengapa Hibah Implisit aliran untuk mendapatkan token akses telah dikembangkan. Dibandingkan dengan Hibah Kode Otorisasi, tampaknya hanya menyerah pada otentikasi klien tanpa alasan yang sangat menarik. Bagaimana ini "dioptimalkan untuk klien diimplementasikan dalam browser menggunakan bahasa scripting" (mengutip spesifikasi)?
Kedua aliran memulai sama (sumber: http://tools.ietf.org/html/draft-ietf-oauth-v2-22 ):
- Klien memulai alur dengan mengarahkan agen pengguna pemilik sumber daya ke titik akhir otorisasi.
- Server otorisasi mengotentikasi pemilik sumber daya (melalui agen-pengguna) dan menetapkan apakah pemilik sumber daya mengabulkan atau menolak permintaan akses klien.
- Dengan asumsi pemilik sumber daya memberikan akses, server otorisasi mengarahkan kembali agen-pengguna kembali ke klien menggunakan pengalihan URI yang disediakan sebelumnya (dalam permintaan atau selama pendaftaran klien).
- URI pengalihan termasuk kode otorisasi (Alur kode otorisasi)
- URI pengalihan mencakup token akses dalam fragmen URI (Aliran implisit)
Di sinilah arus terbagi. Dalam kedua kasus, pengalihan URI pada titik ini adalah ke beberapa titik akhir yang dihosting oleh klien:
- Dalam aliran kode Otorisasi, ketika agen pengguna mencapai titik akhir itu dengan kode Otorisasi di URI, kode pada titik tersebut menukar kode otorisasi bersama dengan kredensial kliennya untuk token akses yang kemudian dapat digunakan sesuai kebutuhan. Misalnya, dapat menulisnya ke halaman web yang dapat diakses oleh skrip pada halaman tersebut.
- Aliran implisit melewatkan langkah otentikasi klien ini dan hanya memuat halaman web dengan skrip klien. Ada trik lucu di sini dengan fragmen URL yang membuat token akses tidak terlalu banyak dibagikan, tetapi hasil akhirnya pada dasarnya sama: situs yang dihosting klien menyajikan halaman dengan beberapa skrip di dalamnya yang dapat mengambil token akses .
Maka pertanyaan saya: apa yang telah diperoleh di sini dengan melewatkan langkah otentikasi klien?