Authentication
Authentication adalah proses memverifikasi pengguna dengan membuktikan identitasnya sebelum mengizinkannya mengakses suatu sistem. Pengguna membuktikan identitasnya dengan memberikan authentication factor.
Authentication factor biasanya dibagi menjadi 3 kategori:
- Sesuatu yang Anda tahu (something what you know)
- Sesuatu yang Anda miliki (something what you have)
- Sesuatu yang ada pada diri Anda (something who you are)
Sesuatu yang Anda Tahu: Ini mengharuskan pengguna memberikan apa yang mereka ketahui. Biasanya, ini berupa kredensial yang merupakan kombinasi dari email/username dan kata sandinya.
Sesuatu yang Anda Miliki: Ini mengharuskan pengguna membuktikan apa yang mereka miliki. Misalnya, pengguna perlu memberikan OTP yang sudah dikirimkan oleh sistem ke nomor ponsel pengguna untuk membuktikan bahwa nomor ponsel tersebut valid dimiliki oleh pengguna itu sendiri.
Sesuatu yang ada pada diri Anda: Ini mengharuskan pengguna memberikan karakteristik fisiknya, misalnya sidik jari, wajah, dan suara.
Multi-Factor Authentication
Ketika pengguna melakukan authentication hanya dengan menggunakan satu factor (misalnya menggunakan email dan kata sandi), ini disebut dengan single-factor authentication. Namun, pengguna juga dapat melakukan authentication dengan beberapa factor untuk meningkatkan keamanan. Ini disebut dengan multi-factor authentication.
Sebagai contoh, ketika seorang pengguna ingin melakukan authentication:
- Dia perlu memberikan email dan kata sandinya (sesuatu yang Anda tahu).
- Setelah itu, dia perlu memberikan OTP yang sudah dikirimkan ke emailnya (sesuatu yang Anda miliki).
Ini akan mencegah penyerang untuk melakukan authentication dengan mudah. Jadi meskipun dia bisa melewati factor pertama dengan mengetahui email dan kata sandi pengguna, dia tidak bisa melewati factor kedua karena dia tidak bisa mengakses email pengguna untuk mendapatkan OTP.
Authorization
Authorization adalah proses memverifikasi izin (permission) pengguna sebelum mengizinkannya untuk mengakses resource tertentu di dalam suatu sistem. Ini berguna untuk memastikan hanya pengguna yang diizinkan yang diperbolehkan untuk mengakses dan mengoperasikan resource tersebut. Selain itu, ini juga berguna untuk melindungi resource dari tindakan-tindakan yang tidak baik yang dapat merusak bisnis perusahaan. Biasanya, proses authorization terjadi setelah proses authentication.
Dalam proses authorization, biasanya terdapat 3 bagian yang terlibat:
- Resource
- Permissions Giver
- Authorized User
Resource adalah sesuatu di dalam sistem yang ingin diakses dan dioperasikan oleh pengguna. Permissions Giver adalah pengguna yang dapat memberikan izin kepada pengguna lain untuk mengakses dan mengoperasikan resource tertentu. Authorized User adalah pengguna yang diizinkan untuk mengakses dan mengoperasikan resource tersebut.
Sebagai contoh, dalam kasus ini:
Pengguna A memberikan izin kepada Pengguna B untuk mengizinkannya membuat, memperbarui, dan menghapus data produk. Pengguna C yang tidak memiliki izin tersebut tidak dapat membuat, memperbarui, dan menghapus data produk.
- Resource: Data produk.
- Permissions Giver: Pengguna A, dia memiliki izin untuk memberikan izin kepada pengguna lain untuk mengakses dan mengoperasikan resource.
- Authorized User: Pengguna B, dia memiliki izin untuk mengakses dan mengoperasikan resource.
Bagaimana Ini Bisa Berbeda
Authentication dan authorization memiliki tujuan yang berbeda. Authentication digunakan untuk memverifikasi pengguna yang ingin mengakses suatu sistem, sedangkan authorization digunakan untuk memverifikasi jenis resource apa yang diizinkan untuk diakses dan dioperasikan oleh pengguna yang telah berhasil melakukan authentication.
Jadi, authorization biasanya diterapkan bersama dengan authentication. Setelah pengguna memberikan kredensialnya dan kemudian dianggap telah berhasil melakukan authentication, sistem biasanya hanya akan menampilkan resource yang bisa diakses dan dioperasikan oleh pengguna tersebut.
Kesimpulan
Singkatnya, authentication dan authorization adalah proses yang berbeda namun saling melengkapi yang sangat penting untuk mengamankan akses ke sistem dan resource. Memahami perbedaan antara authentication dan authorization cukup penting untuk menerapkan praktik keamanan yang baik.