Se você não precisa do dovecot para saber algo especial sobre seus usuários além dos metadados de um usuário normal do sistema unix (por exemplo, home dir, gid, etc), é muito mais simples configurar o dovecot para fazer autenticação pam e use o pam para se comunicar com o ldap.
Seu dovecot.conf
seria algo assim:
passdb {
driver = pam
args = %s
}
userdb {
driver = passwd
}
Então você tem que colocar algo em /etc/pam.d/dovecot
. Se você já estiver usando a autenticação do LDAP para os usuários do sistema, provavelmente poderá incluir apenas o contexto apropriado da seguinte forma:
auth include system-remote-login
password include system-remote-login
Por outro lado, se você não tiver configurado o pam_ldap para autenticar seus usuários no sistema, provavelmente precisará de um esquema personalizado que faça exatamente isso:
auth sufficient pam_ldap.so minimum_uid=1000
auth required pam_unix.so try_first_pass nullok
auth required pam_env.so
password sufficient pam_ldap.so minimum_uid=1000
password required pam_unix.so try_first_pass nullok
E você precisará dizer ao seu sistema o NSS como falar com o ldap, geralmente via /etc/nslcd.conf
e algo como o seguinte:
uri ldap://localhost/
base dc=example,dc=com
base group ou=Groups,dc=example,dc=com
base passwd ou=People,dc=example,dc=com
base shadow ou=People,dc=example,dc=com
nss_min_uid 1000
Por acaso, se você deixar de fora o userdb { driver = password }
bit do arquivo dovecot.conf
, você receberá o mesmo erro que estava recebendo da pesquisa LDAP da dovecot.