Das Problem

Du richtest grommunio neu ein oder migrierst auf einen neuen LDAP-Server. Die LDAP-Einstellungen in der Admin-Weboberfläche siehst du, du passt sie an — und danach ist das Ergebnis identisch zum Vorher. grommunio-admin ldap check scheitert weiterhin, Logins funktionieren nicht, User-Sync bleibt aus.

Oder du editierst direkt die Config-Datei, die du nach kurzem Suchen gefunden hast:

cat /etc/grommunio-admin-api/conf.d/ldap.yaml
ldap:
  ldap_uri: ldap://dc-obiwan.darkside.lan:7389
  ldap_bind_user: uid=grommunio-ldap,cn=users,dc=darkside,dc=lan
  ldap_bind_pass: MeinPasswort

Sieht gut aus. Dienst neu starten, nochmal prüfen — nichts.

Die Ursache: Zwei LDAP-Configs

grommunio besteht aus zwei separaten Schichten:

SchichtZuständig fürLDAP-Config
grommunio-admin-apiWeb-UI, Admin-Panel/etc/grommunio-admin-api/conf.d/ldap.yaml
gromoxEigentliche Dienste: IMAP, ActiveSync, CalDAV/etc/gromox/ldap_adaptor.cfg

ldap.yaml konfiguriert nur das Admin-Interface. Was du dort siehst (User-Liste, LDAP-Check-Button, User-Sync) — das liest aus dieser Datei.

Die eigentliche Authentifizierung für IMAP, POP3, ActiveSync und CalDAV/CardDAV läuft über gromox. Und gromox hat seine eigene LDAP-Config, komplett unabhängig.

Das ist kein Fehler in der Dokumentation — es steht irgendwo drin. Aber wenn du zum ersten Mal LDAP konfigurierst oder migrierst, findest du zuerst ldap.yaml, änderst sie, testest via grommunio-admin ldap check, siehst Erfolg — und denkst, du bist fertig.

Bis sich der erste User beschwert, dass er sich nicht einloggen kann.

Die Lösung

Beide Configs anpassen.

1. Admin-UI (ldap.yaml)

# Auf mail-chewbacca (grommunio-Server)
vim /etc/grommunio-admin-api/conf.d/ldap.yaml
ldap:
  ldap_uri: ldap://dc-obiwan.darkside.lan:7389
  ldap_bind_user: uid=grommunio-ldap,cn=users,dc=darkside,dc=lan
  ldap_bind_pass: MeinPasswort
  ldap_search_base: cn=users,dc=darkside,dc=lan
  ldap_user_filter: (objectClass=posixAccount)
  ldap_user_username: mail
  ldap_user_displayname: cn
  ldap_starttls: false
  ldap_object_id: entryUUID
  ldap_user_template: Univention
systemctl restart grommunio-admin-api

2. gromox (ldap_adaptor.cfg)

vim /etc/gromox/ldap_adaptor.cfg

Relevante Parameter:

ldap_host=ldap://dc-obiwan.darkside.lan:7389
ldap_bind_user=uid=grommunio-ldap,cn=users,dc=darkside,dc=lan
ldap_bind_pass=MeinPasswort
systemctl restart gromox-http gromox-zcore

Verifikation

# 1. Admin-UI LDAP Check
grommunio-admin ldap check
# Erwartete Ausgabe: "Checking X users... Everything is ok"

# 2. IMAP-Login testen (echter Auth-Test via gromox)
openssl s_client -connect localhost:993 -quiet 2>/dev/null <<< \
  ". login user@<DEINE-DOMAIN> <PASSWORT>" | head -5
# Erwartete Ausgabe: ". OK LOGIN completed"

Nur wenn beide Tests grünes Licht geben, ist alles korrekt konfiguriert.

Checkliste LDAP-Migration grommunio

  • /etc/grommunio-admin-api/conf.d/ldap.yaml aktualisiert
  • grommunio-admin-api neu gestartet
  • grommunio-admin ldap check → OK
  • /etc/gromox/ldap_adaptor.cfg aktualisiert
  • gromox-http und gromox-zcore neu gestartet
  • IMAP-Login mit echtem User-Account getestet

Bonus: Aktive Config anzeigen

grommunio-admin hat einen Befehl um die tatsächlich geladene gromox-Config anzuzeigen:

grommunio-admin mconf dump ldap

Das zeigt was gromox gerade wirklich nutzt — nützlich zur Verifikation nach Änderungen.