Arborescence des pages

Cette modification de CAS a pour but de pouvoir associer chaque log applicatif à l'utilisateur qui l'a généré. Cette association permettra d'enrichir les logs avec des attributs du LDAP avant d'anonymiser les logs.

Elle nécessite :

  • d'ajouter un cookie lors de l'authentification
  • de conserver l'association login - cookie dans un fichier

 

Pour mettre en place Agimus-NG, vous avez deux possibilités :

Quelque soit la méthode choisie, il vous faudra paramétrer et activer la fonctionnalité TraceMe.

Il est possible aussi de modifier son serveur CAS afin de générer un logs applicatif (log contenant la personne et l'accès à une application) : SSO CAS - Logs applicatif

Intégration dans CAS

 

Mise en place de la dernière version 3.4 de CAS depuis le dépôt github

Pour récupérer les fichiers depuis le dépôt GitHub :

root@cas # git clone https://github.com/EsupPortail/cas-toolbox-new.git
Clonage dans 'cas-toolbox-new'...
remote: Counting objects: 1049, done.
remote: Total 1049 (delta 0), reused 0 (delta 0), pack-reused 1049
Réception d'objets: 100% (1049/1049), 376.66 KiB | 0 bytes/s, fait.
Résolution des deltas: 100% (390/390), fait.
Vérification de la connectivité... fait.
root@cas # cd cas-toolbox-new/
root@cas # git checkout v3.4.x
La branche v3.4.x est paramétrée pour suivre la branche distante v3.4.x depuis origin.
Basculement sur la nouvelle branche 'v3.4.x'
root@cas # git status
Sur la branche v3.4.x
Votre branche est à jour avec 'origin/v3.4.x'.
rien à valider, la copie de travail est propre
root@cas # ls
cas-toolbox-core  cas-toolbox-custom  config.sample.properties  etc  LICENSE  pom.xml
root@cas # 

Procéder ensuite au paramétrage et au déploiement suivant votre méthode habituelle.


OU

 

 

Modification de votre installation actuelle

Vous avez la possibilité de modifier votre serveur CAS actuel en lui appliquant les modifications décrites ici : https://github.com/EsupPortail/cas-toolbox-new/pull/5/files

Suivant votre version actuelle, il se peut que vous ayez déjà l'ancienne version du mécanisme de Trace. Pour le savoir, vérifiez simplement si dans vos sources se trouve le fichier cas-toolbox-core/src/main/java/org/esupportail/cas/web/flow/TraceMeAction.java.

  • Si le fichier TraceMeAction.java est présent, il vous suffit d'appliquer les différences décrites à savoir :
    • Ajout de cas-toolbox-core/src/main/java/org/esupportail/cas/services/TraceMeMetaDataPopulator.java : TraceMeMetaDataPopulator.java
    • Suppression de cas-toolbox-core/src/main/java/org/esupportail/cas/web/flow/TraceMeAction.java
    • Modification de :

      • cas-toolbox-core/src/main/webapp/WEB-INF/classes/log4j.xml

      • cas-toolbox-core/src/main/webapp/WEB-INF/deployerConfigContext.xml

      • cas-toolbox-core/src/main/webapp/WEB-INF/login-webflow.xml

      • cas-toolbox-core/src/main/webapp/WEB-INF/spring-configuration/trace-me.xml

      • cas-toolbox-custom/src/main/webapp/WEB-INF/classes/log4j.xml

      • cas-toolbox-custom/src/main/webapp/WEB-INF/deployerConfigContext.xml

      • etc/HOWTO-traceMe

      • pom.xml

  • Si ce fichier TraceMeAction.java n'est pas présent, il vous faudra :

    • Ajout de cas-toolbox-core/src/main/java/org/esupportail/cas/services/TraceMeMetaDataPopulator.java : TraceMeMetaDataPopulator.java

    • Ajout de cas-toolbox-core/src/main/webapp/WEB-INF/spring-configuration/trace-me.xml : trace-me.xml
    • Modification de :

  • cas-toolbox-core/src/main/webapp/WEB-INF/classes/log4j.xml : log4j.xml
    Ajout des zones contenues entre les balises <!-- IF USE ESUP traceMe...
  • cas-toolbox-core/src/main/webapp/WEB-INF/deployerConfigContext.xml
    Ajout de la partie décrite dans le diff

  • cas-toolbox-custom/src/main/webapp/WEB-INF/classes/log4j.xml : log4j.xml
    Ajout des zones contenues entre les balises <!-- IF USE ESUP traceMe...

  • cas-toolbox-custom/src/main/webapp/WEB-INF/deployerConfigContext.xml
    Ajout de la partie décrite dans le diff

  • config.properties (cf ci-dessous)


       OU

 

  • Dans le dossier cas-overlay-template créez le dossier suivant:

# mkdir src/main/java/org/esupportail/cas/services/

Insérez le fichier TraceMeMetaDataPopulator.java dans ce dossier

  • Dans le dossier cas-overlay-template créez le dossier suivant:

# mkdir src/main/java/org/esupportail/cas/web/flow/

Insérez le fichier TraceMeAction.java dans ce dossier

  • Editez le fichier deployerConfigContext.xml qui se trouve dans src/main/webapp/WEB-INF/ en rajoutant juste après <ref bean=“rememberMeAuthenticationMetaDataPopulator” />

 

deployerConfigContext.xml
<ref bean="traceMeAuthenticationMetaDataPopulator" />
  • Ajoutez le fichier trace-me.xml dans le dossier src/main/webapp/WEB-INF/spring-configuration/
  • Éditez le fichier /etc/cas/log4j2.xml
  • Dans la partie <Appenders> ajoutez ceci
log4j2.xml
        <RollingFile name="traceAppender" fileName="/home/tomcat/sso-cas/logs/trace.log" append="true"
 filePattern="/home/tomcat/sso-cas/logs/trace-%d{yyyy-MM-dd-HH}-%i.log">
            <PatternLayout pattern="%m%n"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB"/>
                <TimeBasedTriggeringPolicy />
            </Policies>
        </RollingFile>

 

  • Dans la partie <Loggers>
log4j2.xml
       <AsyncLogger name="org.esupportail.cas.services.TraceMeMetaDataPopulator" level="info" additivity="false">
          <appenderRef ref="traceAppender" />
        </AsyncLogger>

En version 5 de CAS l'extension Agimus se décline en 2 module :

  • cas-server-support-agimus-cookie : cette partie va dépose le cookie agimus et ecrire le fichier de mapping identifiant => valeur du cookie
  • cas-server-support-agimus-logs : cette partie va générer un fichier de logs avec une ligne par délivrance d'un ticket pour un service.

Les documentations se trouvent sur :

Paramétrage de la partie TraceMe

Le paramétrage s'effectue dans le fichier config.properties à la racine.

Pour activer les "traceMe" :
trace.enabled=true

Pour configurer les "traceMe" :
trace.cookieMaxAge=432000
trace.cookieName=AGIMUS
trace.cookiePath=/
trace.cookieDomain=.univ.fr

Le fichier contenant l'association cookie <-> id de l'utilisateur est trace.log. Il se trouve dans le répertoire de log défini le dossier log.dir que vous aurez défini dans config.properties. 


 

POUR TESTER

Afin de valider le bon fonctionnement de la modification de votre serveur CAS, suivez les étapes suivantes :

  • Authentifiez-vous sur votre CAS
  • Vérifiez la présence d'un cookie AGIMUS pour le domaine défini dans votre configuration
  • Si ce cookie est présent assurez-vous que la valeur de ce cookie correspond à celle enregistrée dans le fichier trace.log de votre serveur
  • Le fichier trace.log se trouve par défaut dans le même dossier que les autres logs
  • Il doit contenir une ligne associant votre login et la valeur du cookie AGIMUS trouvé dans votre navigateur

Si c'est le cas, passez à l'étape suivante grâce au bouton ci-dessous.

Si ce n'est pas le cas, vérifiez les points suivants :

  • Pas de cookie : Vérifiez que les fichiers deployerConfigContext.xml et trace-me.xml correspondent à ceux fournis ci-dessus. Avez-vous bien activé le mécanisme dans config.properties ?
  • Pas de fichier trace.log : vérifez dans le fichier log4j.xml que les chemins correspondent à ceux de votre installation

 

 

 

approve ÉTAPE SUIVANTE

 

  • Aucune étiquette

Commentaire

  1. Haproxy a une limite pour loguer le cookie, si vous avez du haproxy, il faut limiter à la fois la taille du nom du cookie (par ex AG) ainsi que la taille du cookie pour passer en dessous de 64 octets. IL convient d'y penser avant de mettre en prod et de bien configurer le CAS (trace-me.xml)