Esupdays 19 : Packaging Esup Cas

19
05.02.2015 ESUP-Days #19 1 1 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 [email protected] https ://github.com/auxepaul/ https://github.com/EsupPortail/cas-toolbox-new

Transcript of Esupdays 19 : Packaging Esup Cas

Page 1: Esupdays 19 : Packaging Esup Cas

05.02.2015 ESUP-Days #19 11

ESUP-Days#19

05.02.2015Paris

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

[email protected] https://github.com/auxepaul/

https://github.com/EsupPortail/cas-toolbox-new

Page 2: Esupdays 19 : Packaging Esup Cas

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

Page 3: Esupdays 19 : Packaging Esup Cas

05.02.2015 ESUP-Days #19 3

Historique des versions du serveur

https://www.apereo.org/tags/cas-product-releasehttps://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…

Page 4: Esupdays 19 : Packaging Esup Cas

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”

Page 5: Esupdays 19 : Packaging Esup Cas

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

Page 6: Esupdays 19 : Packaging Esup Cas

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”

Page 7: Esupdays 19 : Packaging Esup Cas

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

Page 8: Esupdays 19 : Packaging Esup Cas

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

Page 9: Esupdays 19 : Packaging Esup Cas

05.02.2015 ESUP-Days #19 9

2008-2011 : Esup cas-toolbox v3

Interface utilisateur avec le thème Esup (v3.4.7)

Page 10: Esupdays 19 : Packaging Esup Cas

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

Page 11: Esupdays 19 : Packaging Esup Cas

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

Page 12: Esupdays 19 : Packaging Esup Cas

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

Page 13: Esupdays 19 : Packaging Esup Cas

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 »

Page 14: Esupdays 19 : Packaging Esup Cas

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

Page 15: Esupdays 19 : Packaging Esup Cas

05.02.2015 ESUP-Days #19 15

Esup cas-toolbox-new v3 et v4

Interface utilisateur avec le thème Esup

Page 16: Esupdays 19 : Packaging Esup Cas

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/

Page 17: Esupdays 19 : Packaging Esup Cas

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”

Page 18: Esupdays 19 : Packaging Esup Cas

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

Page 19: Esupdays 19 : Packaging Esup Cas

05.02.2015 ESUP-Days #19 19

Démonstration

Statistiques : cas/stats.jsp

Monitoring : cas/status

Gestion des services : cas-management

Quelques pages