Authentication & Authorization

Desdulianto

Pemrograman Web Dengan PHP - Authentication & Authorization - Desdulianto

Bahasan

  • Intro
  • Session Authentication
  • HTTP Authentication
Pemrograman Web Dengan PHP - Authentication & Authorization - Desdulianto

Intro

  • Memproteksi akses terhadap resource
  • Challenge-response Authentication
    • User & password pair
    • Secret word
    • Identification token
  • HTTP Response
Pemrograman Web Dengan PHP - Authentication & Authorization - Desdulianto

Session Authentication

  • Memanfaatkan PHP session untuk menentukan apakah request sudah ter-autentikasi atau belum
  • Client mengirimkan informasi session id melalui cookie
    • Menggunakan HTML form untuk input credential
    • Gunakan HTTPS untuk mencegah penyadapan ketika cookie ditransfer
  • Session dimanage sendiri oleh aplikasi
Pemrograman Web Dengan PHP - Authentication & Authorization - Desdulianto

HTTP Authentication

Pemrograman Web Dengan PHP - Authentication & Authorization - Desdulianto

Basic Authentication

  • Server mengirimkan response HTTP 401 dengan header WWW-Authenticate: Basic realm="some realm"
  • Client menampilkan prompt/input dialog untuk memasukkan credential (username dan password)
    • username dan password digabung jadi satu 1 text dengan dipisahkan :
    • di-encode ke base64 dan kemudian dikirim ke server melalui request header Authorization: Basic xxx
Pemrograman Web Dengan PHP - Authentication & Authorization - Desdulianto

Digest Authentication

  • Mekanisme dasar sama dengan Basic Authentication
  • Credential diproteksi dengan metode hashing/digest sesuai dengan parameter yang dikirim oleh server
  • Tujuannya adalah memproteksi credential yang dikirim ke server
Pemrograman Web Dengan PHP - Authentication & Authorization - Desdulianto

Token Authentication & Authorization

  • Schema HTTP Authorization dengan menggunakan token bearer Authorization: Bearer <token>
  • Token di-generate oleh authentication service, bisa dari web yang bersangkutan (first party) atau dari pihak ketiga (third party, misalnya login menggunakan akun Google, Facebook, dll)
  • Token yang populer dipakai JSON Web Token (JWT)
Pemrograman Web Dengan PHP - Authentication & Authorization - Desdulianto

Mekanisme First Party Authentication & Authorization

  • Server mengirimkan HTTP 401
  • Client melakukan authentication (bisa melalui web form atau mekanisme lain)
    • Server authentication akan menvalidasi authentication, dan mengirimkan authorization token
    • Client menggunakan authorization token untuk mengakses resource
  • Server melakukan validasi terhadap authorization token, jika valid, request diperbolehkan
Pemrograman Web Dengan PHP - Authentication & Authorization - Desdulianto