Lewati ke konten utama

Alur Autentikasi

INApas Flow

1. Autentikasi Permintaan RP/Klien (Klik Login dengan INApas)

Proses:

Relying Party (RP) atau Klien mengirimkan permintaan autentikasi ke endpoint SSO INApas /sso/oauth2/auth.

Detail Teknis:

Permintaan dikirim melalui protokol HTTPS dengan metode GET atau POST.

Parameter penting yang dikirim meliputi:

  • client_id: ID unik dari aplikasi klien yang terdaftar di INApas.
  • redirect_uri: URL yang akan dikembalikan kepada pengguna setelah autentikasi untuk menerima token atau kode otorisasi.
  • response_type: Diatur ke code untuk aliran kode otorisasi.
  • Skope: Menentukan cakupan data yang akan diakses (misalnya, profil pengguna).
  • state: Token unik untuk mencegah serangan CSRF (Pemalsuan Permintaan Lintas Situs).

2. Pengalihan INApas ke Halaman Login Web

Proses:

Pengguna dialihkan ke halaman login web INApas untuk memasukkan kredensial mereka.

Detail Teknis:

  • Endpoint mesin SSO INApas dialihkan ke halaman login web INApas (QR Code)

  • Endpoint ini juga menyertakan mekanisme autentikasi tambahan (LDA) untuk meningkatkan keamanan.

  • Sistem backend memvalidasi kredensial pengguna terhadap basis data terintegrasi atau Penyedia Identitas (OP).


3. Autentikasi & Persetujuan Persetujuan

Proses:

Setelah berhasil masuk, pengguna akan diarahkan ke halaman persetujuan untuk mengizinkan akses ke data mereka sesuai dengan cakupan yang diminta.

Detail Teknis:

  • Pengguna dapat melihat daftar izin yang diminta oleh aplikasi.

  • Jika pengguna memberikan persetujuan, server akan menghasilkan kode otorisasi.

  • Jika pengguna menolak, proses akan dihentikan dan kesalahan akan dikembalikan ke RP.


4. Pengalihan ke URL Panggilan Balik RP

Proses:

Setelah persetujuan diberikan, pengguna akan dialihkan ke URL panggilan balik yang ditentukan oleh RP dengan kode otorisasi yang disertakan.

Detail Teknis:

URL panggilan balik akan menerima parameter seperti:

  • kode: Kode otorisasi sementara yang digunakan untuk mendapatkan token akses.

  • state: Parameter unik yang digunakan untuk validasi keamanan.

RP harus memvalidasi parameter state untuk memastikan integritas permintaan.


5. Pertukaran Token

Proses:

RP menggunakan kode otorisasi untuk meminta token akses dari INApas melalui titik akhir /sso/oauth2/token.

Detail Teknis:

Permintaan ini menggunakan metode POST dengan parameter seperti:

  • client_id dan client_secret: Digunakan untuk autentikasi aplikasi.

  • Code: Kode otorisasi yang diterima pada langkah sebelumnya.

  • redirect_uri: Harus sama dengan URL yang telah didaftarkan sebelumnya.

  • grant_type: Setel ke kode_otorisasi.

Respons:

  • Jika valid, server akan mengembalikan token akses, refresh token (opsional), dan informasi tambahan seperti durasi token.