ja-sig cas - rmll 2008
TRANSCRIPT
impress_sdsi_OpenDoc_00_cle087d21
Romain Bourgue & Arnaud Lesueur
Rencontres Mondiales du Logiciel Libre
4 Juillet 2008
Mont de Marsan
Sommaire
Introduction
Projet CAS
Cinmatiques de fonctionnement
Sous le capot...
Retour sur exprience : CAS au MAP
Pour en savoir plus
Agenda
Introduction
Qui sommes-nous ?
Qu'est-ce qu'un SSO...?
Projet CAS
Cinmatiques de fonctionnement
Sous le capot...
Retour sur exprience : CAS au MAP
Pour en savoir plus
Qui sommes-nous ?
Romain Bourgue Ministre de l'Agriculture et de la Pche (MAP)
Expert scurit, au MAP depuis 6 ans
Responsable de l'architecture SSO (en place depuis 2 ans)
Administration des infrastructures de scurit (PF, Proxies,
Reverses Proxies, PKI, etc). Principalement en LL
Arnaud Lesueur Dictao
4 ans d'expertise en gestion d'identit. Sujets de prdilection : Authentification, Single Sign-On, Fdration, Provisionning, Public Key Infrastructure
Dveloppeur CAS depuis 2006 avec notamment :
Authentication Handler : SPNEGO (Kerberos / NTLM)
Tests fonctionnels automatiss (Canoo WebTest)
Haute disponibilit (JBoss Cache)
Qu'est-ce qu'un SSO ?
Objectif et enjeux
Objectifs :
Centraliser les authentifications applicatives en une seule authentification scurise.
Une seule authentification, une seule fois !
Enjeux :
Simplifier la gestion des mots de passe utilisateur et des rfrentiels d'authentification
Amliorer la scurit en renforant l'authentification
Faciliter la mise en place de politique de scurit
Agenda
Introduction
Projet CAS
Prsentation
Acteurs et historique du projet
Actualits et Roadmap
Points forts de la solution
Cinmatiques de fonctionnement
Sous le capot...
Retour sur exprience : CAS au MAP
Pour en savoir plus
Projet CAS : Prsentation
CAS est un serveur d'authentification unique pour client
Web
Il fonctionne selon un systme de tickets, changs selon un
protocole prcis et souple supportant les architectures
n-tiers
Ce protocole d'change est inspir de Kerberos
La richesse de ses modules permet d'intgrer CAS dans des environnements htrognes
Projet CAS : Acteurs & Historique
CAS 1.0 (2001)
Dveloppe par l'Universit Yale
Objectif tant d'offrir un SSO pour le Web
Quelques pages JSP et des servlets
CAS 2.0.x (Mai 2002 Mai 2004)
Toujours dvelopp par Yale
Introduction du CAS Proxy Ticket
10 pages JSP et 6 servlets
Implmentation trs populaire avec une large communaut
Souche utilise l'origine par ESUP
CAS 3.x (Dcembre 2004)
Projet intgr au consortium Ja-Sig
Compatibilit avec le protocole et clients CAS 2.x
Architecture compltement repense et bien plus modulaire
Projet CAS : Actualits & Roadmap
Versions courantes : CAS 3.2.1 (stable) CAS 3.2.2 RC1 (Dev)
Nouveauts
Console d'administration Service Management
Single Log Out
API Restful
Fournisseur d'attributs
OpenID Provider
Remember Me
Roadmap
CardSpace / Infocard Authentication Handler
Terracotta Support
Support SAML 2.0 / Fdration
http://www.ja-sig.org/wiki/display/CAS/CAS+Vision+and+Roadmap
Projet CAS : Points forts
Serveur d'authentification sur le principe de tickets
Multi-domaine
Proxy Ticket
Force de la communaut avec une reconnaissance de l'implication
Solution lgre
Facilement dployable, intgrable et clusterisable
(HA&LB)
Clients existants :
Apache, IIS, Java, PAM, Perl, PHP, Ruby, .Net, etc !
Applications nativement CASsifies:
Mantis, uPortal, TikiWiki, JSPWiki, Moodle, Sympa, exo Plateform,
Jalios, Liferay, Jtrac, simpleSAMLphp, Shibboleth, etc !
Agenda
Introduction
Projet CAS
Cinmatiques de fonctionnement
Primo authentification
Accs secondaire
Proxy SSO en architecture n-tiers
Sous le capot...
Retour sur exprience : CAS au MAP
Pour en savoir plus
CAS
LDAP
Application
aft545rd8erzqa4
http://monappli/
https://cas../?service=http://monappli/
PKI
aft545rd8erzqa4
http://monappli/?ticket=aft545rd8erzqa4
https://cas../samlValidateaft545rd8erzqa4
Cinmatique de fonctionnement
Primo authentification
Cinmatique de fonctionnement
Accs Secondaire
LDAP
Application2
aft545rd8erzqa4
http://monappli2/
CAS
https:/cas../?service=http://monappli2/
PKI
aft545rd8erzqa4
http://monappli2/?ticket=aft545rd8erzqa4
https://cas../serviceValidateaft545rd8erzqa4
Application
Cinmatique de fonctionnement
ProxyTicket : Architecture N-tiers
LDAP
WebMail
aft545rd8erzqa4
https://webmail/
CAS
https:/cas../?service=https://webmail/
PKI
Aft545rd8erzqa4
https://webmail/?ticket=aft545rd8erzqa4
https://cas../serviceValidate?service=..&pgtUrl=...aft545rd8erzqa4
Serveur Mail
PAM
abf8eyydvzlo
abf8eyydvzlo
Pwd : abf8eyydvzlo
https://webmail/pgtUrlabf8eyydvzlo
/serviceValidate?ticket=abf8...
Agenda
Introduction
Projet CAS
Cinmatiques de fonctionnement
Sous le capot ...
Structure interne
Modules
Un exemple
Retour sur exprience : CAS au MAP
Pour en savoir plus
Sous le capot
Structure interne
Dveloppement en Java 1.5 pour leCore base de
Maven 2
Spring Framework
Spring Webflow
Hibernate
Log4J
OpenSAML
Inspektr
Pour les tests
JUnit
Canoo WebTest
Sur ceCore on vient y ajouter des modules ...
Sous le capot
Une structure modulaire
Plusieurs types de modules :
Les modules de credentials : Chargs de collecter les lments d'identification de l'utilisateur
Les modules d'authentifications : chargs de valider les informations d'identifications (credentials)
Les modules d'attributs : chargs de rcuprer des informations sur l'utilisateur
Les modules de stockage des tickets : chargs de garder en mmoire les tickets (ST, TGT, PGT, PT)
Les modules de validations de tickets : chargs de rpondre aux applications
Sous le capot
Modules de credentials
Lors de l'authentification, des Credentials sont gnrs partir des informations fournies par l'utilisateur
plainx509OTP
CAS
...SPNEGO
Sous le capot
Modules d'authentification
Ces credentials sont valids par des AuthenticationHandlers. On obtient un Principal
plainx509OTP
CAS
...SPNEGOLDAPPKIKerbDB...
NTLM
Sous le capot
Modules d'attributs utilisateurs
Des informations additionnelles sur l'utilisateur et son
authentification peuvent prciser le Principal.
On obtient un Authentication
CAS
DBLDAP...
@
plainx509OTP...SPNEGOLDAPPKIKerbDB...
NTLM
Sous le capot
Modules de stockage des tickets
L'Authentication et les tickets qui y sont lis sont stocks dans un espace ventuellement partag par d'autres membres d'un cluster HA
CAS
DBLDAP...
@
DB
JBoss Cache
aft545rd8erzqa4
plainx509OTP...SPNEGOLDAPPKIKerbDB...
NTML
Sous le capot
Modules de validation de ticket
Les tickets sont ensuite valids par les applications travers modules implmentant des protocoles diffrents
CAS
DBLDAP...
@
DB
JBoss Cache
aft545rd8erzqa4
......SAMLCas2Cas1/validate
/serviceValidate
/SAMLValidate
API Cas
Mod_CAS
Partenaire SAML
plainx509OTP...SPNEGOLDAPPKIKerbDB...
NTLM
Sous le capot
Dclaration d'un module d'authentification
Exemple pour dclarer une authentification LDAP. Editer le fichier deployerConfigContext.xml pour ajouter :
Agenda
Introduction
Projet CAS
Cinmatiques de fonctionnement
Sous le capot ...
Retour sur exprience : CAS au MAP
Environnement et problmatiques
Particularits d'implmentation
Quelques chiffres
Pour en savoir plus
Retour sur exprience : CAS au MAP
Environnement et problmatiques
3 types de populations : agents, partenaires et usagers.
Diffrents rfrentiels dauthentification (DB, LDAP, PKIs)
Diffrents vecteurs dauthentification :
Identifiant/Mot de passe
Certificats issues de diffrentes AC
SSO Partenaire
Diffrents types de clients CAS :
Tl-procdures Orion (framework Java du MAP)
Applications PHP, Java, .NET,
Applications Web tierces (par mod_cas)
Retour sur exprience : CAS au MAP
Architecture dploye
Retour sur exprience : CAS au MAP
Particularit d'implmentation
Architecture HA&LB sur 2 serveurs ddis s'appuyant sur JBoss Cache pour le partage des tickets
Clusteur extensible N noeuds
Web Service de validation de ticket pour les attributs utilisateurs
Support de rfrentiels d'authentification : on lie des AuthenticationHandler des applications
Configuration XML gre par Puppet terme supporte en BDD et JPA
Infrastructure audite sur l'aspect scurit et performance
Support de dlgation d'authentification SSO partenaire
Retour sur exprience : CAS au MAP
Interaction avec un SSO partenaire
Retour sur exprience : CAS au MAP
Quelques chiffres
80 JH de dveloppement et d'intgration
0,5 ETP d'exploitation et maintenance volutive
Une vingtaine de services Web
2500 authentifications effectues par jour
2800 tickets gnrs par jours :-\
Agenda
Introduction
Projet CAS
Cinmatiques de fonctionnement
Sous le capot ...
Retour sur exprience : CAS au MAP
Pour en savoir plus
Liens & ressources
Questions
Liens & Ressources
JA-SIG
Homepage http://www.ja-sig.org/products/cas/
CAS User Manualhttp://www.ja-sig.org/wiki/display/CASUM/
CAS Clienthttp://www.ja-sig.org/wiki/display/CASC/
Issue Trackerhttp://www.ja-sig.org/issues/browse/CAS/
Mailing [email protected] & [email protected]
Codehttp://developer.ja-sig.org/source/
ESUP
Homepagehttp://www.esup-portail.org/
Mailing [email protected]
D'autres serveurs CAS
Rubyhttp://code.google.com/p/rubycas-server/
Pythonhttp://eole.orion.education.fr/wiki/index.php/EoleSSO
Perlhttp://www.onlamp.com/pub/a/onlamp/2007/05/31/cas-single-sign-on-with-jifty.html
Questions ?
?
?
?
Arnaud LESUEUR
[email protected]
Romain BOURGUEMinistre de l'Agriculture et de la [email protected]
Cliquez pour diter le format du texte-titre
Cliquez pour diter le format du plan de texte
Second niveau de plan
Troisime niveau de plan
Quatrime niveau de plan
Cinquime niveau de plan
Sixime niveau de plan
Septime niveau de plan
Huitime niveau de plan
Neuvime niveau de plan
25/09/08
Ministre de lagriculture et de la pche
Cliquez pour diter le format du texte-titre
Cliquez pour diter le format du plan de texte
Second niveau de plan
Troisime niveau de plan
Quatrime niveau de plan
Cinquime niveau de plan
Sixime niveau de plan
Septime niveau de plan
Huitime niveau de plan
Neuvime niveau de plan
25/09/08
Ministre de lagriculture et de la pche