我使用提供 cas 票证的 web sso 门户。我“分类”了我的 webmail 和我的 imap 服务器 (cyrus-imapd)。
当我从 Webmail(代理 CAS)获取电子邮件时,一切正常。除非我使用经典 IMAP 客户端获取电子邮件,然后尝试再次从 Webmail 获取,否则我的身份验证会出错。
这似乎是一个已知问题。事实上(如果我理解得没错的话)sasl 缓存一开始就得到了一个类似 PT 的密码(来自 webmail),之后又得到了一个密码(来自传统 IMAP 客户端)。我没有找到纠正它的好方法。这就是我在这里发布问题的原因。我尝试使用 pam_ccreds,但 mail.log 中仍然有很多身份验证错误。
因此我尝试使用 2 个 saslauthd 实例和 2 个 imap 服务。以下是操作系统和软件配置:
- 操作系统:Debian 8
- sasl2-bin :2.1.26.dfsg1-13
- cyrus-imapd:2.4.17+caldav~beta10-18
以下是我的尝试配置:
/etc/default/saslauthd
START=yes DESC="SASL Authentication Daemon" NAME="saslauthd" MECHANISMS="pam" THREADS=5 OPTIONS="-c -m /var/run/saslauthd/mux -r -n 0"
/etc/default/saslauthd-web
START=yes DESC="SASL Authentication Daemon" NAME="saslauthd" MECHANISMS="pam" THREADS=5 OPTIONS="-c -m /var/run/saslauthd/muxweb -r -n 0"
/etc/pam.d/imapweb
auth sufficient /lib/x86_64-linux-gnu/security/pam_cas.so -simap://mail.example.com -f/etc/pam_cas.conf auth sufficient /lib/x86_64-linux-gnu/security/pam_ldap.so config=/etc/pam_ldap_imap.conf auth sufficient /lib/x86_64-linux-gnu/security/pam_unix.so account sufficient /lib/x86_64-linux-gnu/security/pam_ldap.so config=/etc/pam_ldap_imap.conf
/etc/pam.d/imap
auth sufficient /lib/x86_64-linux-gnu/security/pam_ldap.so config=/etc/pam_ldap_imap.conf auth sufficient /lib/x86_64-linux-gnu/security/pam_unix.so account sufficient /lib/x86_64-linux-gnu/security/pam_ldap.so config=/etc/pam_ldap_imap.conf
/etc/cyrus.conf
imap cmd="imapd -U 30" listen="X.X.X.X:imap" prefork=0 maxchild=100 imapweb cmd="imapd -U 30 -C /etc/imapdweb.conf" listen="X.X.X.X:IMAPWEBPORT" prefork=0 maxchild=100
/etc/imapd.conf
... sasl_pwcheck_method: auxprop saslauthd imap_sasl_saslauthd_path: /var/run/saslauthd/mux imapweb_sasl_saslauthd_path: /var/run/saslauthd/muxweb sasl_auxprop_plugin: sasldb ...
我重新启动了 saslauthd 和 cyrus-imapd 服务。
当我使用每个 saslauthd 套接字运行 testsaslauthd 命令时,它运行得很好:
testsaslauthd -u USER -p PASSWORD -f /var/run/saslauthd/mux/mux -s imap
0: OK "Success."
testsaslauthd -u USER -p PASSWORD -f /var/run/saslauthd/muxweb/mux -s imapweb
0: OK "Success."
但是当我从我的 webmail 主机在 imap 服务器上的 imap 端口上运行 telnet 时,身份验证失败。在 imapweb 端口上也是一样。然而,进入 imap 日志,我看到堆栈跟踪,显示我使用了良好的 imap 服务(imap 为 imap 端口,imapweb 为“IMAPPORTWEB”)
您有什么想法可以解释为什么我的身份验证不起作用吗?接受 CAS 和经典 IMAP 访问的正确方法是什么?