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