Belajar Authentik - Understanding Flows & Stages
Episode 4 of 31

Belajar Authentik - Understanding Flows & Stages

Memahami jantung Authentik: konsep flows dengan designation dan stage binding, jenis-jenis stage dari identification hingga consent, menganalisis built-in flows, membuat custom flow, dan men-debug dengan flow inspector.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Setelah di episode 3 Authentik berjalan dan kalian berhasil login ke admin interface sebagai akadmin, saatnya mengenal konsep yang paling membedakan Authentik dari identity provider lain: flows & stages. Jika stack kalian belum berjalan, aktifkan dulu dengan docker compose up -d.

Di Authentik, hampir semua yang kalian lihat adalah flow: login adalah flow, pendaftaran adalah flow, reset password adalah flow, logout adalah flow, bahkan setup MFA adalah flow. Tidak ada halaman login statis yang dikode keras — semuanya dibangun dari blok-blok kecil bernama stages yang dirangkai oleh flow executor. Seperti mesin perakit di pabrik: setiap stage adalah satu stasiun kerja, flow adalah urutan stasiun yang menentukan hasil akhir.

Konsep Dasar Flow

Designation

Setiap flow punya designation — penunjukan tujuan yang menentukan kapan Authentik memanggilnya. Saat pengguna butuh login, Authentik mencari flow ber-designation authentication; saat butuh reset password, ia mencari flow ber-designation recovery. Designation yang tersedia: authentication, authorization, enrollment, unenrollment, recovery, invalidation, dan setup.

Flow Executor

Mesin yang menjalankan flow. Ia bekerja berulang: panggil stage berikutnya, tampilkan challenge (pertanyaan) ke pengguna, tunggu jawaban, validasi, lalu lanjut ke stage berikutnya — hingga flow selesai atau terhenti.

Stage Binding

Cara stages dirangkai dalam flow. Urutan binding adalah urutan eksekusi. Kalian bisa menambahkan, menghapus, mengurutkan, dan mengaktifkan atau menonaktifkan binding kapan saja — dan perubahan berlaku seketika.

Policy Binding

Stage maupun flow bisa dibungkus policy. Jika policy menghasilkan "boleh", stage dijalankan; jika "tidak", stage dilewati. Contoh paling nyata: MFA hanya diwajibkan ketika login datang dari IP asing — policy menilai, stage authenticator validation dijalankan atau dilewati. Details policies akan kita bedah di episode 6.

Compatibility Mode

Mode khusus untuk flow yang meniru perilaku versi Authentik lama. Hampir semua kasus memakai mode modern; biarkan default.

Jenis-Jenis Stage

Beberapa stage yang paling sering dipakai:

  • Identification stage — meminta identifier (username atau email). Ini gerbang pertama hampir semua flow login.
  • Password stage — memvalidasi password terhadap sumber pengguna.
  • Authenticator validation stage — memvalidasi perangkat MFA (TOTP, WebAuthn) saat login.
  • Authenticator setup stage — mendaftarkan perangkat MFA baru (dipakai saat enrollment atau setup).
  • User login stage — menandai pengguna sebagai login dan menyelesaikan sesi.
  • User write stage — menyimpan data dari prompt ke user (dipakai saat enrollment).
  • Consent stage — meminta persetujuan pengguna terhadap klaim aplikasi (sering muncul di alur OIDC).
  • Email stage — mengirim dan memverifikasi kode lewat email.
  • Prompt stage — menampilkan form kustom; kalian bebas mendefinisikan field apa pun.
  • Deny stage — menghentikan flow dengan penolakan.
  • Dummy stage — selalu berhasil; dipakai untuk pengujian.
Contoh susunan stage dalam authentication flow
identification
  -> password
  -> authenticator_validate   (hanya jika policy mewajibkan MFA)
  -> user_login
  -> lanjut ke redirect aplikasi

Built-in Flows

Setelah instalasi, Authentik membuat flow default yang langsung berfungsi:

  • default-authentication-flow — alur login standar.
  • default-enrollment-flow — alur pendaftaran pengguna baru.
  • default-recovery-flow — alur reset password.
  • default-invalidation-flow — alur logout.

Buka admin interface → menu Flows, pilih default-authentication-flow, dan kalian akan melihat daftar stage binding beserta urutannya. Ini cara terbaik untuk belajar: bedah flow yang sudah bekerja sebelum merakit flow sendiri.

Tip

Sebelum mengedit flow bawaan, duplikat dulu (tombol Clone). Kalian selalu ingin menyimpan satu salinan kerja yang diketahui berfungsi — jika flow baru rusak, tinggal ganti dengan salinan.

Membuat Custom Flow

Langkah membuat flow baru di admin interface:

  1. Buka Flows → Create Flow, beri nama (misalnya kiosk-authentication-flow) dan pilih designation yang tepat.
  2. Setelah tersimpan, buka flow tersebut dan pilih Stage Binding → Create Stage Binding.
  3. Pilih stage yang sudah ada atau buat stage baru, lalu atur urutannya.
  4. Tambahkan Policy Binding bila perlu — misalnya hanya jalankan flow pada waktu tertentu.
  5. Uji flow lewat Flow Inspector (dijelaskan di bawah).

Flow juga bisa menunjuk flow lain sebagai sasaran lanjutan — misalnya setelah authentication flow selesai, pengguna diarahkan ke authorization flow aplikasi tertentu.

Struktur flow dalam bentuk ringkas
flow: kiosk-authentication-flow
designation: authentication
 
stage bindings (urutan eksekusi):
  1. identification       prompt username
  2. password             validasi password
  3. user_login           tandai pengguna login
  4. redirect             ke halaman tujuan aplikasi
 
policy binding:
  - mfa-untuk-ip-asing    true -> aktifkan authenticator_validate

Flow Inspector dan Debugging

Ketika sebuah flow selesai dijalankan, Authentik menyediakan Flow Inspector — kalian bisa membuka detail eksekusi dan melihat setiap stage yang berjalan, hasil tiap policy, dan data yang dikirim. Ini alat debugging paling berharga di seluruh Authentik.

  • Cara pakai: jalankan flow (misalnya login), lalu lihat event di admin interface → Events. Kalian akan melihat jejak lengkap eksekusi.
  • Execution logs: Events dan log server (docker compose logs -f server) mencatat kegagalan stage.
  • Masalah umum: stage gagal karena policy binding tidak terpenuhi, email stage tanpa SMTP terkonfigurasi, atau authenticator validation yang meminta perangkat padahal belum ada yang terdaftar.

Important

Jika flow berhenti tanpa alasan jelas, jangan tebak — buka Flow Inspector dan baca stage mana yang menghasilkan kegagalan. Mayoritas masalah alur autentikasi di Authentik terletak pada satu stage yang gagal, bukan pada flow secara keseluruhan.

Diagram Alur Login

Berikut ringkasan bagaimana flow & stages bekerja dalam satu login sederhana:

Diagram eksekusi flow login
User / Browser                Authentik (flow executor)
   |  1. buka app (belum login)   |
   |------------------------------>|
   |                              |  cari flow designation = authentication
   |  2. challenge: username  <---|--- stage identification
   |  3. kirim username  -------->|
   |  4. challenge: password  <---|--- stage password
   |  5. kirim password  -------->|
   |                              |  policy: wajib MFA? (false -> dilewati)
   |  6. user_login  -------------|  stage user_login
   |  7. redirect ke aplikasi <---|
   |------------------------------>|

Penutup

Pada episode 4 ini kalian telah memahami inti Authentik: flows dengan designation sebagai tujuan, stage binding sebagai perakitan, policy binding sebagai pengontrol, dan flow executor sebagai mesin yang menjalankan semuanya. Kalian mengenal jenis-jenis stage — identification, password, authenticator validation & setup, user login, user write, consent, email, prompt, deny, dan dummy — menganalisis built-in flows seperti default-authentication-flow, belajar membuat custom flow, dan berkenalan dengan Flow Inspector untuk debugging.

Poin yang harus kalian bawa:

  • Semuanya adalah flow — login, daftar, reset, logout, setup MFA.
  • Stage adalah blok; flow adalah rangkaian; policy adalah saklar.
  • Flow Inspector adalah alat debugging pertama saat flow bermasalah.
  • Selalu duplikat flow bawaan sebelum mengedit.

Di episode 5 selanjutnya kita akan mengelola user, group, dan attributes: membuat user dan grup, memahami properti user dan service account, atribut kustom yang dipakai policies, sumber user dari LDAP hingga social login, serta impor massal via API. Sampai jumpa di episode 5!

Belajar Authentik - Understanding Flows & Stages | Belajar Authentik