Halo selamat datang di Ruang Developer Blog. Dalam proses pengembangan
aplikasi, tentunya kamu akan menemukan istilah authentication dan authorization. Ini adalah
bagian dari keamanan aplikasi yang harus dibuat dengan cara yang benar dan penuh
perhatian, sebab apabila terdapat kekeliruan pada authentication dan authorization dalam
aplikasi yang kamu buat, maka bukan tidak mungkin aplikasi kamu akan beresiko terkena
serangan hacker yang tidak bertanggung jawab.
Tahukah kamu, meskipun sama sama berfungsi sebagai keamanan, authentication dan
authorization ini adalah dua hal yang berbeda.
Apa itu Authentication?
Authentication atau otentikasi adalah proses yang membuktikan apakah seseorang yang mengakses aplkasi adalah benar-benar orang yang benar. Nah apa maksudnya ya, hehe. Jadi gini teman-teman, sebagai contoh, saat kamu membuat sebuah akun pada aplikasi atau website, tentunya kamu akan diminta untuk membuat kata sandi, atau nomor telepon, dan sebagainya yang berfungsi sebagai identifier untuk akun kamu. Pada saat kamu ingin login ke aplikasi, maka kamu akan diminta untuk memasukkan kata sandi yang telah dibuat sebelumnya. Dengan cara inilah sistem dapat mengenali akun kamu karena sistem menganggap bahwa yang mengetahui kata sandi akun kamu adalah diri kamu sendiri.
Apa itu Authorization?
Authorization atau otorisasi adalah proses lanjutan setelah proses authentication. Dalam proses authorization, akun kembali diperiksa apakah memiliki izin untuk mengakses resource yang dimaksud. Jika memiliki izin, maka request akan dilanjutkan, namun apabila tidak memiliki izin, maka request akan dibatalkan. Dalam hal ini biasanya server akan mengembalikan status 403 Forbidden ke browser yang artinya akses tidak diizinkan. Contoh sederhana dari penerapan authorization adalah perbedaan hak akses untuk admin dan user, dimana admin dapat mengakses semua halaman atau resource yang ada pada aplikasi, sedangkan user memiliki akses yang dibatasi (biasanya hanya dibolehkan mengakses resource yang berhubungan dengan akun user seperti profil, postingan milik user, dan lain-lain).
Perbedaan antara authentication dan authorization
Authentication | Authorization |
---|---|
Memverfikasi siapa pengguna sebenarnya | Menentukan sumber daya apa yang dapat diakses pengguna. |
Bekerja menggunakan kata sandi, OTP, informasi biometrik, dan informasi lain yang diberikan atau dimasukkan oleh pengguna. | Bekerja berdasarkan peraturan yang telah ditetapkan oleh developer atau organisasi pemilik aplikasi |
Tahap pertama dalam proses pemeriksaan keamanan | Selalu dijalankan setelah proses authentication selesai |
Terlihat dan sebagian dapat diubah oleh pengguna | Tidak terlihat dan tidak dapat diubah oleh pengguna |
Mengapa authentication dan authorization sangat penting
Dalam suatu aplikasi atau sistem, keamanan adalah bagian yang sangat penting. Internet adalah tempat terbuka yang dapat diakses oleh siapa saja, kapan saja, dan dimana saja. Aplikasi dengan keamanan yang rendah akan sangat beresiko terkena serangan hacker di luar sana. Mulai dari hacker yang sedang belajar, hacker jahil, sampai hacker yang memang benar-benar berniat menyerang aplikasi kamu demi mendapatkan uang tebusan. OLeh karena itu, sebagai seorang developer kita harus betul-betul memperhatikan sisi keamanan dari aplikasi yang kita buat, apalagi aplikasi kita adalah aplikasi yang berhubungan dengan banyak data pengguna, tentunya kita memiliki tanggung jawab yang besar untuk mengamankan data pengguna aplikasi kita.