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

Slides:



Advertisements
Présentations similaires
Les Web Services Schéma Directeur des Espaces numériques de Travail
Advertisements

Laccès distant aux bases bibliographiques J. Gutierrez / B.Nominé – Université Nancy 2.
13/04/05 - RB1 Montpellier 24/03/2005 Les interactions entre le SSO ESUP et le mécanisme de propagation d'identité
Pascal AUBRY François DAGORN IFSIC / Université de Rennes 1
Université Nancy 2 - CRI Propositions de mécanisme de SSO dans un environnement d’applications web.
Esup-Days 5 Présentation Evolutions CAS Version 3 5 février 2008.
ESUP-FWA Connexion simplifiée à Apogée & Harpège via l'ENT
- Couche 7 - Couche application. Sommaire 1)Introduction 1)DNS 1)FTP et TFTP 1)HTTP 1)SNMP 1)SMTP 1)Telnet.
Exposé de Système - Informatique et Réseau
Module 10 : Gestion et analyse de l'accès réseau
Vue d'ensemble Implémentation de la sécurité IPSec
TRANSFER Alger – Serveur Web Nicolas Larrousse Septembre Petit historique du Worl Wide Web Notion dHypertexte Extension à internet par Tim Berners.
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
Le mécanisme de Single Sign-On CAS (Central Authentication Service)
Copyright 2008 © Consortium ESUP-Portail ESUP-Days 7, Paris, 3 février 2009 Evolutions de esup-helpdesk v3 Pascal Aubry.
Copyright 2010 © Consortium ESUP-Portail TOC ESUP-Days 10, Paris, 2 juillet 2010 De LDAP à Kerberos à lUniversité de Rennes 1 Pascal Aubry François Dagorn.
Single Sign-On open source avec CAS (Central Authentication Service)
S. CAGNI, S. PICARD et A. CORDIER Vous avez dit :.
Sécurité Informatique
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
SSL (Secure Sockets Layer) (couche de sockets sécurisée)
SECURITE DU SYSTEME D’INFORMATION (SSI)
XML-Family Web Services Description Language W.S.D.L.
Le langage PHP 5.
Le langage ASP Les variables d'environnement HTTP avec Request.
1 Sécurité Informatique : Proxy Présenter par : Mounir GRARI.
Les instructions PHP pour l'accès à une base de données MySql
Le protocole FTP.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Introduction RADIUS (Remote Authentication Dial-In User Service)
Les relations clients - serveurs
Protocole 802.1x serveur radius
Développement dapplications web Authentification, session.
SSO : Single Sign On.
PHP Géant Aurélien. PHP (Hypertext Preprocessor) Langage de scripts libre Permet produire des pages Web dynamiques dispose d'un très grand nombre d'API(Application.
Installation d’un fournisseur d’identités Shibboleth
Java Authentication And Authorization Service API
Projet de Master première année 2007 / 2008
Ipchains TP 1 TP 2 TP 3 Installer un serveur web sur votre poste,
Module : Technologies des serveurs réseaux : FTP Dynamic Host Configuration Protocol Présenter par : Mounir GRARI.
4 - Annuaires Les Annuaires d ’Entreprises Offres et solutions
PHP 5° PARTIE : LES COOKIES
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Expose sur « logiciel teamviewer »
CAS COMPTOIR (TD1 / SI3) TRANSFORMATION D’UN SI EXISTANT 1.
Lyda tourisme Process en PHP. Objectif Il s’agit de construire un segment de process dans un système d’information touristique.
Auvray Vincent Blanchy François Bonmariage Nicolas Mélon Laurent
Les sockets.
 SHIBBOLET Vitthagna BARNIER Paul CLEMENT M2 MIAGE Nancy 2009/2010.
FTP : File Transfer Protocol (protocole de transfert de fichier ) est un protocole de communication destiné à l'échange informatique de fichiers sur.
Visualisation d’un entrepôt de données Pré soutenance technique
PHP 6° PARTIE : LES SESSIONS 1.Introduction 2.Identificateur de session 3.Variables de session 4.Client / Serveur 5.Principe 6.Ouverture de session 7.Enregistrement.
 Formulaires HTML : traiter les entrées utilisateur
Modules d'authentification enfichables (P.A.M.)
Présentation ESTRABOX
L’authentification Kerberos
Projet serveur Active Directory
Architecture Client/Serveur
Les Java Server Pages Dans ce chapitre, nous allons :
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
LE SERVEUR PROXY Un serveur proxy (traduction française de «proxy server», appelé aussi «serveur mandataire») est à l'origine une machine faisant fonction.
Sécurité des Web Services
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Sécurité sur le GRID Ahmed Beriache (CGG)
Cette session avec la démo disponible prochainement sur le site « interop » :
AGIMUS NG pour une remontée automatique des indicateurs de l’utilisation des services numériques Khadija Dib - DGESIP/MiPNES,
TWP Toolkit Formation 21/10/2009.
Chapitre 8 Protection du trafic réseau à l'aide de la sécurité IPSec et de certificats Module S43.
Développement d’applications Web
Single Sign-On open source avec CAS (Central Authentication Service)
Single Sign-On open source avec CAS (Central Authentication Service)
Transcription de la présentation:

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

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

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

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

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

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

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

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

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

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…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Copyright 2008 © Formation CAS, Paris, 9 et 10 mars 2009 Utilisation de client phpCAS Librairie pour PHP Gère le proxy Gère le logout CAS

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

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

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

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 redirectAfterValidation true

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

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

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 CASValidateURL CASCookiePath /tmp/cas/ CASTimeout 7200 CASIdleTimeout 3600 CASCacheCleanInterval 1800 TP9 : mod_auth_cas

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

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 trusted_ca /Cert/ac-racine.pem

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

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

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

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

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 TP 12 : statistiques et audit

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

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