Objectifs
- Faciliter l'utilisation 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
...
Shibbolethisation d'un uPortal 4.0.3 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 -> devrait ne plus être nécessaire en uPortal 4.0.4 - cf résolution sur l'issue liée.
...
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 :
* malheureusement le bug Titanium suivantsuivant 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, ça marchotte : le nombre de redirections 302 à effectuer est tellement important (l'authentification shib + cas pour le proxy cas nécessite pas mal de redirections de la part du client web) que pb : le client http (org.apache.http) utilisé croit détecter détecte une redirection infinie circulaire (Circular redirect) qui provoque une Exception et donc stoppe 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 ....