Mengenal Authentication
Apa itu Authentication?
Authentication adalah proses dimana seorang user
(melalui berbagai macam akses fisik berupa komputer, melalui jaringan, atau
melalui remote access) mendapatkan hak akses kepada suatu entity. Seorang user melakukan login kedalam suatu
infrastruktur jaringan dan sistem mengenali user ID ini dan menerimanya untuk
kemudian diberikan akses terhadap resources jaringan sesuai dengan authorisasi
yang dia terima.
Sumber : https://www.veracode.com/blog/secure-development/top-five-web-application-authentication-vulnerabilities-we-find
Metode authentication yang berbasis pada kerahasiaan
informasi adalah:
- Password/PIN: Hanya pemiliknya yang tahu password/pin.
- Digital Certificate: Berbasis pada asymmetric cryptography yang mengandung informasi rahasia yaitu private key.
- Private Key: Hanya pemiliknya yang tahu private key, orang lain hanya tahu public key.
Sedangkan metode authentication yang berbasis pada
keunikan adalah:
- Retina: Tidak mungkin ada 2 orang yang pola retinanya sama.
- Fingerprint: Tidak mungkin ada 2 orang yang sidik jarinya sama.
- Paspor: Hanya pemiliknya yang bisa menunjukkan foto di paspor sesuai dengan wajahnya.
- Tandatangan: Hanya pemiliknya yang bisa menuliskan tandatangan dengan sempurna.
Session Based Authentication
Pada session based authentication, server aka membuat
session untuk user setelah user log in. Session id akan disimpan di dalam
cookie pada browser yang digunakan user. Selama user tetap dalam keadaan log
in, Cooki dapat dikirim pada setiap request yang dilakukan oleh user. Server
lalu melakukan perbandingan dengan session id yang disimpan pada cookie dengan
informasi session yang disimpan pada memory untuk mengverifikasi identitas user
dan mengembalikan respon sesuai dengan status yang diberikan.
Token Based Authentication
Terdapat banyak aplikasi web menggunakan JSON Web
Token (JWT) dibandingkan sessions untuk authentication. Pada aplikasi token
based, server akan membuat JWT dengan rahasia dan mengirim JTW kepada client.
Client kemudian menyimpan JTW (biasanya pada local storage) dan memasukan JWT
kedalam headers untuk setiap request yang dilakukan oleh client. Server
kemudian akan memvalidasi JWT pada setiap request yang dilakukan clinet dan
mengembalikan respons yang sesuai.
Perbedaan yang sangat besar disini adalah user’s state tidak disimpan di dalam server, akan tetapi disimpan didalam token pada sisi client. Sebagian besar aplikasi web modern menggunakan JWT untuk authentication dengan alasan scalabilty dan mobile device authentication.



Komentar
Posting Komentar