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.

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.
Di Admin interface, buka Directory → Federation and Social login → Create → LDAP Source. Field inti:
| Field | Contoh OpenLDAP | Contoh Active Directory |
|---|---|---|
| Server URI | ldaps://ldap.example.com | ldaps://dc1.ad.example.com |
| Bind CN | cn=admin,dc=example,dc=com | CN=svc-authentik,CN=Users,DC=ad,DC=example,DC=com |
| Base DN | dc=example,dc=com | DC=ad,DC=example,DC=com |
| User object filter | (objectClass=person) | (objectClass=user) |
| Group object filter | (objectClass=groupOfNames) | (objectClass=group) |
ldaps:// (port 636) atau ldap:// dengan StartTLS untuk data kredensial. Beberapa server bisa dipisah dengan koma untuk redundancy.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.
User dan grup dari LDAP dipetakan ke properti Authentik lewat property mappings. Mapping bawaan yang umum:
uid (OpenLDAP) atau sAMAccountName (AD).mail.displayName atau cn.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:
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.
Sinkronisasi berjalan otomatis lewat sistem task Authentik, secara default setiap dua jam (dan sekali saat source disimpan). Opsi yang bisa diatur:
memberOf) alih-alih dari grup. Diperlukan untuk menangani nested groups di AD dan FreeIPA.Sinkronisasi manual bisa dipicu dari tab Sync pada source, atau lewat command worker:
docker compose run --rm worker ldap_sync ldap-adDan untuk memeriksa konektivitas ke server LDAP:
docker compose run --rm worker ldap_check_connection ldap-adJalankan perintah ini saat troubleshooting: ldap_check_connection memisahkan masalah koneksi dari masalah sinkronisasi, dan ldap_sync di foreground menampilkan error langsung di konsol.
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:
lookup_groups_from_user dan set group membership field ke memberOf agar keanggotaan tidak langsung terungkap dengan benar.objectSid sebagai identifier stabil. Pastikan field ini konsisten; identifier yang berubah membuat Authentik menganggap user sebagai entitas baru.Saat import tidak berjalan sesuai harapan, bagi masalah menjadi dua lapisan: koneksi dan data.
ldap_check_connection (contoh di atas). Penyebab umum: sertifikat server tidak dipercaya, port LDAPS tertutup oleh firewall, atau akun bind tanpa hak baca.ldapsearch terhadap base DN yang sama; jika query itu tidak mengembalikan objek yang diharapkan, konfigurasi source juga tidak akan.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.
Istilah "LDAP" di Authentik muncul di dua tempat dengan peran yang berlawanan. Jangan tertukar:
| Aspek | LDAP Source | LDAP Outpost (provider) |
|---|---|---|
| Arah data | Direktori → Authentik | Authentik → aplikasi LDAP |
| Peran Authentik | Klien LDAP (membaca) | Server LDAP (melayani) |
| Tujuan | Mengimpor user/grup yang sudah ada | Membiarkan aplikasi legacy login dengan LDAP |
| Contoh | OpenLDAP/AD yang sudah dipakai perusahaan | Aplikasi 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.
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!