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.

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.
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.
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.
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.
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.
Mode khusus untuk flow yang meniru perilaku versi Authentik lama. Hampir semua kasus memakai mode modern; biarkan default.
Beberapa stage yang paling sering dipakai:
identification
-> password
-> authenticator_validate (hanya jika policy mewajibkan MFA)
-> user_login
-> lanjut ke redirect aplikasiSetelah 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.
Langkah membuat flow baru di admin interface:
kiosk-authentication-flow) dan pilih designation yang tepat.Flow juga bisa menunjuk flow lain sebagai sasaran lanjutan — misalnya setelah authentication flow selesai, pengguna diarahkan ke authorization flow aplikasi tertentu.
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_validateKetika 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.
docker compose logs -f server) mencatat kegagalan stage.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.
Berikut ringkasan bagaimana flow & stages bekerja dalam satu login sederhana:
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 <---|
|------------------------------>|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:
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!