JOSY «Authentification Centralisée» Paris, 6 mai 2010 Single Sign-On open source avec CAS (Central Authentication Service) Julien Marchal Consortium ESUP-Portail
SSO open source avec CAS Introduction Pourquoi le Single Sign-On? Principes du SSO sur le web Le mécanisme CAS L authentification sous CAS Démonstration
Pourquoi le Single Sign-On? Single Sign-On = Authentification unique et unifiée Authentifications multiples Sécurité Le vol d un mot de passe unique est critique Protéger le mot de passe Ne pas le transmettre aux applications (simplification des applications et non délégation de la sécurité) Différents mécanismes d authentification Abstraction du mode d authentification LDAP, NIS, BDD, certificats X509,
Pourquoi le Single Sign-On? Service Service Appli n 3 Appli n 2 Appli n 1 Appli n 3 Appli n 2 Appli n 1 sans CAS avec CAS
Principes du SSO web Centralisation de l authentification Sur un serveur (d authentification) Redirections HTTP transparentes Des applications vers le serveur d authentification Du serveur d authentification vers les applications Passage d informations lors de ces redirections Cookies Paramètres CGI
Principes du SSO web Service Référenciel utilisateurs Service Référenciel utilisateurs Appli n 3 Appli n 2 Appli n 1 Appli n 3 Appli n 2 Appli n 1 Mais comment ça marche? sans CAS avec CAS
1 ère authentification d un utilisateur Serveur CAS HTTPS
1 ère authentification d un utilisateur Référenciel utilisateurs Serveur CAS Identifiant Mot de passe HTTPS : Ticket Granting Cookie Passeport du navigateur auprès du serveur CAS Cookie privé et protégé (le seul cookie utilisé dans CAS ; il n est pas obligatoire) Ticket opaque rejouable
Accès à une application Serveur CAS (après authentification) Application ID HTTPS : Service Ticket Passeport du navigateur auprès du client CAS Ticket opaque non rejouable Limité dans le temps
Accès à une application (après authentification) Application ID HTTPS Toutes les redirections sont transparentes pour l utilisateur Dans la pratique
Accès à une application (avant authentification) Serveur CAS Application formulaire d authentification HTTPS
Accès à une application (avant authentification) Serveur CAS ID Application identifiant mot de passe HTTPS Il n est pas nécessaire de s être préalablement authentifié auprès du serveur CAS pour accéder à une application
Remarques Une fois le acquis, l authentification devient transparente pour l accès à toutes les autres applications CAS-ifiées Une fois authentifié pour une application, une session applicative est mise en place
Fonctionnement n-tiers Serveur (imap) Serveur CAS ID PGT PGT Application (webmail)
Fonctionnement n-tiers Serveur (imap) Serveur CAS ID PT PGT : Proxy Granting Ticket Passeport d'un utilisateur pour une application auprès du serveur CAS Ticket opaque rejouable PT PT PGT PGT Application (webmail)
Single Sign-Out Session applicative Serveur CAS Session applicative logout Session applicative Lors d un logout CAS Le serveur va envoyer des requêtes de logout à chaque service ayant demandé un ticket pour l utilisateur A charge aux applications de traiter le logout
Technologies utilisées JAVA SPRING RE HTTP SSL
Les authentifications Le choix du/des mode(s) d authentification est laissé à l initiative de l administrateur Configuration XML pour ajouter des «handlers» d authentification Possibilité de développer ses propres couches d authentification Active directory X509 Fichier plat SPNEGO JAAS JDBC LDAP RADIUS
Les protocoles Open ID Système d authentification décentralisé qui permet l authentification unique SAML Google apps REful
Démonstration rapide nancy2.fr nancy2.fr nancy2.fr nancy2.fr
Des questions? http://www.ja-sig.org/wiki/display/cas/home