Objectifs
- Faciliter l’utilisation de Shibboleth dans le portail
- Documentation des applications tierces qui seraient impactées (apache)
- Faire des exemples de configuration
- Étudier l'utilisation de Shibboleth et Grouper
Participants
- Pascal Rigaux (Paris 1)
- Vincent Bonamy (Univ Rouen / UNR RUNN)
Organisation
- Régularité des points
Avancées
Partie uPortal4 (serveur)
Shibbolethisation d'un uPortal 4.0.4 OK.
Notes de procédure :
- suivre la documentation officielle ici (une seule page, qui suffit, même si on peut noter que des configs marquées comme "à ajouter" sont simplement à modifier/vérifier) : https://wiki.jasig.org/display/UPM40/Shibboleth
- cf http://jasig.275507.n4.nabble.com/Jasig-person-directory-1-5-0-RC8-in-maven-repository-td4424704.html cependant, modifier également les groupid de person-directory-api / person-directory-impl (dans les pom.xml uportal) lors de la montée de version de ces artifact de 1.5.0-RC6 à 1.5.0-RC8
- enfin, patcher RemoteUserPersonManager.java comme décrit dans l'issue uportal suivante : https://issues.jasig.org/browse/UP-3359 -> plus nécessaire en uPortal 4.0.4 - cf résolution sur l'issue liée.
Implémentation de la possibilité de Proxy CAS sur N serveurs CAS (en plus de l'authentification Shib) OK
- Code java et configs RUNN dans le GIT interne au RUNN
- 1 ou 2 patchs à appliquer sur le code Jasig pour inhiber l'authentification CAS (en gardant la fonctionnalité du Proxy CAS donc)
-> prochaines étapes :
- pousser le code dans le GIT Esup
- documenter ce qui ne peut pas être poussé
Partie uMobile (client mobile iOs/Android)
Le client lourd uMobile permet de saisir une fois pour toute son username/password sur son smartphone/tablette.
Au 12/03/2012, 3 méthodes d'authentification ont été développées actuellement dans uMobile :
* authentification locale au portail
* authentification CAS : simulation de l'envoi du formulaire CAS avec le username / password saisis par l'utilisateur
* authentification Shibboleth : simulation de l'envoi du formulaire IDP Shibboleth avec le username / password saisis par l'utilisateur
-> utilise un IDP spécifique configuré dans uMobile (config.js) via la variable SHIB_BASE_URL et préfigure que l'IDP Shibboleth utilise son mécanisme interne pour l'authentification (et non une délégation d'authentification à CAS).
Ainsi il ne permet pas actuellement de s'authentifier en Shibboleth comme on l'entend (et pas non plus évidemment en "shib + cas")
En utilisant une URL qui permet de court-circuiter le WAYF (on y sélectionne alors un IDP spécifique) et en recodant une authentification spécifique CAS + Shib (correspondant à un mixe de CASLogin.js et Shibboleth2Login.js ; cf ci-joint le fichier ShibbolethCasLogin.js ) on y arrive ... presque :
* le bug Titanium suivant https://jira.appcelerator.org/browse/TC-676 fait que les redirections ne fonctionnement pas correctement sous iOS, l'authentification échoue alors. Ce bug concerne iOS uniquement (et non Android) -> prochaine étape : patcher le code Objective-C Titanium ...
* sur Android, pb : le client http (org.apache.http) utilisé détecte une redirection circulaire (Circular redirect) qui provoque une Exception et donc stope le processus d'authentification + récupération du layout.json de manière authentifiée. On est ici obligé de patcher le code de Titanium qui est ici en java pour Android : on part des sources de titanium déjà patchées par Jasig, on rajoute la petite ligne qui va bien params.setParameter(org.apache.http.client.params.ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true); on rebuild le package titanium (un peu plus de 8 min), on le fait prendre en compte par Titanium Studio, on rebuild le uMobile ... et ça passe ....