Belajar Authentik - Users, Groups & Attributes
Episode 5 of 31

Belajar Authentik - Users, Groups & Attributes

Mengelola identitas di Authentik: membuat user dan grup, memahami properti user dan status aktif nonaktif, service account dan impersonation, atribut kustom yang dipakai policies, sumber user dari LDAP hingga social login, dan impor massal via API.

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

Pendahuluan

Setelah di episode 4 kalian memahami flows & stages — dan bagaimana Authentik merangkai blok-blok autentikasi — saatnya mengelola bahan utamanya: user dan group. Tanpa user, flow tidak punya siapa yang diautentikasi; tanpa group, policies tidak punya cara mengatur akses secara terpusat. Pastikan stack kalian hidup (docker compose ps) sebelum berlatih.

Episode ini membahas manajemen identitas: membuat user dan grup, properti dan status user, service account dan impersonation, atribut kustom yang bisa dipakai policies dan property mappings, sumber user dari internal hingga LDAP dan social login, serta impor massal via API.

User Management

Membuat User

Di admin interface: Directory → Users → Create User. Isi minimal yang wajib: username, name, dan email. Setelah user dibuat, kalian bisa mengatur password lewat aksi user.

Properti User

Properti inti yang perlu dipahami:

  • username — identifier unik untuk login.
  • name — nama tampilan.
  • email — identitas dan saluran komunikasi (reset password, notifikasi).
  • is_active — status aktif/nonaktif. User nonaktif tidak bisa login.
  • is_superuser — hak admin penuh; hanya berikan ke yang benar-benar butuh.
  • attributes — kolom data bebas berformat JSON (dibahas di bagian Attributes).

Status Aktif dan Nonaktif

Menonaktifkan user (toggle is_active) adalah cara cepat memutus akses tanpa menghapus data. Ini lebih aman daripada delete: akun tetap ada untuk audit, tapi tidak bisa dipakai. Untuk memutus akses segera, nonaktifkan; hapus hanya jika akun memang harus dibuang beserta data atributnya.

Manajemen Password

Admin bisa mengatur password user lewat UI, dan user bisa mengganti sendiri lewat interface pengguna atau recovery flow. Jangan pernah berbagi password lewat channel tidak aman; untuk tim, arahkan ke recovery flow.

Service Accounts

Authentik punya service account — akun tanpa password yang dipakai untuk otomatisasi (API, script, integrasi machine-to-machine). Buat lewat Directory → Users → Service Accounts. Service account memakai token, bukan password, dan sangat cocok untuk integrasi seperti outpost dan CI/CD.

User Impersonation

Admin bisa impersonate user — "masuk sebagai" user tersebut tanpa tahu passwordnya. Ini sangat berguna untuk men-debug masalah yang hanya dialami user tertentu. Gunakan dengan hati-hati: semua aksi impersonation tercatat di event log.

Groups

Grup adalah cara mengelola akses secara terpusat: satu grup, banyak anggota, dan policies cukup merujuk nama grup.

  • Membuat grupDirectory → Groups → Create Group, beri nama (misalnya engineering).
  • Keanggotaan — tambahkan user satu per satu atau bulk. Keanggotaan ini yang akan dibaca policies (misalnya "hanya anggota grup engineering").
  • Hierarki grup — grup bisa punya parent; keanggotaan grup anak ikut dipertimbangkan dalam logika akses tertentu. Mulailah sederhana: grup datar dulu, baru hierarki.
  • Group attributes — grup juga punya kolom attributes JSON; dipakai untuk data konteks (misalnya kode departemen, tingkat akses).
  • Default groups — instalasi membuat dua grup bawaan: authentik Admins (penuh) dan authentik Users (semua user otomatis menjadi anggotanya).

Tip

Saat user baru dibuat, ia otomatis menjadi anggota grup authentik Users. Manfaatkan pola ini: jangan beri akses per-user, tapi buat grup per peran (misalnya engineering, finance, admins) dan beri akses lewat grup.

Attributes & Custom Fields

Attributes adalah kolom bebas berformat JSON di user maupun grup — semacam "custom fields" yang bisa kalian isi apa saja. Contoh penggunaan nyata:

  • Menyimpan department, employee_id, atau location pada user.
  • Menyimpan sla_tier pada grup.
  • Membacanya di expression policy untuk memutuskan akses.
PythonExpression policy membaca atribut user
if request.user.attributes.get("department") == "engineering":
    return True
return False

Atribut juga bisa diteruskan ke aplikasi lewat property mappings (dibahas di episode 9) — misalnya menyuntikkan department ke dalam claim token OIDC.

User Sources

User Authentik tidak selalu dibuat manual. Ada beberapa source identitas:

  • Internal — user yang dibuat langsung di Authentik.
  • LDAP / Active Directory — user disinkronkan dari direktori yang sudah ada (episode 17).
  • OAuth sources — login via Google, GitHub, Discord, dan lainnya; user dibuat otomatis saat pertama kali login (episode 16).
  • SAML sources — federasi dari IdP eksternal.
  • SCIM provisioning — penyediaan user otomatis dari sistem HR atau IdP lain.

Source mengisi user ke Authentik; policy dan flow tetap bekerja sama seperti user internal.

Bulk Operations dan Impor Massal

Untuk membuat banyak user sekaligus, jangan klik satu per satu — pakai API. Authentik menyediakan REST API lengkap dengan dokumentasi Swagger di auth.example.com/api/v3/docs/. Pola dasarnya: buat token di admin interface, lalu kirim request ke endpoint user.

Membuat user via API Authentik
curl -X POST \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"username": "budi", "name": "Budi Santoso",
       "email": "budi@example.com"}' \
  https://auth.example.com/api/v3/core/users/

Strategi impor massal yang umum: buat file CSV dengan kolom username, name, email, dan group; lalu loop baris CSV dengan script (Python, Bash, atau apa pun) yang memanggil API. Detail API dan otomatisasi akan kita bedah menyeluruh di episode 21.

Warning

Pastikan file CSV dan token API tidak ter-commit ke git — keduanya berisi data identitas dan kredensial. Simpan di tempat aman dan hapus token yang tidak terpakai.

Penutup

Pada episode 5 ini kalian telah memahami manajemen identitas di Authentik: membuat user dengan properti seperti username, name, email, status is_active, dan is_superuser; memakai service account untuk otomatisasi dan impersonation untuk debugging; mengelola grup beserta hierarki dan grup bawaan authentik Admins serta authentik Users; memanfaatkan atribut JSON untuk data kustom yang dibaca policies; mengenal sumber user dari LDAP hingga social login; serta impor massal via API.

Poin yang harus kalian bawa:

  • Nonaktifkan, jangan hapus saat memutus akses — audit tetap hidup.
  • Atur akses berbasis grup, bukan per-user.
  • Attributes adalah jembatan antara data bisnis dan keputusan akses.
  • API + CSV untuk impor massal; token jangan pernah di-commit.

Di episode 6 selanjutnya kita akan masuk ke jantung otorisasi: Policies — logika bersyarat dengan expression policy Python, policy engine dengan AND/OR, dan use case nyata seperti akses berbasis grup, batasan IP, hingga penegakan MFA. Sampai jumpa di episode 6!

Belajar Authentik - Users, Groups & Attributes | Belajar Authentik