Outils pour utilisateurs

Outils du site


braveo:docinstall:cas:roundcube

CASsification le dernier maillon : roundcube

Introduction

Nous arrivons au bout de la chaîne, maintenant que le serveur imap est capable de vérifier un ticket du CAS, il faut CASsifier roundcube pour quelle connecté l'utilisateur via le CAS, par l'intermédiaire de ce ticket.

Je vous invite à lire les explications théoriques avant d'essayer de comprendre le plugin roundcube.



Rouncube et Single Sign On (SSO)

Le fonctionnement même de rouncube n'est pas adapté a une identification en plusieurs étapes, ce qui est le cas d'une identification via le CAS. Car roundcube détruit la SESSION (php) initié par le CAS, lorsque l'utilisateur reviens du CAS, ceci résultant en un échec de l'identification et des redirections infinie entre CAS et roundcube.

Pour régler ce problème il suffit d'appliquer ce patch sur le script index.php (à la racine de roundcube).

Pour appliquer ce patch :
patch -p0 < roundcube_keep_session_before_authenticate_hook.patch.diff

Un petit plugin fait maison

J'ai trouvé sur internet le plugin cas_authentication mais je n'ai pas réussi à le faire fonctionner. Du coup j'ai fait mon propre plugin cas_authentication.

Ce plugin serait grandement à améliorer FIXME, car il n'utilise pas le fichier de configuration config.inc.php et gère certainement très mal les erreurs, il a le mérite de fonctionner c'est l’essentiel.

Installation du plugin

Décompressez l'archive du plugin : cas_authentication dans le dossier plugins de roundcube. Vous devez ensuite mettre la librairie phpCas modifiée dans le dossier plugins/cas_authentication.

Vous devriez ensuite avoir un dossier plugins/cas_authentication/CAS et un fichier plugins/cas_authentication/CAS.php.

Enfin il faut dire à roundcube d'utiliser le plugin en modifiant config/main.inc.php :

$rcmail_config['plugins'] = array('managesieve','contextmenu','emoticons', 'cas_authentication'); //Ajouter 'cas_authentication'



Configuration du plugin

Ligne 27 de cas_authentication.php adaptez à votre config :

$creds=$this->CAS_getCredentials("cas.mdl29.net", 443, '', "imap://mail.mdl29.net");
//Ou si le CAS n'est pas à la racine
$creds=$this->CAS_getCredentials("cas.mdl29.net", 443, '/cas/', "imap://mail.mdl29.net");



Voilà normalement c'est bon ;)







Prêts a poursuivre ? … Bah c'est finis. retour au plan


Rédigé par Benjamin Bernard
Source : #1487975 (Option to keep session before authentication hook) – Roundcube Webmail --> Patch roundcube

braveo/docinstall/cas/roundcube.txt · Dernière modification: 2016/07/19 15:36 (modification externe)