====== 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 [[braveo:docinstall:cas:proxying:presentation|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 {{:braveo:docinstall:cas:pam-cas_-_patch.diff|ce patch}} sur le script index.php (à la racine de roundcube). Pour appliquer {{:braveo:docinstall:cas:roundcube_keep_session_before_authenticate_hook.patch.diff|ce patch}} : patch -p0 < roundcube_keep_session_before_authenticate_hook.patch.diff ===== Un petit plugin fait maison ===== J'ai trouvé sur internet le plugin [[http://code.google.com/p/rc-cas-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 : {{:braveo:docinstall:cas:cas_authentication.zip|cas_authentication }} dans le dossier **plugins** de roundcube. Vous devez ensuite mettre [[braveo:docinstall:cas:dovecot#adaptations_de_la_librairie_phpcas|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. [[braveo:docinstall:cas|retour au plan]] ---- Rédigé par Benjamin Bernard \\ Source : [[http://trac.roundcube.net/ticket/1487975|#1487975 (Option to keep session before authentication hook) – Roundcube Webmail --> Patch roundcube]]