Apa itu Autentikasi ?

    Authentication adalah proses dimana seorang user mendapatkan hak akses kepada suatu entity (dalam hal ini jaringan suatu corporate). 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.

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. 

Komentar

Postingan populer dari blog ini