====== CASsification le dernier maillon : Jappix ======
===== Introduction =====
Vous disposez normalement d'un [[braveo:docinstall:cas:ejabberd|serveur XMPP (jabber) cassifié]]. Nous allons maintenant nous en servir et cassifier [[braveo:docinstalljappix03|jappix]] (client web XMPP).
Pour se faire nous allons comme pour roundcube utiliser la librairie phpCAS modifiée et changer un peu le code de jappix. Dans le but d'obtenir le scénario suivant :
Utilisateur connecté sur cas.mdl29.net : \\
jappix.mdl29.net //->// cas.mdl29.net (service=https://jappix.mdl29.net/) //->// https://jappix.mdl29.net/?ticket=... Procédure d'obtention du PGT et d'un ST pour le service jabber //->// Utilisateur connecté sur jappix
===== Cassification de jappix =====
Téléchargez l'archive suivante : {{:braveo:docinstall:cas:jappix_cas.tar.gz|}}
L’arborescence de l'archive est la suivante :
* jappix
* php
* CAS
Copiez le contenu de du dossier jappix de l'archive dans votre dossier racine de jappix.
Vous devez ensuite adapter le patch **php/desktop.php.patch** à votre CAS c'est à dire modifier la ligne suivante :
$cas=CAS_getCredentials("votre.cas.net", 443, "/cas/si_pas_à_la_racine", "https://jappix.votredomain.net");
vérifiez bien que le CAS peut envoyer des requêtes sur jappix (envoie de requête http vers jappix possible, certif reconnu par le CAS), ceci pour que l'envoie du PGT puisse s'effectuer sans encombre.
Vous n'avez plus qu'a appliquer le patch :
patch < desktop.php.patch
Allez ensuite sur jappix pour vérifier si tout fonctionne ......
Le code serait a améliorer, la solution choisie en terme de sécurité et critiquable car le user/ticket passe en clair dans le code source, mais sachant que la portée d'un ticket ne se limite que à un service particulier ce n'est pas si grave que ça.
===== Une autre méthode serait envisageable =====
Dans une discussion entamée avec les développeurs de [[http://diasporafoundation.org/|diaspora]] nous avons élaboré un autre scénario de connexion plus sécurisé.
L'idée est simple, pré-connecter l'utilisateur **coté serveur** au serveur XMPP en php/ruby aussi appelé pre-binding. Puis de transmettre les variables (JID ...) de la session XMPP initialisée au client, pour diaspora mini-jappix.
Pour retrouver cette discussion en anglais : https://github.com/diaspora/diaspora/pull/1750
\\ \\
----
Rédigé par Benjamin Bernard \\