Belajar Authentik - LDAP Outpost Provider
Episode 18 of 31

Belajar Authentik - LDAP Outpost Provider

Episode ini membahas LDAP outpost Authentik: cara mengekspos pengguna dan grup Authentik sebagai direktori LDAP untuk aplikasi lawas, perbedaan outpost standalone dan embedded, konfigurasi provider dengan base DN dan bind mode, koneksi outpost, hingga praktik keamanan.

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

Pendahuluan

Di episode 17 kalian menghubungkan Authentik sebagai klien ke LDAP eksternal menggunakan source. Data pengguna mengalir dari direktori luar masuk ke Authentik. Episode 18 ini membalik arah sepenuhnya: Authentik yang menjadi server LDAP. Peran itu dijalankan oleh LDAP outpost, komponen yang menyajikan pengguna dan grup Authentik dalam bahasa LDAP agar aplikasi lawas tetap bisa memakainya.

Analoginya seperti penerjemah di acara internasional. Delegasi Authentik berbicara dengan standar modern (REST, JSON, OIDC), sementara aplikasi lawas hanya memahami protokol LDAP. Outpost duduk di tengah dan menerjemahkan percakapan tanpa mengubah kebenaran data di kedua sisi.

Apa itu LDAP Outpost

LDAP outpost adalah komponen yang menjalankan protokol LDAP di depan data Authentik. Ada tiga hal yang wajib dipahami sebelum menggunakannya:

  • Read-only terhadap direktori. Client LDAP bisa melakukan bind dan search, tetapi semua penulisan data tetap harus lewat UI atau API Authentik. Outpost bukan penyimpanan; ia jendela, bukan gudang.
  • Password divalidasi lewat flow. Saat client melakukan bind dengan password, outpost menjalankan bind flow Authentik alih-alih mencocokkan hash. Konsekuensinya: kebijakan Authentik seperti blokir akun dan reputation tetap berlaku di jalur LDAP.
  • Satu sumber kebenaran. Tidak ada sinkronisasi yang perlu dijaga. Pengguna yang dibuat di Authentik langsung terlihat oleh aplikasi LDAP.

Standalone vs Embedded Outpost

Authentik punya dua mode menjalankan outpost:

  • Embedded — berjalan di dalam proses server Authentik. Paling cepat untuk uji coba dan lingkungan lab karena tidak perlu container tambahan; cocok untuk satu instance non-produksi.
  • Standalone — dijalankan sebagai container terpisah yang terhubung ke Authentik lewat token. Prosesnya terisolasi, bisa diskalakan, dan menjadi mode yang disarankan untuk produksi.

Aturan praktisnya: mulai dari embedded untuk mengenal mekanismenya, lalu pindah ke standalone begitu deployment masuk lingkungan produksi.

Membuat LDAP Provider

Pembuatan provider dilakukan dari menu Directory → Providers, lalu pilih LDAP Provider. Beberapa pengaturan inti yang perlu dipahami.

Base DN

Base DN adalah akar direktori yang diiklankan ke client, misalnya dc=ldap,dc=example,dc=com. Ini seperti alamat gedung yang disebut client saat pertama kali terhubung. Base DN bukan tempat data pengguna; ia semacam label namespace yang harus konsisten di seluruh instalasi.

Bind Mode

Bind mode menentukan bagaimana client membuktikan identitasnya:

  • Direct — client bind langsung dengan username pengguna Authentik tanpa search terlebih dahulu. Ini mode paling umum dan paling sederhana.
  • Search — client melakukan bind dua langkah: bind awal dengan akun teknis, lalu search user yang dituju. Mode ini dibutuhkan aplikasi yang memisahkan akun koneksi dan akun pengguna.

Bind Flow

Bind flow adalah flow Authentik yang menjalankan validasi saat bind terjadi. Di sinilah aturan seperti kebijakan reputation dan MFA kondisional ikut dievaluasi. Jangan menunjuk sembarang flow; gunakan flow autentikasi yang sudah kalian rancang dengan saksama di episode 4 sampai 7.

Menghubungkan Outpost

Setelah provider dibuat, Authentik membuat outpost terkait secara otomatis. Untuk mode standalone, buka detail outpost lalu salin token-nya:

Menjalankan outpost LDAP standalone
docker run -d --name authentik-ldap \
  -p 1389:3389 \
  -e AUTHENTIK_TOKEN='token-outpost-dari-UI' \
  -e AUTHENTIK_HOST='https://auth.example.com' \
  ghcr.io/goauthentik/proxy:latest

Image goauthentik/proxy dipakai untuk seluruh jenis outpost; peran LDAP atau proxy ditentukan oleh konfigurasi di sisi Authentik. Setelah container berjalan, status outpost di UI berubah menjadi Healthy.

Verifikasi Koneksi

Cek langsung dari mesin client dengan ldapsearch:

Menguji search terhadap outpost
ldapsearch -x -H ldaps://ldap.example.com \
  -D "uid=arman,ou=users,dc=ldap,dc=example,dc=com" \
  -W -b "dc=ldap,dc=example,dc=com" "(uid=arman)"

Jika hasilnya memuat entry pengguna lengkap dengan atribut grup memberOf, berarti koneksi dan bind flow bekerja dengan benar.

Menghubungkan Klien LDAP

Ada tiga kategori klien yang umum dijumpai:

  • Linux (PAM/SSSD) — arahkan ldap_uri dan ldap_search_base ke outpost di /etc/sssd/sssd.conf; login SSH dan service lokal lalu memakai identitas Authentik.
  • Aplikasi internal — isi kolom LDAP Host, Base DN, Bind DN, dan Bind Password di pengaturan aplikasi semacam Nextcloud, GitLab, atau aplikasi ERP.
  • Perangkat jaringan dan VPN — banyak switch, access point, dan gateway VPN bisa memakai LDAP sebagai sumber autentikasi pengguna.

Operasi LDAP: Bind, Search, dan memberOf

Dua operasi yang paling sering dilakukan client:

  • Bind — membuktikan identitas dengan username dan password; outpost meneruskannya ke bind flow Authentik.
  • Search — mencari entry dengan filter seperti (uid=arman) atau (&(objectClass=person)(mail=arman@example.com)).

memberOf adalah atribut dinamis berisi daftar DN grup tempat pengguna berada. Karena dihitung on-the-fly dari data Authentik, perubahan keanggotaan grup langsung terlihat tanpa menunggu sinkronisasi. Inilah yang membuat outpost unggul dibanding skema sinkronisasi berkala.

Use Case LDAP Outpost

  • Unified authentication source — semua aplikasi, modern maupun lawas, berbagi satu direktori identitas.
  • SSO untuk aplikasi legacy — aplikasi tanpa dukungan OIDC/SAML tetap bisa login dengan identitas yang sama.
  • Autentikasi perangkat jaringan — switch dan firewall memakai kredensial yang sama dengan aplikasi lain.
  • Autentikasi VPN — pengguna remote divalidasi oleh kebijakan Authentik.

Keamanan LDAP Outpost

  • Gunakan LDAPS (LDAP over TLS) di luar jaringan tepercaya; jangan membiarkan LDAP plaintext di port 389 melintasi jaringan.
  • Batasi akses jaringan ke port outpost lewat firewall agar tidak terbuka ke internet publik.
  • Outpost read-only dan memvalidasi lewat flow, sehingga reputasi IP dan blokir akun tetap aktif.
  • Jangan mengekspos lebih banyak atribut dari yang dibutuhkan klien.

Warning

LDAP outpost dirancang read-only untuk autentikasi dan pencarian, bukan untuk penyimpanan data. Segala penulisan — membuat pengguna, mengubah password, mengubah keanggotaan grup — tetap dilakukan lewat Authentik.

Penutup

Ringkasan episode 18:

  • LDAP outpost mengekspos pengguna dan grup Authentik sebagai direktori LDAP untuk aplikasi yang hanya memahami protokol LDAP.
  • Embedded outpost cocok untuk lab; standalone untuk produksi dan skalabilitas.
  • Provider dikonfigurasi lewat base DN, bind mode, dan bind flow.
  • Search dan memberOf mendukung autentikasi sekaligus RBAC berbasis grup.

Di episode 19, kita beralih ke sisi pertahanan: sistem reputation dan deteksi ancaman yang otomatis memblokir alamat IP serta akun yang berperilaku mencurigakan. Sampai jumpa!

Belajar Authentik - LDAP Outpost Provider | Belajar Authentik