La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Copyright 2008 © Consortium ESUP-Portail Formation CAS, mars 2009 Formation CAS Julien Marchal.

Présentations similaires


Présentation au sujet: "Copyright 2008 © Consortium ESUP-Portail Formation CAS, mars 2009 Formation CAS Julien Marchal."— Transcription de la présentation:

1 Copyright 2008 © Consortium ESUP-Portail Formation CAS, mars 2009 Formation CAS Julien Marchal

2 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Plan Le but CAS un SSO WEB L’intérêt de CAS Mécanisme Technologies utilisées Les authentifications Installation de base Certificats Développement d’un petit client CAS (php) Clients –phpCAS –JAVA CASFilter –Mod_auth_cas –Pam_cas REST SSOut Audit et statistiques Redondance et failover

3 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Le but SSO –Single Sign-On –authentification unique et unifiée Sécurité –protéger le mot de passe –ne pas transmettre le mot de passe aux applications –un seul point d’authentification Plusieurs mécanismes d’authentification –LDAP, fichier plat, X509

4 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Le but sans CAS Navigateur web Appli n°1Appli n°2Appli n°3 Service Navigateur web Appli n°1Appli n°2Appli n°3 Service avec CAS

5 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 CAS un SSO WEB Centralisation de l’authentification en un point –Le serveur d’authentification Redirections HTTP transparentes –Application vers serveur d’authentification –Serveur d’authentification vers les applications Passage d’information lors de ces redirections –Cookies –Paramètres CGI

6 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 L’intérêt de CAS Le mot de passe n’est JAMAIS transmis aux applications Utilisation de ticket « opaque » et à usage unique (à la Kerberos) Mécanisme n-tiers –Utilisation de services à travers des applications clientes sans transmission du mot de passe Librairies clientes –Java filter, jsp, php, perl, python. Dot net, module Apache et PAM

7 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Mécanisme 1 ère authentification d’un utilisateur Serveur CAS Navigateur web HTTPS

8 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Mécanisme 1 ère authentification d’un utilisateur Référenciel utilisateurs Identifiant Mot de passe TGC TGC : 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 HTTPS TGC

9 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Mécanisme Accès à une application (après authentification) HTTPS ST ST : Service Ticket –Passeport du navigateur auprès du client CAS –Ticket opaque non rejouable –Limité dans le temps ID TGC

10 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Mécanisme Accès à une application (après authentification) HTTPS ST ID TGC Toutes les redirections sont transparentes pour l’utilisateur Dans la pratique…

11 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Mécanisme Accès à une application (avant authentification) HTTPS formulaire d’authentification

12 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Mécanisme Accès à une application (avant authentification) TGC HTTPS ST ID identifiant mot de passe ST TGC Il n’est pas nécessaire de s’être préalablement authentifié auprès du serveur CAS pour accéder à une application

13 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Mécanisme Remarques Une fois le TGC 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

14 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Mécanisme Fonctionnement n-tiers TGC ST ID PGT

15 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Mécanisme Fonctionnement n-tiers TGC ST PGT PT ID PGT PGT : Proxy Granting Ticket –Passeport d'un utilisateur pour une application auprès du serveur CAS –Ticket opaque rejouable PT

16 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Technologies utilisées JAVA SPRING REST HTTP SSL

17 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 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 Fichier plat JAAS JDBCLDAP RADIUS SPNEGO X509

18 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Installation de base TP 1, 2 et 3

19 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Certificats Pour fonctionner en SSO, CAS a besoin d’une connexion HTTPS Le mieux est d’utiliser des certificats signés par des autorités reconnus par les JVM On peut aussi utiliser des certificats dit auto-signés Les clients CAS ont besoin de connaître le certificat du serveur CAS afin de faire des connexions HTTPS directes vers lui

20 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Certificats TP4 : Nous allons utiliser des certificats auto-signés

21 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Développement d’un petit client CAS (php) Afin de mieux comprendre le fonctionnement CAS, nous allons développer un client en PHP

22 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Développement d’un petit client CAS Algorithme de base Pas de session ou pas de nom utilisateur dans la session Redirection vers CAS Si un ticket en GET Affichage nom utilisateur Requête HTTP vers CAS Validation du ticket Analyse XML Récupération Nom utilisateur Arrivée requête Récupération du Nom utilisateur En session

23 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Développement d’un petit client CAS (php) En cas d’erreur, CAS va répondre : Optional authentication failure message En cas de succès NetID TP5

24 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Développement d’un petit client CAS (php - proxy) Nous allons développer le client en php permettant de faire un fonctionnement proxy Pour se faire, le serveur CAS aura besoin de faire une connexion HTTPS directe vers le client

25 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Développement d’un petit client CAS Algorithme de base (proxy) Pas de session ou pas de nom utilisateur dans la session Redirection vers CAS Si un ticket en GET Affichage nom utilisateur Requête HTTP vers CAS Validation du ticket Demande proxy Analyse XML Récupération Nom utilisateur Et du PGT-IOU Arrivée requête Récupération du Nom utilisateur En session Si un PGT-IOU en GET Stockage PGT-IOU Récupération PGT Stockage en session Demande D’un PT

26 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Développement d’un petit client CAS (php - proxy) En cas de succès NetID PGTIOU Lors de la demande d’un PT ST-957-ZuucXqTZ1YcJw81T3dxf TP 6

27 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Utilisation de client phpCAS http://www.ja-sig.org/wiki/display/CASC/phpCAS Librairie pour PHP Gère le proxy Gère le logout CAS

28 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Utilisation de client phpCAS include_once('CAS.php'); phpCAS::setDebug(); // initialize phpCAS phpCAS::client(CAS_VERSION_2_0,‘localhost',443,‘/cas'); phpCAS::setNoCasServerValidation(); phpCAS::forceAuthentication(); if (isset($_REQUEST['logout'])) { phpCAS::logout(); } ?> Successfull Authentication! login is <?php echo phpCAS::getUser(); TP 7 : Mise en place de phpCAS

29 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Utilisation de client Java CAS Filter Le client CAS Java existe sous forme de filter 4 filtres –CASFilter : va gérer l’authentification –CASValidation: va gérer la validation des tickets –CASWrapper : va mettre à disposition le username dans le remoteuser –CAS Single Sign Out Filter : va gérer les requêtes de logout

30 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Utilisation de client Java CAS Filter Le CASFilter CASFilter org.jasig.cas.client.authentication.AuthenticationFilter casServerLoginUrl https://localhost/cas/login

31 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Utilisation de client Java CAS Filter Le CASValidation CASValidation org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter casServerUrlPrefix https://localhost/cas redirectAfterValidation true

32 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Utilisation de client Java CAS Filter Le CASWrapper CASWrapper org.jasig.cas.client.util.HttpServletRequestWrapperFilter

33 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Utilisation de client Java CAS Filter Le CAS Single Sign Out Filter CAS Single Sign Out Filter org.jasig.cas.client.session.SingleSignOutFilter TP 8 : Mise en place d’un client JAVA CAS Filter

34 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Utilisation de client mod_auth_cas Mod_auth_cas est un module apache LoadModule auth_cas_module /usr/lib/apache2/modules/mod_auth_cas.so CASVersion 2 CASDebug Off CASValidateServer Off CASLoginURL https://localhost/cas CASValidateURL https://localhost/cas/serviceValidate CASCookiePath /tmp/cas/ CASTimeout 7200 CASIdleTimeout 3600 CASCacheCleanInterval 1800 TP9 : mod_auth_cas

35 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Utilisation de client pam_cas Pam_cas est un module pam PAM : Pluggable Authentication Modules Peut servir pour des accès à des services linux (FTP, IMAP, etc…) PT IMAP PAM_CAS PTID

36 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Utilisation de client pam_cas /etc/pam.d.imap auth sufficient /lib/security/pam_cas.so \-simap://imap.univ.fr \-f/etc/pam_cas.conf auth sufficient /lib/security/pam_ldap.so auth required /lib/security/pam_pwdb.so shadow nullok account required /lib/security/pam_pwdb.so shadow nullok /etc/pam_cas.conf host localhost port 443 uriValidate /proxyValidate ssl on debug off proxy https://localhost/casProxy.phphttps://localhost/casProxy.php trusted_ca /Cert/ac-racine.pem

37 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Interface REST CAS possède une interface REST Celle-ci permet de faire du CAS sans pour autant parler des langages lourds tel que XML Elle est destinée à des clients en ligne de commande par exemple TP 10 : Activer REST

38 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Interface REST Fonctionnement –Un post vers https://localhost/cas/rest/tickets avec username=tp1&password=tp1 –Extraire de la réponse une url https://localhost/cas/rest/tickets/TGT-X-XXXXX (le TGT)https://localhost/cas/rest/tickets/TGT-X-XXXXX –On refait un post vers l’url extraite avec service=imap://test.fr –On obtient un PT TP 11 : client REST

39 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Le SSOut CAS implémente depuis sa version 3 un mécanisme de Single Sign OUT A chaque authentification, il mémorise l’url de retour et le ticket Lors d’un logout du CAS (appel url /logout), il va envoyer à chaque service (POST) une requête SAML contenant le ticket à delogguer A charge à l’application de le traiter

40 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Le SSOut @NOT_USED@ [SESSION IDENTIFIER]

41 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Audit et statistiques Le CAS permet d’avoir des logs d’accounting ainsi que des statistiques. Les exemples fournis sont simplistes mais permettent de se faire une idée Pour se faire, le serveur CAS se base sur inspektr http://code.google.com/p/inspektr/ TP 12 : statistiques et audit

42 Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Redondance et failover De base, CAS gère ses tickets en mémoire Donc si il s’arrête, tout l’historique est perdu, ce qui met les clients dans un état instable. Il est possible d’externaliser la gestion des tickets dans un daemon memcache Dans ce cas, il est possible de faire du load balancing et du failover

43 Copyright 2008 © Redondance et failover Memcache pour stocker les tickets Serveur AUTH1 CAS memcached Frontal Serveur AUTH2 JK TCP CAS memcached TCP Repcached / TCP Formation CAS, Paris, 9 et 10 mars 2009


Télécharger ppt "Copyright 2008 © Consortium ESUP-Portail Formation CAS, mars 2009 Formation CAS Julien Marchal."

Présentations similaires


Annonces Google