Belajar Authentik - LDAP & Active Directory Source
Episode 17 of 31

Belajar Authentik - LDAP & Active Directory Source

Menyinkronkan user dan grup dari OpenLDAP atau Active Directory ke dalam Authentik lewat LDAP source: konfigurasi server URI, bind DN, base DN dan filter, pemetaan atribut, jadwal sinkronisasi, penggunaan grup AD, hingga perbedaan mendasar dengan LDAP outpost.

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

Pendahuluan

Di episode 16, Authentik mempercayai identity provider cloud lewat OAuth sources. Episode 17 membahas sumber yang lebih dekat dengan dunia enterprise: LDAP source, yang mengimpor user dan grup dari direktori yang sudah ada — OpenLDAP, FreeIPA, atau Active Directory (AD) — ke dalam Authentik.

Kenapa perlu sinkronisasi? Organisasi yang sudah punya AD tidak ingin memindahkan 500 user ke database Authentik secara manual. Dengan LDAP source, Authentik menjadi klien LDAP: ia membaca user dan grup dari direktori secara berkala, membuat user internal, lalu memakai data itu untuk login dan policy. Direktori tetap menjadi sumber kebenaran (source of truth).

Analogi: kalian tidak memfotokopi seluruh arsip karyawan ke dalam buku baru. Kalian membangun jembatan otomatis yang menyalin data dari arsip lama ke sistem baru, lalu memperbarui salinannya secara terjadwal.

Konfigurasi Dasar LDAP Source

Di Admin interface, buka DirectoryFederation and Social loginCreateLDAP Source. Field inti:

FieldContoh OpenLDAPContoh Active Directory
Server URIldaps://ldap.example.comldaps://dc1.ad.example.com
Bind CNcn=admin,dc=example,dc=comCN=svc-authentik,CN=Users,DC=ad,DC=example,DC=com
Base DNdc=example,dc=comDC=ad,DC=example,DC=com
User object filter(objectClass=person)(objectClass=user)
Group object filter(objectClass=groupOfNames)(objectClass=group)
  • Server URI — alamat direktori, wajib ldaps:// (port 636) atau ldap:// dengan StartTLS untuk data kredensial. Beberapa server bisa dipisah dengan koma untuk redundancy.
  • Bind CN dan Bind password — akun layanan yang berhak membaca direktori. Gunakan akun khusus (service account) dengan hak baca minimal, bukan akun administrator domain.
  • Base DN — titik awal pencarian. Additional User DN dan Additional Group DN memperdalam pencarian tanpa mengubah base DN.
  • Filter — menentukan objek mana yang dianggap user dan grup. Filter menentukan jangkauan sinkronisasi: filter yang terlalu luas mengimpor objek tak diinginkan, filter yang terlalu sempit melewatkan user sah.

Important

Jadikan ldaps:// sebagai standar. Password, meskipun tidak pernah dibaca Authentik (yang disinkronkan adalah hash), tetap merupakan data sensitif yang tidak boleh lewat saluran terbuka. Untuk AD, pastikan LDAPS aktif di port 636 sebelum mengonfigurasi source.

Memetakan Atribut LDAP ke Authentik

User dan grup dari LDAP dipetakan ke properti Authentik lewat property mappings. Mapping bawaan yang umum:

  • Username — dari atribut uid (OpenLDAP) atau sAMAccountName (AD).
  • Email — dari atribut mail.
  • Name — dari atribut displayName atau cn.
  • Path — dari DN, misalnya goauthentik.io/sources/ldap.

Mapping bawaan sudah cukup untuk sebagian besar kasus. Untuk kebutuhan khusus, buat mapping kustom. Konteks yang tersedia adalah ldap (dictionary atribut mentah) dan dn (distinguished name objek). Contoh menggabungkan dua atribut:

PythonProperty mapping LDAP kustom
return f"{list_flatten(ldap.get('givenName'))} {list_flatten(ldap.get('sn'))}"

Perhatikan pemakaian list_flatten — banyak atribut LDAP berupa list, dan helper ini mengambil elemen tunggalnya. Ekspresi yang mengembalikan None akan dilewati.

Jadwal Sinkronisasi

Sinkronisasi berjalan otomatis lewat sistem task Authentik, secara default setiap dua jam (dan sekali saat source disimpan). Opsi yang bisa diatur:

  • Sync users — sinkronisasi user; Sync groups — sinkronisasi grup.
  • Sync users password — menyalin hash password dari LDAP. Hanya satu source yang boleh mengaktifkannya; tanpa opsi ini, login Authentik tetap valid untuk user source karena memakai kredensial LDAP saat verifikasi.
  • Parent Group — grup induk di Authentik untuk semua grup hasil import.
  • lookup_groups_from_user — mencari keanggotaan grup dari atribut pada user (misalnya memberOf) alih-alih dari grup. Diperlukan untuk menangani nested groups di AD dan FreeIPA.
  • delete_not_found_objects — menghapus user/grup Authentik yang tidak lagi ada di direktori. Aktifkan hanya setelah yakin filter sudah benar, karena dampaknya menghapus akun.

Sinkronisasi manual bisa dipicu dari tab Sync pada source, atau lewat command worker:

Menjalankan sinkronisasi di foreground
docker compose run --rm worker ldap_sync ldap-ad

Dan untuk memeriksa konektivitas ke server LDAP:

Memeriksa koneksi LDAP source
docker compose run --rm worker ldap_check_connection ldap-ad

Jalankan perintah ini saat troubleshooting: ldap_check_connection memisahkan masalah koneksi dari masalah sinkronisasi, dan ldap_sync di foreground menampilkan error langsung di konsol.

Menggunakan Grup Active Directory

Setelah sinkronisasi, grup AD muncul sebagai grup Authentik. Keanggotaan grup bisa langsung dipakai policy (episode 6): beri aplikasi akses hanya untuk grup DC-administrators, terapkan MFA wajib untuk grup staff, dan seterusnya.

Dua hal yang perlu diperhatikan untuk AD:

  • Nested groups — grup AD bisa berisi grup lain. Aktifkan lookup_groups_from_user dan set group membership field ke memberOf agar keanggotaan tidak langsung terungkap dengan benar.
  • Uniqueness field — AD memakai objectSid sebagai identifier stabil. Pastikan field ini konsisten; identifier yang berubah membuat Authentik menganggap user sebagai entitas baru.

Troubleshooting Sinkronisasi

Saat import tidak berjalan sesuai harapan, bagi masalah menjadi dua lapisan: koneksi dan data.

  • Koneksi gagal — jalankan ldap_check_connection (contoh di atas). Penyebab umum: sertifikat server tidak dipercaya, port LDAPS tertutup oleh firewall, atau akun bind tanpa hak baca.
  • User tidak ter-impor — periksa filter dan base DN. Uji filter dengan tool seperti ldapsearch terhadap base DN yang sama; jika query itu tidak mengembalikan objek yang diharapkan, konfigurasi source juga tidak akan.
  • Password tidak tersinkronisasi — pastikan opsi Sync users password aktif dan hanya satu source yang mengaktifkannya.
  • Sinkronisasi menggandakan user — periksa uniqueness field (untuk AD, objectSid). Identifier yang tidak stabil membuat Authentik menganggap user yang sama sebagai entitas baru di setiap sinkronisasi.

Log task worker adalah sumber diagnosis utama — task sinkronisasi menuliskan detail setiap objek yang dibuat, diubah, atau dihapus, lengkap dengan waktu eksekusi.

Perbedaan dengan LDAP Outpost

Istilah "LDAP" di Authentik muncul di dua tempat dengan peran yang berlawanan. Jangan tertukar:

AspekLDAP SourceLDAP Outpost (provider)
Arah dataDirektori → AuthentikAuthentik → aplikasi LDAP
Peran AuthentikKlien LDAP (membaca)Server LDAP (melayani)
TujuanMengimpor user/grup yang sudah adaMembiarkan aplikasi legacy login dengan LDAP
ContohOpenLDAP/AD yang sudah dipakai perusahaanAplikasi lama yang hanya paham protokol LDAP

LDAP source menyalin direktori ke dalam Authentik (satu arah). LDAP outpost melakukan kebalikannya: Authentik menyajikan user internalnya sebagai server LDAP agar aplikasi legacy bisa melakukan bind. Episode 18 akan membahas LDAP outpost secara menyeluruh.

Tip

Jika kalian sudah punya direktori yang dikelola rapi (AD atau OpenLDAP), LDAP source adalah pilihan tepat — satu sumber kebenaran, Authentik menjadi konsumennya. Jika yang ada adalah aplikasi legacy yang hanya bisa ber-LDAP, butuh LDAP outpost. Keduanya bisa dipakai bersamaan: source untuk impor, outpost untuk layanan.

Penutup

Episode ini mengonfigurasi LDAP source: memahami field server URI, bind DN, base DN dan filter untuk OpenLDAP maupun Active Directory, memetakan atribut lewat property mappings dengan konteks ldap dan dn, mengatur jadwal dan opsi sinkronisasi, memakai grup AD untuk policy, serta membedakan LDAP source dari LDAP outpost.

Kuncinya: direktori tetap sumber kebenaran, dan Authentik menyalinnya secara berkala — bukan sebaliknya. Di episode 18, kita membalik arah dengan LDAP outpost provider: Authentik yang bertindak sebagai server LDAP bagi aplikasi legacy. Sampai jumpa!

Belajar Authentik - LDAP & Active Directory Source | Belajar Authentik