Alur Autentikasi

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
codeuntuk 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_iddanclient_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.