Déploiement d'un serveur CAS
(nouveau packaging Esup cas-toolbox v4)
présenté lors des Esup-Days 19 & Apereo Europe (5-6 février 2015) : https://www.esup-portail.org/wiki/pages/viewpage.action?pageId=439255076
1. 05.02.2015 ESUP-Days #19 11
ESUP-Days
#19
05.02.2015
Paris
05.02.2015
Packaging Esup CAS
“Déploiement d’un serveur CAS”
Ludovic Auxepaules -- Direction des Systèmes d’Information
de l’Université Pierre et Marie Curie
ludovic.auxepaules@upmc.fr https://github.com/auxepaul/
https://github.com/EsupPortail/cas-toolbox-new
2. 05.02.2015 ESUP-Days #19 2
“Recette” à suivre pour adopter CAS
Utiliser la dernière version stable du serveur CAS
Ajouter la « charte graphique » de l’établissement
Ajouter la configuration de l’établissement
Comment s’authentifient les utilisateurs ?
Quels sont les attributs utilisateurs et d’où proviennent-ils ?
Quelles sont les applications autorisées à utiliser CAS ?
…
Assembler, tester et déployer
Maintenir à jour les clients CAS dans les applicatifs
3. 05.02.2015 ESUP-Days #19 3
Historique des versions du serveur
https://www.apereo.org/tags/cas-product-release
https://github.com/Jasig/cas/releases/
CAS Server 4.0.1 Janvier 2015
CAS Server 4.0 Mai 2014 recommandée en juin 2014
Patchs de sécurité pour SAML2 (e.g. Google Apps), attaques HTTP
CAS Server 3.5.3 Janvier 2015
CAS-server-security-filter 1.0 Aout 2014 2.0 Novembre 2014
CAS Server 3.5.2.1 Avril 2014
CAS Server 3.4.12.1 Avril 2014
CAS Server 3.5.2 Février 2013 recommandée en juin 2013
...
CAS Server 3.5.0 Juillet 2012
CAS Server 3.4.12 Mai 2012 recommandée en juin 2012
…
CAS Server 3.4.7 Mars 2011
…
CAS Server 3.4.0 Mai 2010
…
4. 05.02.2015 ESUP-Days #19 4
Prérequis pour déployer un serveur CAS
Java JDK 6 7
Conteneur de Servlets (Apache Tomcat 6 7)
Apache Maven 3
Serveur HTTP Apache 2.x avec mod_proxy_ajp
(Optionnel)
Certificats SSL (pour la mise en production)
“CAS installation is a fundamentally source-oriented
process”
5. 05.02.2015 ESUP-Days #19 5
Comment déployer un serveur CAS ?
Installation d'une QuickStart Esup ou Jasig
Idéal pour découvrir rapidement CAS, tester, réaliser des
formations, démos…
Modification du code source d’une version stable
Copie d’un WAR et modifications dans le webapps Tomcat
Plus difficile pour faire les montées de version du serveur CAS
Maven WAR Overlay
Méthode actuellement recommandée pour déployer CAS (Apereo)
Esup cas-toolbox et Esup cas-toolbox-new
Facilite le déploiement en centralisant certains éléments de
configuration et en préconfigurant certains modules de CAS
6. 05.02.2015 ESUP-Days #19 6
2008-2011 : Esup cas-toolbox v3
Maven WAR Overlay
2012-2014 : Esup cas-toolbox-new v3
2015 : Esup cas-toolbox-new v4 (en développement)
Packaging Esup CAS
“Déploiement d’un serveur CAS”
7. 05.02.2015 ESUP-Days #19 7
2008-2011 : Esup cas-toolbox v3
Déploiement d'un serveur CAS dans un Tomcat existant
Simplification de la configuration de CAS
Personnalisation du serveur CAS
Assemblage de distributions Quickstart
Dernière version sur sourceSup et basée sur CAS v3.4.7
https://sourcesup.renater.fr/frs/?group_id=401&release_id=1461
Documentations associées
https://www.esup-portail.org/wiki/display/CAS/CAS+Toolbox+-
+Package+d%27installation+de+CAS+V3
https://wiki.jasig.org/display/CAS/CAS-toolbox#CAS-toolbox-Overview
https://subversion.renater.fr/cas-toolbox/tags/3.4.7-1/README
Packaging Esup basé sur Ant et le serveur CAS v3 du Jasig
8. 05.02.2015 ESUP-Days #19 8
2008-2011 : Esup cas-toolbox v3
Téléchargement de cas-toolbox.X-Y.tar.gz
Copie de build.sample.properties en build.properties
Saisie de la propriété deploy.path property dans build.properties
Copie de config.sample.properties en config.properties
Configuration de config.properties (et ajout des personnalisations dans
le répertoire custom)
Initialisation en lançant la commande ant init
Déploiement dans le Tomcat existant en lançant ant deploy
Lancement de Tomcat et ouverture de l'adresse
http://localhost:8080/cas
Exemple de déploiement dans un Tomcat existant
GT Esup Authentification, 27 juin 2014
9. 05.02.2015 ESUP-Days #19 9
2008-2011 : Esup cas-toolbox v3
Interface utilisateur avec le thème Esup (v3.4.7)
10. 05.02.2015 ESUP-Days #19 10
Maven WAR Overlay
Gestion locale des sources contenant seulement les dépendances, les
configurations et les personnalisations spécifiques à l’établissement
Fichier pom.xml (Project Object Model) décrivant le projet, ses
dépendances, les tâches automatisées…
Fichiers .java, .properties, .xml,… ajoutés ou modifiés
Attention aux déplacements de fichiers et répertoires lors des montées de version
Reconstruction du WAR à déployer dans Tomcat
A partir de la version d’origine du serveur CAS définie dans pom.xml
Avec toutes les configurations et les personnalisations en superposition
(remplacement des fichiers d’origine)
Documentations associées
https://wiki.jasig.org/display/CASUM/Best+Practice+-
+Setting+Up+CAS+Locally+using+the+Maven+WAR+Overlay+Method
http://jasig.github.io/cas/current/installation/Maven-Overlay-Installation.html
Principes à retenir lors du déploiement
11. 05.02.2015 ESUP-Days #19 11
Maven WAR Overlay
Serveur CAS 3.4.1x
https://subversion.renater.fr/cas-toolbox/branches/cas-toolbox-new/
https://github.com/EsupPortail/cas-toolbox-new/tree/v3.4.x
Serveur CAS 3.5.x
https://github.com/UniconLabs/simple-cas-overlay-template
https://github.com/Unicon/unicon-cas-overlay
https://github.com/leleuj/cas-overlay-3.5.x
Serveur CAS 4.0.x
https://github.com/leleuj/cas-overlay-demo
https://github.com/UniconLabs/simple-cas4-overlay-template
https://github.com/EsupPortail/cas-toolbox-new/tree/v4.0.x
Exemples connus pour le serveur CAS
12. 05.02.2015 ESUP-Days #19 12
Esup cas-toolbox-new v3 et v4
Possibilités offertes par le nouveau packaging
Déploiement d’un serveur CAS dans un Tomcat existant
Simplification et centralisation de la configuration
Fichier config.properties, HandlersDiscover
Pré-paramétrage des ajouts Esup
Thème, LDAP, Logging, TraceMe, Stats, BlockAttack, SAML 1.1…
A activer : Memcached, Rest, Kerberos, LPPE, Clearpass…
Pas de quickstart construite avec Ant
Possibilité d'utiliser jetty en localhost pour “tests” (envisagé)
Restructuration et simplification du projet esup cas-toolbox (J. Marchal)
https://subversion.renater.fr/cas-toolbox/branches/cas-toolbox-new/
Svn2git de la branche svn et sauvegarde sur github (L. Auxepaules)
https://github.com/auxepaul/cas-toolbox-new
Packaging basé sur Maven
13. 05.02.2015 ESUP-Days #19 13
Esup cas-toolbox-new v3 et v4
cas-toolbox-core (ajouts et pré-configurations propres à Esup)
src/main
– java
– webapp
pom.xml
cas-toolbox-custom (changements de l’établissement)
src/main
– webapp
pom.xml
etc (guides HowTo, et exemples de « scripts »)
config.sample.properties (exemple de configuration en localhost)
pom.xml
Meilleure différenciation des ajouts Esup (cas-toolbox-core), des
changements de l'établissement (cas-toolbox-custom)
Architecture du packaging : « Double Overlays »
14. 05.02.2015 ESUP-Days #19 14
Esup cas-toolbox-new v3 et v4
git clone https://github.com/EsupPortail/cas-toolbox-new.git
git checkout v4.0.x
Copie de config.sample.properties en config.properties
Saisie de la propriété deploy.path dans config.properties
Configuration de config.properties
(Ajout des personnalisations dans le répertoire cas-toolbox-custom)
Initialisation et déploiement dans Tomcat : mvn clean package
Lancement de Tomcat et ouverture de l'adresse
http://localhost:8080/cas
http://localhost:8080/cas-management
Exemple de déploiement dans un Tomcat existant
15. 05.02.2015 ESUP-Days #19 15
Esup cas-toolbox-new v3 et v4
Interface utilisateur avec le thème Esup
16. 05.02.2015 ESUP-Days #19 16
CAS v4.0.x
Quelques nouveautés introduites par la version 4.0
Nouveau protocole CAS v3
Renvoi des attributs de l'utilisateur en plus de l'identifiant
Meilleure modularité
e.g. interface web de gestion des services séparée du serveur
Remaniement des API d'authentification
Mise à jour des dépendances
e.g. remplacement de Spring LDAP par Ldaptive
Améliorations de l’interface Utilisateur (“Responsive”)
Code non rétro-compatible avec les versions 3.x
Difficile de recopier directement certaines configurations et
modifications directement d’une version 3.x vers 4.x
http://jasig.github.io/cas/current/
17. 05.02.2015 ESUP-Days #19 17
Démonstration du packaging
Esup cas-toolbox-new v4
Packaging Esup CAS
“Déploiement d’un serveur CAS”
18. 05.02.2015 ESUP-Days #19 18
Démonstration
Quickstart uPortal 4.1
C:/portal
Apache Maven 3.0.4
Apache Tomcat 7.0.32
Scripts de lancement de tomcat dans apache-tomcat-7.0.32/bin
– startup.bat et shutdown.bat
Java JDK 1.7
Variables d’environnement
JAVA_HOME, JAVA_OPTS, CATALINA_OPTS
Path : MAVEN_HOME%bin
Git : Github pour Windows
Environnement de demonstration sous Windows