Documents:Single Sign Out Grr

Un article de Wiki ESCO-Portail.

Sommaire

Modification de la version 1.9.5.c de GRR

Résumé de la modification

La version 1.9.5.c de GRR a ete modifiee par le RECIA, notamment pour gerer le global logout.

Ameliorations :

- Global Logout géré - Liens directs vers les ressources enlevés des mails automatiques de demande de modération - passage en SAML pour le ticket CAS

Le package contenant le nécessaire de mise à jour est présent sur le serveur de l'environnement de démo : (SCHUBERT) /opt/grr/miseAJour195cRecia/

Détail des fichiers du package de mise à jour

miseAJour195cRecia/
|-- explications.txt        => Détails et Pré-requis sur la mise à jour
|-- maj-grr195c-recia.sh    => Script de mise à jour
`-- patch                   => Fichiers modifiés à mettre à jour
    |-- include
    |   |-- cas.inc.php
    |   `-- functions.inc.php
    `-- language
        |-- lang.de
        |-- lang.en
        |-- lang.es
        |-- lang.fr
        `-- lang.it

Pré-Requis :

  • Mise a jour de PHPCAS vers la version 1.1.0RC1 (minimum) !!

Marche à suivre pour la mise à jour

1) S'assurer que PHPCAS est bien version 1.1.0RC1 minimum.

Si ce n'est pas le cas, il faut le mettre à jour, tout en pendant à sauvegarder le fichier cas.sso du répertoire CAS, afin de le replacer ensuite à ce même endroit.

2) Pour effectuer la mise à jour, il suffit d'utiliser le script maj-grr195c-recia.sh.

Syntaxe : ./maj-grr195c-recia.sh <Chemin absolu vers le GRR> <chemin vers backup>

Exemple avec le GRR de Vinci :

./maj-grr195c-recia.sh /var/www/grr/grr_Vinci bak_grr_Vinci

Lors de l'exécution du script,

       - une copie de sauvegarde des fichiers qui seront remplaces est effectue (dans le répertoire fourni en parametre)
       - les fichiers à mettre à jour sont remplacés (voir Fichiers contenus dans le patch)

Détail technique de la mise à jour

Utilisation de PHPCas 1.1.0RC1 et de SAML

include/cas.inc.php ==> On parametre l'appel à PHPCAS pour utiliser SAML

phpCAS::client(SAML_VERSION_1_1,$serveurSSO,$serveurSSOPort,$serveurSSORacine);

On change la manière dont sont récupérés les attributs

// A ce stade, l'utilisateur est authentifié
$attributes=phpCAS::getAttributes();
$user=phpCAS::getUser();
$login=phpCAS::getUser();
$user_id=$attributes['uid'];
$user_nom=$attributes['sn'];
$user_prenom=$attributes['givenName'];
$user_preferredLanguage=traiter_language($attributes['preferredLanguage']);
$user_codefonction=recuperer_codefonction($attributes['ENTPersonFonctions']);
$user_libellefonction=recuperer_libellefonction($attributes['ENTPersonFonctions']);
$user_mail=$attributes['mail'];
$user_ext_authentifie = 'cas';

Gestion du Global Logout

include/cas.inc.php ==> On ajoute le support du global logout

Pour être capable de traiter la requête de Global Logout de CAS, il suffit d'ajouter cette ligne (juste avant le forceAuthentication()) :

phpCAS::handleLogoutRequests();

Modification des mails automatique

Les mails automatiques avertissant les gestionnaires que des réservations en attente sont a modérées ont été modifiés.

Dans ces messages, des liens pointant vers la ressource à modérer posaient problème puisqu'ils n'était pas possible de les faire s'ouvrir à l'intérieur du portail. Ces liens ont donc été retirés du corps du message et le texte associé a été adapté.

include/fonctions.inc.php ==> Suppression des liens directs vers les ressources

Les lignes utilisant la fonction traite_grr_url() et donc l'url fournie contient un lien vers une ressource précise ont été commentées, afin de ne jamais afficher de lien vers une ressource dans un mail.

Exemple :

// Modif RECIA
// $message .= "\n".$vocab["voir_details"].$vocab["deux_points"]."\n"; // Voir les d�tails :
// if (count($tab_id_moderes) == 0 )
//    $message .= "\n".traite_grr_url("","y")."view_entry.php?id=".$id_entry;
// else {
//    foreach($tab_id_moderes as $id_moderes) {
//        $message .= "\n".traite_grr_url("","y")."view_entry.php?id=".$id_moderes;
//    }
//}

language/lang.fr ==> Modification du texte du mail demandant une modération

// Modif RECIA
$vocab["subject_a_moderer"] = "Une demande de réservation est à modérer. Connectez-vous sur votre espace pour effectuer la modération.";

Réalisation de la mise à jour sur l'environnement de DEMO

Mise à jour des GRR présents sur la démo :

  • grr_CdF
  • grr_Charmilles
  • grr_Durzy
  • grr_JacquesCoeur
  • grr_MLeclerc
  • grr_RemiBelleau
  • grr_Vaucanson
  • grr_Vinci

Réalisation de la mise à jour sur l'environnement de PRODUCTION

Mise à jour des GRR présents sur la production : (effectuée le 2 Mars 2010 à 12h10)

  • grr_DuhamelDuMonceau
  • grr_BenjaminFranklin
mesange:/var/www/grr/maj-grr195c-recia# ./script-maj.sh 
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_BloisVienne
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_Fulbert
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_PaulLouisCourier
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr18/grr_JeanMoulin
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_RemiBelleau
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_AndreAmpere
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr41/grr_SoniaDelaunay
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_Rollinat
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_Durzy
  
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_cdf
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_JacquesCoeur
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr28/grr_EdouardBranly
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr28/grr_SilviaMonfort
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_CamilleClaudel
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_LesPetitsSentiers
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_LAV
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_Charmilles
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_MaxDeSully
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_Choiseul
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_MargueritteDeNavarre
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_ElsaTriolet
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_Vaucanson
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_HonoreDeBalzac
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr36/grr_PierreMarieCurie
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr37/grr_JeanMonnet
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr37/grr_Balzac
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_vinci
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_MLeclerc
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_MauriceGenevoix
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_FrancoisRabelais
 
Mise à jour terminée
###################################################
         Mise a jour de GRR 1.9.5c (Recia)         
###################################################
Repertoire contenant GRR : /var/www/grr/grr_JeanRenoir
 
Mise à jour terminée

Problèmes rencontrés

Le Global logout ne fonctionnait pas sur Démo. La requête arrivait bien jusqu'au serveur de l'application, elle était traitée par PHPCas, mais celui-ci l'ignorait car l'émetteur de la requête ne faisait pas partie des émetteurs autorisés. En fait, PHPCas partait de l'ip de l'émetteur, et faisait une résolution de nom, qui lui donnait le nom INTERNE de la machine, et non son nom public (demo.esco-portail.org). Pour corriger le problème, il a fallu réorganiser l'ordre des noms d'hôte de la machine (hébergeant l'application), afin que le nom public soit le premier nom d'hôte de la machine.

pages développeurs
pages "communauté ESCO"