No final, eu não consegui fazer com que o saslauthd gerasse informações de depuração melhores, mas no caso de ajudar alguém aqui, é o processo que eu segui para resolver o meu problema.
Primeiro comecei saslauthd com strace, assim:
# strace -f saslauthd -d -a ldap
Eu pude ver todas as chamadas do sistema sendo feitas pelo saslauthd. Parecia que estava falhando durante a troca inicial com o servidor AD, possivelmente durante a negociação TLS.
Eu decidi ver se poderia reproduzir um comportamento semelhante usando a ferramenta ldapsearch da linha de comando fornecida com o openldap. Eu dei um comando assim:
$ ldapsearch -d 9 -H ldaps://ldap.ad.mycompany.com:3269/ -D MYBINDDN -w xxxxxx \
-b DC=mycompany,DC=xx '(&(cn=myuser)(objectClass=person))'
O -d 9 finalmente me deu uma saída de depuração útil:
TLS: certificate [CN=VeriSign Class 3 Public Primary Certification Authority - G5,OU="(c) 2006 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US] is not valid - error -8179:Peer's Certificate issuer is not recognized..
Lendo a página man do ldap.conf, descobri que devo definir TLS_CACERT e / ou TLS_CACERTDIR para apontar para pacotes e arquivos de certificados. Eu estou usando o Centos 6, que tem estes em / etc / pki / tls / certs /, então eu defino o seguinte:
TLS_CACERT /etc/pki/tls/certs/ca-bundle.crt
TLS_CACERTDIR /etc/pki/tls/certs/
Depois que o ldapsearch funcionou e depois de reiniciar o saslauthd, a autenticação em relação ao servidor do AD foi bem-sucedida.