- 论坛徽章:
- 0
|
我使用openldap-stable-20040421、cyrus-sasl-2.1.18和postfix-2.1.1软件作邮件服务器。使用sasl直接支持opendlap,没有使用pam。我的/usr/local/etc/saslauthd.conf文件内容如下:
# ldap_servers: ldap://127.0.0.1/
ldap_search_base: o=postfix,dc=sww,dc=com
#ldap_bind_dn: cn=Manager,dc=example,dc=com
#ldap_bind_pw: secret
ldap_auth_method: custom
ldap_port: 389
ldap_password_attr: userPassword
#ldap_uidattr: mail
ldap_filter: (&(mail=%u)(objectclass=inetMailUser))
使用testsaslauthd测试正常:
bash-2.05b# testsaslauthd -u postmaster@sww.com.cn -p admin
0: OK "Success."
但是当我发送邮件的时候输入,用户名:postmaster@sww.com.cn ,密码:admin时,用户验证失败。
通过检查openldap的日值发现,sasl在ldap数据库中查询时使用的filter条件为:
conn=15 op=3 SRCH base="o=postfix,dc=sww,dc=com" scope=2 filter="(&(mail=postmaster)(objectClass=inetMailUser))"
conn=15 op=3 SRCH attr=userPassword
而不是mail=postmaster@sww.com.cn 。
为什么,谢谢各位老大!!! |
|