Groupe 1B (SSO et gestion des autorisations)

Date de création : mars 2003
Dernière modification : 5 août 2004
Diffusion : internet

Installation du serveur CAS

Références

Validité du document

Ce document est obsolète pour le projet esup-portail.

Il faut maintenant utiliser le package esup-cas-serveur qui simplifie considérablement l'installation d'un serveur CAS.

Préalable

Si uPortal est installé sur le serveur, on peut utiliser le programme de <HOME_UPORTAL>/uPortal_2-1-quick-start/Ant_1-5. Sinon, il faut installer ant.

Remarque : les chemins de fichiers et répertoires donnés ci-dessous correspondent à ceux trouvés par défaut dans une installation Linux RedHat 9.0.

Téléchargements

Télécharger les packages suivants :

Installation du J2SDK (en rpm)

% cd /usr/src/redhat/RPMS/i586
% sh /tmp/j2sdk-1_4_1_02-linux-i586-rpm.bin
% rpm -ivh j2sdk-1_4_1_02-fcs-linux-i586.rpm

Le J2SDK est alors installé dans /usr/java/j2sdk1.4.1_02

Installation de Tomcat (en rpm)

% cd /usr/src/redhat/RPMS/noarch
% mv /tmp/tomcat4-4.1.24-full.2jpp.noarch.rpm .
% mv /tmp/tomcat4-admin-webapps-4.1.24-full.2jpp.noarch.rpm .
% mv /tmp/tomcat4-webapps-4.1.24-full.2jpp.noarch.rpm .
% rpm -ivh tomcat4-*4.1.24*.rpm

Créer /etc/java/java.conf (utilisé par tomcat) :

% mkdir /etc/java
cat > /etc/java/java.conf
JAVA_HOME=/usr/java/j2sdk1.4.1_02
^D

Créer /etc/profile.d/java.sh (utilisé par bash) :

% cat > /etc/profile.d/java.sh
JAVA_CFG=/etc/java/java.conf
[ -r "$JAVA_CFG" ] && { . $JAVA_CFG ; export PATH="$PATH:$JAVA_HOME/bin" ; }
 ^D

Démarrer tomcat :

% /etc/init.d/tomcat4 start

Tester sur http://serveur:8080.

Forcer le démarrage de Tomcat au boot du serveur (/usr/sbin/ntsysv).

Installation de ant

% cd /usr/local
% mv /tmp/apache-ant-1.5.3-1.tar.gz src
% tar zxvf src/apache-ant-1.5.3-1.tar.gz

Ant est alors installé dans /usr/local/apache-ant-1.5.3-1.

Installation de CAS

Installation du package CAS

% cd /usr/local
% tar zxvf src/cas-server-2.0.10.tar.gz
% cd cas-server-2.0.10

Application de patchs

Il est conseillé de remplacer les 2 sources suivants (valable en 2.0.10) :

Les développeurs sont au courant de ces patchs. Ils devraient être intégrés dans les prochaines distributions.

Installation de la classe d'authentification locale

par exemple, recopie de LdapHandler.java dans edu/yale/its/tp/cas/auth/provider/, puis personnalisation dans le source.

Mettre à jour le fichier web/WEB-INF/web.xml pour déclarer l'utilisation de cette classe :

 <context-param>
   <param-name>edu.yale.its.tp.cas.authHandler</param-name>
   <param-value>edu.yale.its.tp.cas.auth.provider.LdapHandler</param-value>
 </context-param>

Adaptation de CAS à la configuration locale

Construire un fichier build.sh :

ANT_HOME=/usr/local/apache-ant-1.5.3-1
JAVA_HOME=/usr/local/java
CLASSPATH=${ANT_HOME}/lib/ant.jar:${ANT_HOME}/lib/jaxp.jar:${ANT_HOME}/lib/parser.jar:${JAVA_HOME}/lib/tools.jar
export CLASSPATH ANT_HOME JAVA_HOME
${JAVA_HOME}/bin/java org.apache.tools.ant.Main "$@"

Compilation de CAS

% ./build.sh
% ./build.sh dist

La commande précédente a créé un cas.war dans lib/

Déploiement de CAS

Copier la librairie produite dans l'espace des applications de tomcat :

% cp lib/cas.war /var/tomcat4/webapps/

Verifier la conf server.xml de tomcat

<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">

Arrêter et relancer tomcat :

% /etc/init.d/tomcat4 restart

Un répertoire cas a normalement été créé dans le répertoire webapps/.

Test de CAS

Accéder http://serveur:8080/cas et en entrant n'importe quel user et le même mot de passe (la connexion doit réussir).

Les logs de Tomcat sont situés dans /var/log/tomcat4/catalina.out.

Remarque de sécurité

Les différents appels au serveur CAS se font via la méthode GET http. Les paramètres sont sont écrit dans les logs d'accès dans le cas où ceux-ci sont activés.
En particulier, les tickets sont écrits en clair dans le log d'accès.
Ce n'est pas gênant en ce qui concerne le ST (Service Ticket) ou pe PT (Proxy Ticket), puisque ceux-ci ne sont jouables qu'un seule fois.
C'est beaucoup plus gênant pour le PGT (Proxy Granting Ticket), qui lui, est rejouable.
Et c'est encore plus gênant dans le cas de l'utilisation de pam_cas, le ticket pouvant éventuemment être en fait un mot de passe de l'utilisateur!
Ce dernier cas a été traité en faisant en sorte que pam_cas n'appelle le serveur CAS que si le mot de passe commence par "PT-".

Il est donc fortement conseillé de ne pas activer le log d'accès en ce qui concerne le serveur CAS.