Apa itu OAuth 2
Definisi
OAuth is not an API or a service. It’s an open standard for authorization and anyone can implement it.
Diterjemahkan :
OAuth2 bukanlah sebuah API atau sebuah service. OAuth2 adalah standard untuk otorisasi dan siapapun bisa mengimplementasikannya.
Ya bener, OAuth 2 adalah spesifikasi standar untuk otorisasi. OAuth 2.0 Framework dipublikasikan sebagai RFC 6749
Otorisasi, bukan otentikasi.
Otorisasi artinya hak akses pengguna terhadap sebuah service/API/microservice.
Tidak harus berisikan informasi tentang pengguna, tetapi cukup hak akses terhadap pengguna tertentu terhadap sebuah service/API.
Otorisasi berarti bukan untuk menentukan seseorang itu telah/sedang login atau tidak, karena sifatnya cuma informasi mengenai hak akses API, bukan informasi telah/sedang login atau tidak.
Pandangan sekilas tentang OAuth 2 ini ?
Sejujurnya, spesifikasi OAuth 2 ini cukup rumit., dan membutuhkan banyak pengetahuan tentang IT security agar bisa mengimplementasikannya dengan baik.
Spesifikasinya juga terlalu luas dan berkaitan dengan banyak spesifikasi RFC yang lain. Harus dibaca dengan seksama mengenai apa yang menjadi standar wajib nya, apa yang opsional, dan apa yang disarankan oleh spesifikasi ini, dan apa yang menjadi best practice nya.
Secara konsep mungkin cukup bagus, karena salah satu tujuannya agar bisa di akomodasi oleh banyak tipe otorisasi, dan juga agar bisa di extend untuk kebutuhan mendatang.
Tetapi dengan rentang spesifikasinya yang lebar dan kemungkinan banyak case , maka implementasi nya tidak semudah yang kita bayangkan, tergantung dari kasus apa yang mau kita implementasikan.
Kenapa dari OAuth 1.0 berubah ke OAuth 2.0
Secara alasan, ada beberapa, yaitu :
- OAuth 1.0 sudah ketinggalan zaman, karena hanya mengakomodasi otorisasi aplikasi berbasis web, sementara saat itu mulai bermunculan teknologi mobile dan aplikasi native.
- Implementasi OAuth 1.0 cukup sulit dibagian proses harus melakukan signature di tiap requestnya, sebagai bagian dari spesifikasi OAuth 1.0.
- Keinginan untuk membuat standar otorisasi yang lebih mudah di kembangkan dan mengakomodasi banyak kasus.
Apa saja yang didefinisikan dalam standarnya ini ?
Banyak hal yang didefinisikan untuk OAuth 2 ini , namun ada beberapa hal penting yang kita angkat :
- Abstract Flow ==> tentang alur umum dalam proses otorisasi OAuth 2
- Authorization Role –> tentang pihak yang terlibat dalam otorisasi.
- Authorization Flow –> tentang alur proses otorisasi.
- Protocol Endpoint –> tentang URI yang terlibat dalam otorisasi.
- Token –> tentang hak akses nya.