Groupe 1B (SSO et gestion des autorisations)

Date de création : 24 mai 2003
Dernière modification : 28 décembre 2003
Diffusion : ESUP-Portail

Feuille de route du groupe 1B

Ce document résume les tâches a effectuer par le groupe 1B (SSO).

Vue synthétique

tâche
état
priorité
Fonctionnement du serveur CAS
Installation de CAS sur les sites partenaires Terminé A
Redondance du serveur CAS Active A
Tests de montée en charge et fiabilité EnAttente A
Amélioration des logs et accounts Active B
Méthodes d'authentification
Écriture d'une classe générique d'authentification Avancé A
Clients CAS
Tests des librairies clientes existantes Terminé A
phpCAS Terminé A
mod_cas Avancé A
taglib JSP Terminé  
client Java Avancé A
client Perl Avancé B
client ASP EnAttente E
libcas EnAttente C
uPortal
Intégration de CAS dans uPortal sur les sites partenaires Terminé A
Développement d'un module de récupération d'un PT Terminé A
Traitement des fins de session des proxies EnCours A
Tests de CAS avec uPortal et frontal apache Terminé A
Courrier électronique
Étude de pam_cas Terminé A
Intégration IMAP - CAS- IMP Terminé A
Autres
Redirection des requêtes POST EnCours C
Traitement des droits et attributs Active C
Documentations du groupe Avancé A
Contacts et représentation avec le groupe AAS EnCours A

Légende

état      priorité
Terminé Action terminée A À faire en priorité
Avancé Étude en état avancé B À traiter rapidement
EnCours Action en cours C À traiter à moyen terme
Active Action importante, non traitée actuellement D À prendre en compte nécessairement, mais à échéance plus lointaine
EnAttente Action non traitée actuellement E A un intérêt certain, mais n'est pas vital pour le projet
Abandon Action abandonnée, au moins provisoirement
? On ne sait pas Z À faire avant la retraite ;-)

Vue détaillée

Fonctionnement du serveur CAS

Installation de CAS sur les sites partenaires

Les documents sont disponibles. L'installation a déja été effectuée par des stagiaires en suivant la documentation ... en moins d'une demi-journée.

Tous les sites partenaires sont concernés par cette action. L'avancement est le suivant :

Tolerance aux fautes, redondance du serveur CAS

Problématique

La faiblesse essentielle en matière de tolérance aux fautes du serveur CAS réside dans la perte des tickets lors d'un redémarrage, car ceux-ci sont stockés en mémoire.

Un stockage en base de données doit permettre un redémarrage du serveur CAS sans aucune perte de tickets.

Cela doit également permettre la redondance du serveur par duplication de serveurs web (plusieurs tomcat derrière un frontal Apache), qui s'appuieront sur la même base de données. De ce fait, la validation d'un ticket pourra se faire sur un serveur différent de celui qui l'a émis. Raymond Bourges mets prochainement en ligne une documentation sur la configuration d'un frontal Apache devant plusieurs serveurs tomcat.

Note 1: cela ne fait que déplacer les problèmes de tolérance aux fautes et de redondance vers le serveur de données. Cette solution satisfait néanmoins les participants du groupe (certainement car les serveur de données sont beaucoup mieux maîtrisés).

Note 2 : ceci peut générer une charge importante au niveau du serveur CAS et du SGBD. Une autre olution serait de ne cacher que les 'Granting Ticket' (TGC et PGT).
Inconvénient : pas de partage de charge possible
Avantages : forte réduction de charge, et possibilité d'avoir un serveur CAS de secours avec basculement quasi-transparent.

Avancement

Rien :-(

Responsables : Pascal Aubry (back-end base de données).

Tests de montée en charge et fiabilité

CAS est utilisé dans des universités ayant un nombre d'étudiants similaires au nôtre (20 0000 - 30 000). Il faut quand même monter un protocole d'essais, et le mener à bien, dans notre environnement. En particulier, tester le module LDAP qui pourrait être un point de contention.

Le groupe SSO s'appuiera sur les travaux du groupe normes qui va regarder les outils et méthodes possibles.

Amélioration des logs et accounts

La partie serveur CAS est avare en matière de logs (à des fins de débogage, par exemple) et d'accounting.

Il est indispensable d'enrichir ces aspects. Log4j est envisagé (voir avec le groupe normes).

Méthodes d'authentification

CASGenericHandler est disponible, en production à Nancy 2.

Il reste à introduire l'authentification sur certificats x509, mais ce n'est pas une priorité.

Responsable : Pascal Aubry.

Clients CAS

Tests des librairies clientes existantes

Toutes les librairies clientes ont été testées par le groupe, sauf la librairie ASP (inutile à ce jour).

phpCAS

Une librairie PHP (phpCAS) développée au sein de ESUP permettant de développer un client ou proxy CAS en php. La version courante est complètement opérationnelle, en phase de test. Suite à l'utilisation de phpCAS par Julien Marchal pour la CAS-ification de IMP, des ajustements s'avèrent nécessaires (pour fin novembre 2003).

Il faudrait éventuellement en plus intégrer la redirection des méthodes POST et le paramétrage standard.

Responsable : Pascal Aubry.

mod_cas (module Apache)

Les tests ont été mené, il faut encore tester les problèmes d'interaction avec d'autres mécanismes (mod_auth_xxx).

mod_cas a été complètement ré-écrit, en utilisant notamment la librairie cURL pour remplacer les appels bas-niveau de OpenSSL.

La redirection des méthodes POST et le paramétrage standard n'ont pas été intégrés.

Un mail a été envoyé à Drew Mazurek pour savoir si les modifs envoyées seront intégrées dans la prochaine version de cas-client, sans retour.

Responsable : Pascal Aubry.

taglib JSP

La redirection des méthodes POST et le paramétrage standard n'ont pas été intégrés.

Responsable : Sébastien Gougeon. Fait le 15/09/03

librairie cliente Java

Tests et documentation de la librairie cliente java.

Responsable : Jean-Guy Avelin. Dépot de doc le 8/12/2003.

Perl

Développement d'une nouvelle librairie cliente perl, celle distribuée étant trop limitée.

Librairie développée par Olivier Salaun, du CRU, le 15/11/2003, et à maintenir par le projet Esup-portail.

Responsable : Vincent Mathieu.

ASP

Le besoin de cette librairie ne s'est pas encore fait sentir dans le projet et personne n'est assignée à l'évolution de cette librairie.

libcas (mutualisation du code C des librairies clientes)

Le code C ré-écrit pour mod_cas peut être réutilisé pour pam_cas. Il sera intéressant de développer une librairie libcas pour mutualiser le code de validation des tickets, et peut-être plus. Cette librairie pourra de plus être utilisée dans le cadre du développement d'une extension PHP (intéressante pour la visibilité de CAS).

L'écriture de la librairie a été mise en stand-by par l'absence de réponse de Drew Mazurek.

Responsable : Pascal Aubry.
Échance : fin août 2003.

uPortal

Intégration de CAS dans uPortal sur les sites partenaires

Tous les sites partenaires sont concernés par cette action. Les sites suivants ont déjà intégré CAS dans uPortal :

Développement d'un module de récupération d'un PT

Consiste à mettre à disposition dans uportal d'un 'module' permettant à un développeur d'un canal de récupérer un PT (Proxy Ticket) simplement.

CasUtil est disponible deepuis septembre 2003.

Responsable : Julien Marchal

Traitement des fins de session des proxies

C'est un des problèmes majeurs de l'utilisation de CAS avec uportal.

uportal gére, comme la plupart des applis web, des sessions utilisateur, ayant un certain délai.
CAS gère également des sessions d'authentification, qui n'ont pas nécessairement la même période que les sessions précédentes. Il faut en outre qu'un "arrêt - relance" du serveur CAS ne mette pas en péril le fonctionnement du portail.

Il est donc urgent de s'assurer qu'il est possible de traiter le cas d'une expiration d'un PGT (Proxy Granting Ticket) ou d'un arrêt du serveur CAS sans mettre l'utilisateur dans un état d'incompréhension.

Au pire, si la récupération d'un nouveau PGT d'une manière transparente semble difficile, prévoir une procédure qui ne mette pas uportal dans un état 'bizarre'.
Ceci est traité dans la librairie précédente, par remontée d'une exception à uportal.

Responsable : Vincent Mathieu.

Tests de CAS avec uPortal et frontal apache

Il est probable qu'en exploitation, le serveur apache soit mis en frontal d'uportal. Il faudrait vérifier que l'authentification CAS fonctionne correctement dans cette hypothèse.

Tests fait par Raymond en juillet 2003, confirmés par Vincent en aout.

Courrier électronique

Étude de pam_cas

Des modifications ont été apportées au module et intégrées par les développeurs CAS (cf cas_pam.html).

Responsable : Vincent Mathieu

Intégration IMAP - CAS - IMP

La CAS-ification de cyrus-imap a été réalisée par Vincent Mathieu (cf CyrusImapmap-cas.html), celle de IMP par Julien Marchal (Julien, as-tu une doc à ce propos ?).

La CAS-ification de IMP devra être revu en fonction des modifications de phpCAS.

Responsables : Vincent Mathieu, Julien Marchal.

Autres

Redirection des requêtes POST

Le problème est considéré comme résolu sur le plan théorique et il ne reste plus qu'à intégrer les décisions prises dans les librairies clientes.

Une page est consacrée à ce point.

Traitement des droits et attributs

Il s'agit ici de traîter la partie « autorisations », qui devra suivre les recommandations du groupe AAS.

Documentations du groupe

Le format de documentation du groupe a été mis en place, puis porté à la documentation des autres groupes.

Responsable : Pascal Aubry.

Contacts et représentation avec le groupe AAS

Vincent Mathieu et Pascal Aubry sont les représentants du projet au sein du groupe AAS. Les documents relatifs au travail du groupe AAS sont disponibles.

Responsables : Vincent Mathieu, Pascal Aubry.