11 KiB
LDAP — Mailcow ke Active Directory
Terakhir Diperbarui: 2026-07-06
AD:10.100.1.40· domaingisportal.id
Status: 26 mailbox@geonet.co.idvia LDAP ✅ (2026-07-06)
⚠️ Bind password tidak didokumentasikan di repo — reusegeonet-console.env
Status AD — Mail-Users (2026-07-06)
| Item | Nilai | Status |
|---|---|---|
| Grup LDAP | Mail-Users |
✅ |
| DN grup | CN=Mail-Users,CN=Users,DC=gisportal,DC=id |
✅ |
| Mailbox di Mailcow | 26 user @geonet.co.id |
✅ LDAP sync |
| Kirim internal | support@ → rbsetiawan@ dll. |
✅ verified |
Onboard user baru: tambah ke grup Mail-Users + atribut mail = user@geonet.co.id → jalankan php /crons/ldap-sync.php atau tunggu periodic sync (15 menit).
Status AD — Mail-Users (awal 2026-07-03)
| Item | Nilai | Status |
|---|---|---|
| Grup LDAP | Mail-Users |
✅ Dibuat user |
| DN grup (default AD) | CN=Mail-Users,CN=Users,DC=gisportal,DC=id |
⚠️ Verifikasi jika filter gagal |
| Member | support |
✅ |
Atribut mail |
support@geonet.co.id |
✅ |
| sAMAccountName | support |
(untuk login LDAP) |
LDAP filter siap pakai:
(&(objectClass=user)(objectCategory=person)(memberOf=CN=Mail-Users,CN=Users,DC=gisportal,DC=id))
Mailbox pertama yang akan di-provision otomatis: support@geonet.co.id — sekaligus mailbox Zammad + fetchmail POP3 drain.
Jawaban singkat
Ya, Mailcow bisa pakai LDAP (Active Directory) sebagai Identity Provider — login IMAP/SMTP/SOGo dan provisioning mailbox otomatis.
User tidak perlu password terpisah di Mailcow; autentikasi ke AD sama seperti geonet-console dan Zammad.
Tapi: manajemen akun tidak 100% identik dengan microservice lain — Mailcow tetap perlu konfigurasi domain email, template mailbox, dan grup siapa yang dapat mailbox @geonet.co.id.
Posisi dalam ekosistem Super Apps
flowchart LR
AD[(Active Directory\n10.100.1.40\ngisportal.id)]
AD -->|LDAP bind| GC[geonet-console\nJWT login]
AD -->|LDAP sync| ZM[Zammad\nagent/customer]
AD -->|LDAP IdP| MC[Mailcow\nmailbox @geonet.co.id]
AD -->|LDAP| FE[mysupperapps PWA\nvia console API]
MC --> OL[Outlook IMAP/SMTP]
MC --> ZM
| Layanan | LDAP dipakai untuk | User lokal? |
|---|---|---|
| geonet-console | Auth only → JWT | Tidak |
| Zammad | Sync user + role/group | Dibuat otomatis dari AD |
| Mailcow | Auth mailbox + import/sync | Mailbox auto-provision (bukan admin) |
| Super Apps FE | Via geonet-console API | Tidak |
Sumber kebenaran identitas: AD 10.100.1.40 — password, nama, grup.
Fitur LDAP native Mailcow (2025+)
Mailcow menyediakan System → Configuration → Access → Identity Provider → LDAP.
| Fitur | Keterangan |
|---|---|
| LDAP bind login | User login pakai kredensial AD |
| Auto-provision | Mailbox dibuat saat login pertama (IMAP/SMTP/UI) |
| Periodic import | Cron impor user dari LDAP |
| Periodic full sync | Update template/quota dari perubahan AD |
| Attribute mapping | Map atribut LDAP → template mailbox Mailcow |
Dokumentasi resmi: mailcow LDAP guide
Batasan penting
| Item | Perilaku |
|---|---|
| Admin Mailcow | Tetap auth SQL (bukan LDAP) |
| Domain Admin | Tetap auth SQL |
| Mailbox user | Bisa LDAP ✅ |
| 2FA | LDAP user bisa set 2FA di UI Mailcow |
| Outlook | Login pakai password AD; tidak perlu app password khusus (beda dengan OIDC) |
| Active Directory | Pakai filter AD (objectClass=user), bukan posixAccount |
Catatan AD: Ada laporan issue Dovecot + filter
posixAccountuntuk AD. Pastikan filter di Identity Provider memakai sintaks AD. Cek log IMAP setelah setup.
Parameter LDAP (selaras Zammad / geonet-console)
| Field Mailcow UI | Nilai |
|---|---|
| URI / Host | ldap://10.100.1.40:389 |
| Bind DN | Administrator@gisportal.id |
| Bind password | LDAP_BIND_PASSWORD dari geonet-console |
| Base DN | DC=gisportal,DC=id |
| LDAP Filter | (&(objectClass=user)(objectCategory=person)(memberOf=CN=Mail-Users,OU=Groups,DC=gisportal,DC=id)) (contoh — sesuaikan grup) |
| Username field | mail (bukan sAMAccountName — sync butuh alamat email penuh) |
| Attribute Field (mapping) | mail atau atribut custom |
Reuse credential: /opt/stacks/geonet-console/.env — pola sama dengan Zammad (Zammad/docs/notes/ldap-ad-setup.md).
Prasyarat jaringan
# Dari VM Mailcow (.102)
nc -zv -w5 10.100.1.40 389
Firewall: 10.100.1.28 → 10.100.1.40:389
Tantangan: AD gisportal.id vs email geonet.co.id
AD domain = gisportal.id, tetapi mailbox operasional = @geonet.co.id.
| Strategi | Cara | Rekomendasi |
|---|---|---|
A — Atribut mail di AD |
Set mail = user@geonet.co.id per user |
✅ Paling bersih |
| B — Grup + template | Hanya user di grup Mail-Users AD yang di-import |
✅ Kontrol siapa dapat email |
| C — proxyAddresses | SMTP:user@geonet.co.id di AD |
Enterprise, butuh script |
| D — Dual domain | Login AD user@gisportal.id, alias user@geonet.co.id |
Manual per user di Mailcow |
Rekomendasi: Kombinasi A + B:
- Buat grup AD
Mail-Users(atauIT-Mail,Domain Userssubset) - Isi atribut
mail=nama@geonet.co.iduntuk anggota grup - LDAP filter:
memberOf=CN=Mail-Users,... - Hanya user dengan
mail@geonet.co.idyang di-provision
User tanpa mail atau di luar grup → tidak dapat mailbox (sama seperti 3 user gagal sync di Zammad).
Attribute mapping & mailbox template
Mailcow memakai template untuk quota, spam policy, dll.
| LDAP Attribute Field | Attribute value | Template Mailcow |
|---|---|---|
mail |
*@geonet.co.id |
default (buat template di UI) |
department |
IT |
it-mailbox (opsional) |
Cron sync (disarankan aktif):
| Opsi | Fungsi |
|---|---|
| Import Users | Impor user baru dari LDAP tiap N menit |
| Periodic Full Sync | Update mailbox jika template/atribut berubah |
| Sync / Import Interval | 15 menit (sesuaikan) |
Log: System → Information → Logs → Crontasks
Alur provisioning user baru
1. Admin tambah user di AD (+ grup Mail-Users + atribut mail)
2. Cron Mailcow LDAP sync (atau login pertama)
3. Mailbox user@geonet.co.id dibuat otomatis
4. User buka Outlook → IMAP sync.geonet.co.id + password AD
5. Zammad (jika mailbox support@) poll IMAP mailbox yang sama
Tidak perlu buat user manual di Mailcow UI untuk user standar.
Apa yang tetap dikelola di Mailcow UI
| Item | LDAP? | Keterangan |
|---|---|---|
| Password user | ✅ AD | Central |
| Nama / display | ✅ AD | Sync dari LDAP |
| Buat/hapus user | ✅ AD (+ grup) | Hapus = disable di AD + hapus mailbox |
Domain geonet.co.id |
❌ Mailcow | Tambah domain sekali |
| Alias email | ❌ Mailcow | info@ → support@ |
| Shared mailbox | ❌ Mailcow | Manual |
| Quota / template | ⚙️ Hybrid | Template di Mailcow, assign via LDAP mapping |
| fetchmail POP3 drain | ❌ Mailcow | Konfig terpisah (staging cPanel) |
| Admin panel Mailcow | ❌ SQL | admin lokal — jangan LDAP |
Perbandingan manajemen terpusat
| Aksi admin | Di AD saja? | Catatan |
|---|---|---|
| Onboard karyawan baru | Hampir ✅ | + grup Mail-Users + mail attribute |
| Reset password | ✅ | Satu password untuk AD, Outlook, SOGo |
| Nonaktifkan karyawan | ✅ | Disable AD → sync → blokir login mail |
| Ubah alamat email | ✅ | Ubah mail di AD + sync |
| Tambah domain email baru | ❌ | Mailcow UI |
| Forward / alias | ❌ | Mailcow UI |
Kesimpulan: LDAP cukup untuk 90% manajemen user harian; Mailcow UI untuk kebijakan mail (domain, alias, template).
Integrasi dengan Outlook & Zammad
Setelah LDAP aktif:
| Klien | Login | Server |
|---|---|---|
| Outlook | user@geonet.co.id + password AD |
IMAP/SMTP sync.geonet.co.id |
| Zammad channel | Service account support@geonet.co.id |
Bisa tetap password mailbox khusus (bukan LDAP user login) |
Keputusan 2026-07-06:
support@memakai authsource ldap (satu mailbox). fetchmail POP3 tetap; user IMAP password AD. Lihat ADR-0001-support-ldap-auth.md.
Step-by-step (setelah Mailcow terinstall)
1 — Tambah domain
E-Mail → Configuration → Domains → tambah geonet.co.id
2 — Buat mailbox template
E-Mail → Configuration → Templates → default (quota, ratelimit)
3 — Identity Provider LDAP
System → Configuration → Access → Identity Provider
- Pilih LDAP
- Isi connection (lihat tabel parameter di atas)
- Connection Test → harus OK
- Set LDAP filter + attribute mapping
- Aktifkan Import Users + Periodic Full Sync
- Interval: 15 menit
4 — Grup AD ✅ (2026-07-03)
| Item | Status |
|---|---|
Grup Mail-Users |
✅ |
Member support |
✅ |
mail = support@geonet.co.id |
✅ |
Tambahkan member baru dengan aturan sama: masuk grup Mail-Users + atribut mail = nama@geonet.co.id.
5 — Uji
- Login SOGo / Mailcow UI dengan user AD uji
- Cek mailbox muncul di E-Mail → Mailboxes
- Tes Outlook IMAP/SMTP
- Cek log jika IMAP gagal:
System → Information → Logs
6 — Admin Mailcow
Pertahankan akun admin SQL terpisah — jangan pakai LDAP untuk admin panel.
Troubleshooting
| Gejala | Penyebab | Tindakan |
|---|---|---|
| Web login OK, IMAP gagal | Filter LDAP tidak cocok AD | Ubah filter ke objectClass=user; cek log Dovecot |
| User tidak ter-import | Tidak match filter / grup | Cek memberOf, atribut mail |
| Email salah domain | mail di AD masih @gisportal.id |
Update AD → @geonet.co.id |
| Connection test gagal | Firewall / bind password | nc ke .40:389, cek bind DN |
| Semua user AD dapat mailbox | Filter terlalu luas | Perketat memberOf=CN=Mail-Users,... |
| SOGo Unauthorized (domain baru) | _sogo_static_view password tidak sinkron; domain belum di SOGo plist |
Reset password di Admin UI → jalankan scripts/fix-sogo-domain.sh |
SOGo Unauthorized (authsource=mailcow) |
Password SOGo ≠ password mailbox; atau pakai password AD salah | Pakai password Mailcow mailbox (bukan Administrator@gisportal.id AD) |
/user OK, /SOGo/so/ 403 tanpa login |
Session terpisah | Login form SOGo, atau buka Webmail dari menu /user |
Roadmap LDAP Mailcow
| # | Task | Status |
|---|---|---|
| 1 | Install Mailcow di .102 |
❌ |
| 2 | Tes koneksi LDAP dari container | ❌ |
| 3 | Buat grup AD Mail-Users |
✅ 2026-07-03 |
| 4 | Member support + mail @ geonet.co.id |
✅ |
| 5 | Konfigurasi Identity Provider | ✅ 2026-07-03 |
| 6 | Uji Outlook + SOGo | ⏳ |
| 7 | docs/project-status.md |
✅ |
Referensi
- Mailcow LDAP docs
Zammad/docs/notes/ldap-ad-setup.md— parameter AD samaserver-connection/docs/environment.md—LDAP_*varsMailcow/docs/notes/email-sync-migration-concept.md— alur POP3 drain + Mailcow