Episode ini membahas sistem event Authentik: jenis event seperti login, logout, pembuatan user, dan MFA, cara memeriksa event, system tasks, dan error log, ekspor event via API, integrasi SIEM, serta alert pada anomali.

Episode 21 menunjukkan otomatisasi. Semakin banyak yang berjalan otomatis, semakin penting jejak audit — siapa melakukan apa, kapan, dan dari mana. Episode 22 membahas event log dan auditing: membaca event, memeriksa system task, mengekspor lewat API, mengintegrasikan ke SIEM, dan membuat alert pada anomali.
Analoginya seperti kamera dan buku tamu di gedung. Semua orang boleh masuk dan keluar, tetapi harus ada catatan: siapa, kapan, dan ke mana. Saat insiden terjadi, catatan itulah bukti pertama yang kalian buka.
Setiap aksi penting di Authentik menghasilkan event: catatan JSON berisi informasi seperti action, pengguna terkait, aplikasi, alamat IP, dan metadata konteks. Event tersimpan di database dan bisa dicari serta difilter dari UI.
Karena jumlahnya bisa besar, perhatikan masa retensi dan pembersihan berkala — mempertahankan semua event tanpa batas akan membengkakkan database seiring waktu.
Beberapa action yang paling berguna untuk diaudit:
| Action | Arti |
|---|---|
login | Autentikasi berhasil |
login_failed | Autentikasi gagal |
logout | Pengguna keluar |
user_creation | Pengguna baru dibuat |
user_update | Data pengguna diubah |
authorize_application | Aplikasi mengakses sumber daya |
model_created, model_updated, model_deleted | Perubahan konfigurasi |
policy_execution | Hasil evaluasi kebijakan |
system_task_execution | Tugas latar dijalankan |
system_exception | Error internal |
Memahami kategori ini membantu kalian tahu ke mana harus mencari saat menyelidiki sebuah masalah — seperti tahu halaman mana dari buku tamu yang harus dibuka.
Kebiasaan yang baik: setiap kali kalian merasa aneh dengan perilaku login, mulai dari sini dulu sebelum menyentuh konfigurasi.
Tidak semua hal berjalan di jalur utama. Authentik menjalankan system tasks — tugas latar seperti sinkronisasi source, eksekusi event rule, dan tugas berkala lainnya:
system_exception; kombinasi
keduanya adalah titik awal troubleshooting yang baik (dibahas lebih dalam di
episode 28).Event juga bisa diambil lewat API — misalnya dari endpoint
/api/v3/events/events/ — untuk dianalisis di luar Authentik:
curl -s "https://auth.example.com/api/v3/events/events/?action=login_failed" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json" \
| jq '.results[] | {action, user: .user.username, client_ip, created}'Dengan endpoint core/reputation dari episode 19 dan daftar event ini, kalian
punya bahan untuk memetakan pola serangan secara data-driven.
Authentik bisa bereaksi terhadap event secara otomatis lewat Event Rules (menu Events → Rules). Cara kerjanya: aturan berisi kebijakan event matcher untuk memilih event, lalu menjalankan aksi — misalnya mengirim notifikasi email atau webhook. Contoh membuat matcher lewat blueprint:
version: 1
entries:
- model: authentik_policies_event_matcher.eventmatcherpolicy
identifiers:
name: event-matcher-login-failed
attrs:
action: login_failedMatcher ini lalu diikat ke sebuah event rule di UI bersama transport
notifikasi pilihan kalian. Efeknya: setiap login_failed memicu alert tanpa
perlu manusia memantau layar.
Untuk lingkungan yang menuntut compliance, event perlu mengalir ke sistem sentral:
/api/v3/events/events/ ke
pipeline log (misalnya Loki atau ELK).Kombinasi yang sering dipakai:
login_failed berulang untuk akun istimewa, misalnya
akadmin.authorize_application dari aplikasi yang tidak dikenal.login_failed per IP sebagai indikasi
serangan brute force.Ingat: tujuan alert adalah mengurangi kebisingan, bukan menambahkannya. Pilih pola yang benar-benar membutuhkan perhatian manusia.
Tip
Uji event rule kalian: trigger satu login gagal secara sengaja dan pastikan notifikasi tiba. Alert yang tidak pernah diuji nilainya sama dengan tidak ada alert.
Ringkasan episode 22:
system_exception menjadi titik awal troubleshooting.Di episode 23, kita memastikan semua itu tetap menyala: high availability dengan replika server, worker, dan data layer yang berbagi beban. Sampai jumpa!