Table des matières
CASsification de dovecot par PAM
Introduction
Si vous avez bien suivi cette documentation, vous avez normalement compris pourquoi il était nécessaire de CASsifier le serveur imap et vous avez aussi conçu une pile PAM.
Nous allons maintenant configurer dovecot pour utiliser cette pile PAM et par conséquent relier d'identification de dovecot au serveur CAS tout en gardant l'identification LDAP.
Configuration de Dovecot
C'est relativement simple, vous avez juste à changer le block 'passdb' en :
passdb pam { args = dovecot }
Ceci pour indiquer à dovecot d'utiliser la pile PAM /etc/pam.d/dovecot.
Vous avez donc deviné la suite ?
Placer la pile PAM
Bah il ne reste plus qu'à placer la pile PAM dans /etc/pam.d/dovecot
Qui par exemple pour maison du libre est comme ceci :
auth sufficient /lib/security/pam_ccreds.so action=validate service_specific auth [success=1 new_authtok_reqd=done default=ignore] /lib/security/pam_cas.so -simap://mail.mdl29.net -f/etc/pam_cas.conf auth [success=ok new_authtok_reqd=done default=die] /lib/security/pam_ldap.so auth optional /lib/security/pam_ccreds.so action=store timeout=300 service_specific account required /lib/security/pam_ldap.so @include common-auth @include common-account @include common-session
Puis on relance dovecot, histoire que tous ces changements soient pris en compte :
service dovecot restart
Test à l'aide d'un petit script PHP
Maintenant que tout devient plus concret on va faire des petits tests, à l'aide de ce script php (à dé-zipper ). Vous aurez besoin de la libraire phpCas pour l'utiliser.
Adaptations de la librairie phpCas
La librairie phpCas a évolué depuis la mise au point du script casimap.php, il est nécessaire de faire quelques petites adaptations essentiellement changer des méthodes privées pour les rendre publiques.
Vous devez donc changer les méthodes suivantes (remplacer private par public) :
public function getServerBaseURL() [......] public function getPGT() [......] public function hasPGT() [......] public function retrievePT($target_service,&$err_code,&$err_msg) [......] public function getURL()
Configuration de casimap.php
Vous devez aussi configurer certaines variables de casimap.php, pour les tests de maison du libre nous avions :
$cas_hostname="cas.mdl29.net"; $cas_port=443; $cas_uri=''; $imap_server="192.168.10.143"; //Serveur mail de test $imap_port=143; $imap_box="INBOX"; $imap_service="imap://$imap_server"; include_once('CAS.php'); //Adaptez le chemin
On passe aux tests
Plus qu'a vous rendre à l'adresse du fichier (doit être sur un hôte sécurisé https).
Vous pourrez ainsi tester l'authentification classique et celle via le CAS. Si vous ne comprenez pas le fonctionnement de ce script référez vous aux explications théoriques.
Voilà votre serveur imap est CASsifié !! Bon plus qu'a CASsifier l'interface roundcube.
Prêts a poursuivre ? CASsifier roundcube CASsification de l’interface roundcube
Rédigé par Benjamin Bernard
Source : PasswordDatabase/PAM - Dovecot Wiki