我在这方面没有经验,所以可能有些地方我没注意到。最初我尝试使用 SASL 设置 Cyrus Mail 进行 AD 身份验证。尝试几次后,还是失败了。
我切换到 Dovecot,但 Dovecot 中的身份验证也失败了。因此,我开始进行故障排除:
- 我在 AD 中创建了一个用户并将其命名为“vmail”。
- 运行'ldapsearch -x -h ad.example.com -D'vmail'-W -b'dc=example,dc=com'“([电子邮件保护])”并输入密码。结果成功(返回了ldap用户属性)
然后我运行
ldapwhoami -x -W -D cn=vmail,dc=example,dc=com -h ad.example.com
并输入了密码。但是,此脚本失败,ldap_bind: Invalid credentials (49) additional info: 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1
Dovecot 和 Postfix 都无法处理类似这样的参数。在 Dovecot 和 Postfix 中,我将密码属性设置为userPassword=password
。AD 身份验证有效(例如,我可以使用以下方法登录到连接到域的 Windows 计算机[电子邮件保护])。
“vmail” 用户是域管理员和管理员(我想确保管理员与绑定无关)。我真的开始认为问题出在 Windows Server 不允许使用 Linux 机器进行身份验证(有这种可能吗?),因为 Linux 中的一切都是正确的(至少看起来是这样)
如果重要的话,我正在使用 CentOS 7.1.1503 (Core)。
编辑:经过更多故障排除后,我发现如果我不指定域控制器,ldapwhoami 会成功并返回用户:
ldamwhoami -x -W -D vmail -h ad.example.com
但是,dovecot 还是不行,我设置了base =
(空) 来检查,还是验证失败。