Projet pam_cas
Pages enfant
  • 02 - Interfaçage Cyrus-imap avec CAS

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Sommaire

Problématique

Le portail doit pouvoir proposer un canal permettant d'apporter des informations sur la messagerie de l'utilisateur (nombre de mails non lus, ...).
Il est probable que ce canal doive lancer un webmail externe (IMP ?) lorsque l'utilisateur désire utiliser sa messagerie d'une manière plus intensive.

...

Personnalisation du script

 

Bloc de code

$cas_hostname="auth.univ.fr";         // c'est l'url du serveur CAS
   $cas_port=443;                        // le port d'accès https au serveur CA
   $cas_uri='';                          // l'uri de base du serveur CAS
   $imap_server="mail.univ.fr";          // le serveur imap à tester
   $imap_port=143;                       // le port imap
   $imap_box="INBOX";                    // le préfixe des boites IMAP
   $imap_service="imap://$imap_server";  // le service passé pour la récupération du PT. Doit être identique
                                         // au service paramétré dans pam-cas

Le 'service' passé au serveur CAS sera ici implicitement imap://mail.univ.fr. Si cela ne convient pas , écraser la variable $imap_service avec l'URL de service désiré.

Installation du script

Il faut bien sûr en préalable l'installation de phpCAS, avec ses pré-requis.

...

Si un PT est obtenu, mais que la connexion imap de fonctionne pas, redemander un nouveau PT.
En dessous du bouton "Ouvrir une connexion imap avec le PT courant", s'affiche une url du genre :

Bloc de code

https://auth.univ.fr:443/proxyValidate?ticket=PT-168270-aG...&service=imap://mail.univ.fr

Tenter de valider 'à la main' ce PT :
Depuis un serveur ayant un acces https vers le serveur CAS (le serveur imap est un bon candidat), lancer :

Bloc de code

wget --ca-certificate=/Cert/ac-racine.pem -O /tmp/cas.log "https://auth.univ.fr:443/proxyValidate?ticket=PT-168270-aG...&service=imap://mail.univ.fr"

...

Vous devez obtenir quelque chose comme celà dans le fichier /tmp/cas.log :

Bloc de code

<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
  <cas:authenticationSuccess>
    <cas:user>vmathieu</cas:user>
    <cas:proxies>
      <cas:proxy>https://infocri.univ-nancy2.fr/~vmathieu/CAS/casimap.php</cas:proxy>
    </cas:proxies>
  </cas:authenticationSuccess>
</cas:serviceResponse>

Rem : il est possible de remplacer l'option --ca-certificate=/Cert/ac-racine.pem par --no-check-certificate lors du wget ; dans ce cas, un warning sera affiché.

Difficultés coté client imap

...

Un patch modifiant le fonctionnement du cache du démon saslauthd est proposé,  permettant d'associer plusieurs 'mots de passe' à un utilisateur.

Avertissement

Une alternative plus simple est d'utiliser la fonctionnalité "cacheDirectory" de la dernière version de esup-pam-cas.

 

Annexe : cinématique

Les schémas joints montrent la cinématique de l'authentification imap, dans différents cas.

...