Pour activer ce cron, vous avez besoin d'avoir un compte master de configuré au niveau de Dovecot (plus d'infos ici). Il faudra ensuite editer le fichier /etc/sogo/sieve.creds pour y mettre les identifiants du compte master :
sogo:master_password
Fait en sorte que ce fichier appartienne à l'utilisateur et au groupe sogo et qu'il est des droits 400.
Procédure :
Il faut tout d'abord mettre en place l'authentification CAS au niveau du serveur IMAP/SIEVE. Pour cela, je prendrais l'exemple de Dovecot avec libpam-cas + libpam-ccreds pour mettre en cache les tickets d'authentification CAS. Pour cela, on commence par installer le paquet Debian libpam-cas et libpam-ccreds. Le second est dans Debian mais pas le premier. On peut cependant le compiler soit même à partir des sources fournissant le nécessaire :
apt install debhelper libpam0g-dev libssl-dev build-essential git cd /usr/local/src git clone https://github.com/EsupPortail/esup-pam-cas.git cd esup-pam-cas dpkg-buildpackage -b --no-sign sudo dpkg -i ../libpam-cas_*.deb
Un fois installer on met en place le fichier de configuration /etc/pam_cas.conf :
# host from CAS server. mandatory host login.exemple.org # port from CAS server. Default to 80 or 443, depends from ssl instruction port 443 # uri to validate ticket. Default to /proxyValidate uriValidate /cas/proxyValidate # https or no. values on or off. Default to on. ssl on # proxy or proxies who deliver Proxy Ticket. # If no proxy, pam_cas doesn't control it # It may be several proxy instructions proxy https://mail.exemple.org/SOGo/casProxy # debug (on) or no (off). debug in syslog, level LOG_DEBUG. Default to off debug off # trusted_ca. mandatory if ssl on. # It a file in pem format. It can contents several certificates # If the CAS server certificate is auto-signed, the file must content the certificate # If the certificate is trusted by an Certificate Autority, The file must content # certificate from high level CA trusted_ca [chemin vers le certificat de la CA ayant émis les certificats SSL de l'infra]
On met ensuite en place un fichier de configuration PAM pour dovecot-cas, à savoir le fichier /etc/pam.d/dovecot-cas :
auth sufficient pam_ccreds.so action=validate service_specific auth [success=ok new_authtok_reqd=ok ignore=done default=die] pam_cas.so -simap://mail.exemple.org -f/etc/pam_cas.conf auth optional pam_ccreds.so action=store service_specific timeout=300 account sufficient pam_permit.so session sufficient pam_permit.so
Cette configuration défini le principe d'authentification suivant en 3 étapes :
On configure ensuite Dovecot pour qu'il utilise en place de son backend d'authentification actuel (LDAP par exemple), l'authentification via PAM en tant que le service dovecot-cas. Pour cela, on créé le fichier /etc/dovecot/conf.d/11-auth-pam-cas.conf :
passdb { args = session=yes cache_key=%n dovecot-cas driver = pam }
On dois ensuite redémarrer Dovecot pour application de cette nouvelle configuration. Un fois l'authentification CAS en place sur le serveur IMAP, passons à SOGo : On commence par mettre en place le service casProxy de SOGo :
mkdir -p /var/www/mail/cgi-bin cd /var/www/mail/cgi-bin wget https://raw.github.com/inverse-inc/sogo/master/Scripts/cas-proxy-validate.py chmod 755 cas-proxy-validate.py apt-get install python-memcache
Il faut également éditer le fichier cas-proxy-validate.py et adapter en haut du fichier les paramètres cas-addr qui doit correspondre à l'adresse IP du serveur CAS (127.0.0.1 par défaut) et le paramètre memcached-addrs qui doit correspondre à l'IP et le port du service memcache utilisé par SOGo (127.0.0.1:11211 par défaut).
On met en place ensuite le ScriptAlias correspondant dans la configuration Apache pour SOGo en éditant le fichier /etc/apache2/conf.d/SOGo.conf et en ajoutant les lignes suivantes et en les adaptant :
ScriptAlias /SOGo/casProxy /var/www/mail/cgi-bin/cas-proxy-validate.py <Location /SOGo/casProxy> Order deny,allow Deny from all Allow from [IP du serveur CAS] Allow from 127.0.0.1 </Location>
ProxyPass /SOGo/casProxy ! ScriptAlias /SOGo/casProxy /var/www/mail/cgi-bin/cas-proxy-validate.py <Location /SOGo/casProxy> Require ip [IP du serveur CAS] Require ip 127.0.0.1 </Location>
Il faut ensuite redémarrer Apache pour activer le service. On configure ensuite SOGo en ajoutant dans le fichier /etc/sogo/sogo.conf les paramètres suivants :
SOGoAuthenticationType = "cas"; SOGoCASServiceURL = "https://login.exemple.org/cas/"; WOWorkersCount = 5; SOGoIMAPCASServiceName = "imap://mail.exemple.org";
On redémarre ensuite SOGo et ça devrais marcher !
Doc sur le sujet intéressante : http://www.esup-portail.org/consortium/espace/SSO_1B/tech/cas/cas_pam.html
Pour configurer SOGo pour qu'il utilise l'IDP Authentic2 comme un serveur CAS, il faut via l'interface d'administration d'Authentic2 :