Meu acesso ao webmail (Proxy CAS) falha quando eu verifico meus e-mails pelo IMAP

1

Eu uso um portal web sso que oferece tickets para cas. Eu "cassifico" meu webmail e meu servidor imap (cyrus-imapd).

Quando busco meus e-mails do Webmail (proxy CAS), tudo bem. Exceto se eu buscar meus e-mails com um cliente IMAP clássico e tentar buscar novamente pelo Webmail, tenho autenticações ruins.

Parece que é um problema conhecido. De fato (se eu entendi bem) o cache sasl tem no início um PT como senha (do webmail), e depois de uma senha (do cliente IMAP clássico). Eu não encontrei o bom caminho para corrigi-lo. É por isso que eu postei minha pergunta aqui. Eu tentei com o pam_ccreds, mas ainda tenho muitos erros de autenticação no mail.log.

Então eu tento usar 2 instâncias de serviços saslauthd e 2 imap. Abaixo da configuração do sistema operacional e do software:

  • SO: Debian 8
  • sasl2-bin: 2.1.26.dfsg1-13
  • cyrus-imapd: 2.4.17 + caldav ~ beta10-18

Abaixo da configuração da minha tentativa:

  • / 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
    ...
    

Eu reinicio os serviços saslauthd e cyrus-imapd.

Quando executo um comando testsaslauthd com o soquete saslauthd, ele funciona muito bem:

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."

Mas quando executo um telnet na porta imap no meu servidor imap do meu host de webmail, a autenticação falhou. Na porta imapweb é o mesmo. No entanto, no log do imap, vejo o stacktrace que mostra que eu uso o bom serviço imap (imap para imap port e imapweb para "IMAPPORTWEB")

Você tem uma ideia, o que explica por que minha autenticação não funciona? O método correto é aceitar tanto o CAS quanto o acesso clássico ao IMAP?

    
por Cédric Liard 28.12.2016 / 21:08

0 respostas