Documentation CAS à destination des éditeurs



Documents pareils
Aspects techniques : guide d interfaçage SSO

Guide d interfaçage SSO Connexion des ressources aux plates-formes de type Corrélyce. Sommaire. Titre du document

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal

Authentification et contrôle d'accès dans les applications web

Single Sign-On open source avec CAS (Central Authentication Service)

WebSSO, synchronisation et contrôle des accès via LDAP

Single Sign On. Nicolas Dewaele. Single Sign On. Page 1. et Web SSO

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

Installation et configuration de Vulture Lundi 2 février 2009

AccessMaster PortalXpert

CAS, la théorie. R. Ferrere, S. Layrisse

Single Sign-On open-source avec CAS (Central Authentication Service)

MANUEL D UTILISATION LIVRET DE L ENSEIGNANT

Note Technique Sécurité. Système d'authentification. Authentification hors APN LuxGSM Authentification 3G/APN. Système de notification

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Service d'authentification LDAP et SSO avec CAS

DESCRIPTION DU PLUGIN D AUTHENTIFICATION AVEC CAS POUR SPIP

Sage CRM. 7.2 Guide de Portail Client

Description de la maquette fonctionnelle. Nombre de pages :

Qu'est ce qu'une Fédération d'identités? Définitions Fonctionnement de base Fonctionnement détaillé Les principaux composants

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

Application de lecture de carte SESAM-Vitale Jeebop

Vérification intégrée de l'utilisateur Guide d'implémentation client Confidentiel Version 2.9

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Authentifications à W4 Engine en.net (SSO)

DMZ... as Architecture des Systèmes d Information

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

Manuel Utilisateur de l'installation du connecteur Pronote à l'ent

Introduction. aux architectures web. de Single Sign-On

Espace Numérique de Travail

Les messages d erreur d'applidis Client

L'AAA, késako? Bruno Bonfils, fr.org>, Novembre Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants :

Tour d horizon des différents SSO disponibles

SAML et services hors web

EoleSSO EOLE 2.3. Documentation sous licence Creative Commons by-nc-sa - EOLE (http ://eole.orion.education.fr) révisé : Septembre 2014

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Business et contrôle d'accès Web

FileSender par RENATER - Guide utilisateur

Accès à la messagerie électronique HES

Création d'un site web avec identification NT

DOM - Document Object Model

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

Authentification EoleSSO

Restriction sur matériels d impression

Les matricules utilisateur dans l'intranet ULB... 7 Matricules provenant d'ids... 8 Matricules provenant de DCOR... 9

Guide de configuration pour accès au réseau Wifi sécurisé 802.1X

Le Modèle de Sécurité dans JAVA

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

Procédure d'authentification sur Extradoc

STID 2ème année : TP Web/PHP

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Guide d'utilisation du portail d'authentification Cerbère à usage des professionnels et des particuliers

Web Tier : déploiement de servlets

Joomla! Création et administration d'un site web - Version numérique

Installation du point d'accès Wi-Fi au réseau

Le service d'accès à distance aux bases de données du SCD de Paris 10 Nanterre

1. Installation d'un serveur d'application JBoss:

Programmation Internet Cours 4

Gestion des utilisateurs et Entreprise Etendue

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Annuaire LDAP, SSO-CAS, ESUP Portail...

La double authentification dans SharePoint 2007

DAVION Didier 33 avenue Paul Cézanne HOUPLINES. Auditeur n NPC URBANISATION ET ARCHITECTURE DES SYSTEMES D INFORMATION DOSSIER SSO

Mysql avec EasyPhp. 1 er mars 2006

Espace numérique de travail collaboratif

Application web de gestion de comptes en banques

Architecture Orientée Service, JSON et API REST

GLPI (Gestion Libre. 2 ième édition. Nouvelle édition. de Parc Informatique)

Solution Olfeo Guide d'intégration

SafeGuard Enterprise Web Helpdesk. Version du produit : 6

Premiers Pas avec le serveur LCS

Manuel d'installation

Guide DinkeyWeb. DinkeyWeb solutions d authentification et de contrôle d accès WEB

Remote Method Invocation (RMI)

L'intégration de Moodle à l'université Rennes 2 Haute Bretagne

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

TP PLACO. Journées Mathrice d'amiens Mars 2010

Linux sécurité des réseaux

La haute disponibilité de la CHAINE DE

d authentification SSO et Shibboleth

Module http MMS AllMySMS.com Manuel d intégration

Projet n 10 : Portail captif wifi

1. Comment accéder à mon panneau de configuration VPS?

IIS, c est quoi? Installation de IIS Gestion de base de IIS Méthodes d authentification. Edy Joachim,

Démonstration de la mise en cache via HTML 5 sur iphone

SafeGuard Enterprise Web Helpdesk. Version du produit : 5.60

LESITE.TV : SYNCHRONISATION DES COMPTES

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET

Live box et Nas Synology

LemonLDAP::NG. LemonLDAP::NG 1.2. Clément OUDOT RMLL 9 juillet 2012

Installation et utilisation d'un certificat

Manuel d utilisation du Guichet électronique V2

Transcription:

Documentation CAS à destination des éditeurs Sommaire Préambule... 1 Présentation de CAS...2 Intérêt... 2 Fonctionnement de base...2 Synoptique des échanges (1ère connexion)... 2 Synoptique des échanges (2ème connexion)...3 Ticket-Granting Cookie (TGC)...3 Service Ticket (ST)... 3 Fonctionnement en mode proxy...4 Synoptique des échanges (obtention du PGT)... 4 Synoptique des échanges (accès à une application tierce)... 5 Proxy-Granting-Ticket (PGT)... 5 Proxy-Ticket (PT)... 5 Implémentation côté éditeur... 6 Mise en place... 6 Création d'une page d'accès à la ressource...6 Informations techniques... 6 Document LOMFR de description de ressource... 7 Test...7 Annexes...8 Retour de validation CAS... 8 Authentification réussie...8 Authentification échouée...8 Page d'accès exemple en PHP... 9 Notes...10 Page d'accès exemple en Java... 11 Notes...12 Page d'accès exemple en ASP... 13 Préambule Ce document présente succinctement le système d'authentification unique (SSO 1 ) utilisé dans le projet CORRELYCE : CAS et particulièrement son utilisation pour la connexion aux ressources éditoriales en ligne. Un SSO est un système qui permet de centraliser l'authentification au sein d'applications connexes. Ceci a plusieurs avantages : simplifier la gestion des mots de passe : c'est le même login / mot de passe qui sert pour plusieurs applications gagner du temps lors de l'utilisation de plusieurs applications successivement : un utilisateur 1 Single Sign On : Authentification Unique PASS-TECH-CORRELYCE-CR-10-20070528-033RPACA-05 1/13

connecté sur une application peut passer à une autre (s'il y est autorisé bien sûr) sans avoir à se ré authentifier simplifier la conception des applications en déportant la gestion de l'authentification vers un entrepôt central (utilisant un annuaire LDAP ou une base de données par exemple) Présentation de CAS Note : cette présentation est fortement inspirée de l'article CAS 2 sur Wikipedia. CAS 3 est un système d'authentification unique développé par l'université de Yale. C'est un mécanisme très solide, qui est implanté dans plusieurs universités et organismes dans le monde. CAS est une application Web écrite en Java et distribuée comme un logiciel libre. Intérêt Il évite de s'authentifier à chaque fois qu'on accède à une application en mettant en place un système de ticket. CAS est un système de SSO : on s'authentifie sur un site web, et on est alors authentifié sur tous les sites web qui utilisent le même serveur CAS. Fonctionnement de base Synoptique des échanges (1ère connexion) a d Application Web e Annuaire LDAP b Serveur CAS c Dans son fonctionnement de base, une application CASifiée 4 s'en remet à CAS pour son authentification. I.e. lors de l'accès d'un utilisateur anonyme à une page protégée : 1. L'utilisateur accède à l'application Web (a) 2. Il est redirigé vers le formulaire de login de CAS (b) 3. L'utilisateur s'authentifie (le serveur cas vérifie l'identité fournie auprès de l'annuaire LDAP (c)) 4. Si l'authentification échoue (mauvais couple login/mot de passe), une page d'erreur CAS est affichée 5. Si l'authentification réussie, CAS renvoie un «Ticket Granting Cookie» (TGC) à l'utilisateur et le redirige vers l'application initiale avec un «Service Ticket» (ST) en paramètre (d) 2 3 4 http://fr.wikipedia.org/wiki/central_authentication_service Central Authentication Service : http://www.ja-sig.org/products/cas/index.html une application CASifiée est une application qui se connecte à un serveur CAS pour son identification PASS-TECH-CORRELYCE-CR-10-20070528-033RPACA-05 2/13

6. L'application valide le ST reçu auprès du serveur CAS (e) et reçoit en échange l'information de login sur l'utilisateur Synoptique des échanges (2ème connexion) a c Application Web d Annuaire LDAP b Serveur CAS Dès lors, l'utilisateur est authentifié auprès du serveur CAS, s'il cherche à accéder à une page protégée d'une autre application connecté au même serveur CAS : 1. L'utilisateur accède à l'application Web (a) 2. Il est redirigé vers le serveur CAS (b) 3. Celui-ci lit le cookie TGC fourni et redirige l'utilisateur vers l'application Web avec un nouveau ticket ST en paramètre (c) 4. L'application valide le ST reçu auprès du serveur CAS (d) et reçoit en échange l'information de login sur l'utilisateur Note : l'utilisateur n'a pas eu à se réauthentifier (c'est tout l'intérêt du SSO). Ce fonctionnement de base est utilisé dans Correlyce et permet, par exemple, à un utilisateur connecté à l'application Correlyce de voir ses informations de connexion lorsqu'il bascule sur l'application SPIP actus. Retour sur les notions de TGC et ST : Ticket-Granting Cookie (TGC) C'est un cookie de session qui est transmis par le serveur CAS au navigateur du client lors de la phase de login. Ce cookie ne peut être lu / écrit que par le serveur CAS, sur canal sécurisé (https). Ce cookie est présent durant toute la session de l'utilisateur et permet d'obtenir des Service Ticket auprès du serveur CAS. Si le navigateur web n'accepte pas les cookies, l'utilisateur devra se ré-authentifier à chaque appel au serveur CAS. Service Ticket (ST) Ce ticket va servir à authentifier une personne pour une application web donnée. Il est envoyé par le serveur CAS après que l'utilisateur s'est authentifié et est transporté dans l'url. Ce ticket ne peut être utilisé qu'une seule fois. Il y a ensuite dialogue direct entre l'application web PASS-TECH-CORRELYCE-CR-10-20070528-033RPACA-05 3/13

et le CAS via un GET http, avec le ST en paramètre. En réponse, le serveur CAS retourne l'identifiant de la personne, et donc l'authentifie. Il invalide également le ticket (libération des ressources associées). En fait, ce ticket concerne une personne, pour un service, et utilisable une seule fois. Fonctionnement en mode proxy Le fonctionnement en mode proxy permet à une application proxy CAS de donner accès à d'autres applications clientes sous condition. Ces applications clientes valideront le ticket transmis par l'application proxy auprès du serveur CAS. Synoptique des échanges (obtention du PGT) a d Application Web e f Annuaire LDAP b Serveur CAS c 1. Un utilisateur se connecte à une application Web proxy (a) 2. Il est redirigé vers le formulaire de login de CAS (b) 3. le serveur CAS vérifie son identité auprès de l'annaire LDAP 4. L'utilisateur récupère un cookie TGC et est redirigé vers l'application Web avec un ST en paramètre (d) 5. L'application Web valide le ST et demande un «Proxy Granting Ticket» (PGT) (phase e) 6. Le serveur CAS rappelle l'application Web de manière asynchrone (f) pour lui fournir le PGT demandé pour l'utilisateur PASS-TECH-CORRELYCE-CR-10-20070528-033RPACA-05 4/13

Synoptique des échanges (accès à une application tierce) a Application Web b Serveur CAS c d Application tierce L'utilisateur souhaite accéder à une application cliente via l'application proxy Notes : 1. L'utilisateur accède à l'application Web proxy (a) pour demander l'accès à l'application tierce (via un lien sur une page par exemple) 2. l'application proxy demande un «Proxy Ticket» (PT) auprès du serveur CAS pour l'application tierce (b) 3. l'application proxy redirige l'utilisateur vers l'application tierce avec le ticket PT en paramètre (c) 4. l'application tierce valide le ticket reçu auprès du serveur CAS pour obtenir des informations de connexion sur l'utilisateur (d) c'est l'application proxy qui est chargée de faire tous les tests nécessaires pour autoriser ou non l'accès à l'application cliente demandée (i.e. générer ou non le PT nécessaire) l'application cliente ne peut être accédée par l'utilisateur qu'en passant par l'application proxy Dans Correlyce, le fonctionnement en mode proxy est utilisé pour donner accès aux ressources des éditeurs, cela permet de vérifier si l'utilisateur qui demande la ressource y a bien droit (abonnement) avant de générer le ticket nécessaire. Proxy-Granting-Ticket (PGT) Il est envoyé par le serveur CAS à une application web 'proxy CAS' disposant d'un ST valide. Ce ticket confère au proxy CAS la possibilité de demander au serveur CAS de générer un Proxy Ticket (PT) pour une application tierce et une personne donnée. Proxy-Ticket (PT) Il est généré par le serveur CAS à la demande d'un proxy CAS. Il permet d'authentifier l'utilisateur pour un service distant, avec lequel le client web n'a pas d'accès direct. Le service distant l'utilisera comme le ST 5. Le PT est lié au service distant et n'est pas rejouable. 5 mais sur une URL différente. CAS dispose de deux services distincts pour la validation de ses tickets : servicevalidate (pour les ST) et proxyvalidate (pour les PT) PASS-TECH-CORRELYCE-CR-10-20070528-033RPACA-05 5/13

Implémentation côté éditeur L'utilisation de CAS est basé sur des standards de l'internet : HTTP(s) et XML et ne requiert pas de langage de programmation particulier. Pour pouvoir prendre en compte les demandes d'accès provenant de Correlyce, deux opérations sont nécessaires : 1. Mettre en place une page d'accès à la ressource 2. Indiquer l'adresse de cette page dans le document LOMFR correspondant Mise en place Création d'une page d'accès à la ressource La page d'accès à la ressource doit être une page «dynamique» (dans un langage tel que Java, PHP, ASP,...) et doit répondre selon le protocole HTTPS. Actions à réaliser pour vérifier la validité de l'appelant : Notes : 1. vérifier qu'un paramètre nommé «ticket» est bien passé en paramètre, sinon afficher un message d'erreur 2. appeler la page https://cas.correlyce.fr/cas/proxyvalidate avec 2 paramètres : 1. «ticket» : le paramètre ticket passé en paramètre URL 2. «service» : l'url de la page courante 6 3. analyser la réponse XML du serveur CAS : 1. erreur d'authentification : afficher une erreur à l'utilisateur 2. authentification réussie : extraire les informations d'identifiant numérique d'utilisateur, sa classe, son rôle, le siren et le rne de son établissement et donner accès à la ressource Les librairies clientes CAS disponibles 7 dans de nombreux langages de programmation cachent ces échanges clients-serveurs. Il suffit généralement de leur fournir l'adresse du serveur CAS (https://cas.correlyce.fr) et d'indiquer que la page est un client proxy CAS. Un éditeur / diffuseur qui propose plusieurs ressources à Correlyce n'est pas obligé de mettre en place une page d'accès par ressource mais peut proposer un point d'entrée unique avec un paramètre URL différent par ressource (paramètre «idressource» par exemple qui contient un identifiant unique de ressource dans le système de l'éditeur) Informations techniques Le serveur CAS de correlyce est à l'adresse https://cas.correlyce.fr. La page d'accès à la ressource doit être disponible en https. Les tags XML à extraire de la validation réussie d'un PT sont : cas:user : identifiant numérique unique d'un utilisateur 6 7 Attention, l'url de cette page doit être celle inscrite dans le document LOMFR. En effet, le ticket PT généré par CAS prend en compte cette URL et la validation du PT vérifie l'adéquation de l'url passé lors de la génération du PT et l'url courante. Voir la page http://www.ja-sig.org/wiki/display/casc/clients. PASS-TECH-CORRELYCE-CR-10-20070528-033RPACA-05 6/13

cas:siren : Siren de l'établissement (ou de l'entreprise pour un éditeur) cas:rne : Rne de l'établissement (ou de l'entreprise pour un éditeur) (optionnel) cas:profile : «EDITEUR», «ELEVE», «PROFESSEUR» ou «AUTRE» cas:class : classe de l'élève ou classes de l'enseignant (optionnel) Document LOMFR de description de ressource L'adresse URL de la page d'accès à la ressource doit être consignée dans la section «4.3 localisation» du document LOMFR correspondant. Cette information est visible uniquement de l'éditeur de la ressource ou de l'administrateur dans l'application Correlyce et n'est pas divulguée à l'extérieur. Test Les tests d'accès à la ressource peuvent être effectués directement par les éditeurs dans leur interface de gestion des titres : cliquer sur le contenu de la colonne «Accès» du titre choisi cliquer sur le lien «tester» dans la nouvelle page l'utilisateur est alors redirigé vers l'url d'accès indiquée dans le document LOMFR avec un ticket valide en paramètre PASS-TECH-CORRELYCE-CR-10-20070528-033RPACA-05 7/13

Annexes Retour de validation CAS Authentification réussie <cas:serviceresponse xmlns:cas='http://www.yale.edu/tp/cas'> <cas:authenticationsuccess> <cas:user>uam00010</cas:user> <cas:rne>0131313z</cas:rne> <cas:siren>602060147</cas:siren> <cas:profile>editeur</cas:profile> <cas:proxies> <cas:proxy>https://www.correlyce.fr/correlyce/casproxy/receptor</cas :proxy> </cas:proxies> </cas:authenticationsuccess> </cas:serviceresponse> Le tag «cas:authenticationsuccess» indique que l'authentificatione est réussie. Authentification échouée <cas:serviceresponse xmlns:cas='http://www.yale.edu/tp/cas'> <cas:authenticationfailure code='invalid_ticket'> le ticket 'ST-63-PJraQneKSfeXgrI4pvn20sXlFKQHcLWuMrU-20' est inconnu </cas:authenticationfailure> </cas:serviceresponse> Le tag «cas:authenticationfailure» indique que l'authentification a échouée PASS-TECH-CORRELYCE-CR-10-20070528-033RPACA-05 8/13

Page d'accès exemple en PHP <?php /* ===================================================================== * = Constantes * ===================================================================== */ // L'adresse de base du serveur CAS define('cas_base_url', 'https://cas.correlyce.fr/cas/'); // L'adresse de la ressource que vous voulez mettre à disposition de Correlyce define('service_url', 'https://demo.tech.fr/correlyce/'); /* ===================================================================== * = Fonctions * ===================================================================== */ // Fonction pratique pour récupérer le contenu d'un tag function get_node_value($domelt, $nodename) { $nodes = $domelt->get_elements_by_tagname($nodename); if (sizeof($nodes) == 0) { return ''; return trim($nodes[0]->get_content()); /* ===================================================================== * = Programme principal * ===================================================================== */ // Pas de ticket passé en paramètre => refuser l'accès if (!isset($_get['ticket'])) { die("acces interdit [1]"); // Récupération du ticket $ticket = $_GET['ticket']; // Validation du ticket reçu $xmlcontent = file_get_contents(cas_base_url. 'proxyvalidate'. '?ticket='. $ticket. '&service='. urlencode(service_url)); // Parsing du XML, XML mal formé => refuser l'accès if (!($dom = domxml_open_mem($xmlcontent))) { die("acces interdit [2]"); PASS-TECH-CORRELYCE-CR-10-20070528-033RPACA-05 9/13

// On vérifie que le nom de l'élément principal de la réponse // est bien "serviceresponse" $rootelt = $dom->document_element(); if ($rootelt->node_name()!= 'serviceresponse') { die("acces interdit [3]"); // Ensuite, on cherche authenticationsuccess $successelts = $rootelt->get_elements_by_tagname('authenticationsuccess'); if (sizeof($successelts) == 0) { die("acces interdit [4]");?> // Et on affiche toutes les infos dont on dispose $user = get_node_value($successelts[0], 'user'); $profile = get_node_value($successelts[0], 'profile'); $class = get_node_value($successelts[0], 'class'); $rne = get_node_value($successelts[0], 'rne'); $siren = get_node_value($successelts[0], 'siren'); <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd"> <html> <head> <title>accès à la ressource : ok</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> </head> <body> <strong>identifiant numérique</strong> : <?php echo $user;?><br/> <strong>rôle</strong> : <?php echo $profile;?><br/> <strong>classe(s)</strong> : <?php echo $class;?><br/> <strong>rne</strong> : <?php echo $rne;?><br/> <strong>siren</strong> : <?php echo $siren;?><br/> </body> </html> Notes Ce fichier d'exemple nécessite que PHP soit installé avec les modules openssl, domxml et la directive allow_url_fopen=on. PASS-TECH-CORRELYCE-CR-10-20070528-033RPACA-05 10/13

Page d'accès exemple en Java package fr.tech.cas; import java.io.ioexception; import java.io.printwriter; import java.io.stringreader; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.xml.parsers.parserconfigurationexception; import org.jdom.document; import org.jdom.element; import org.jdom.namespace; import org.jdom.input.saxbuilder; import org.xml.sax.saxexception; import edu.yale.its.tp.cas.client.proxyticketvalidator; public class IndexServlet extends HttpServlet { /** Serial version UID. */ private static final long serialversionuid = 6081252057505750709L; // CAS Namespace private static final Namespace CAS_NS = Namespace.getNamespace("cas", "http://www.yale.edu/tp/cas"); public void doget(httpservletrequest request, HttpServletResponse response) throws IOException { String CASProxyValidate = "https://cas.correlyce.fr/cas/proxyvalidate" ; String monservice = "https://correlyce1.crdp-aixmarseille.fr:8443/casclient/servlet/index"; // Pas de ticket => pas d'accès PrintWriter pw = response.getwriter(); String ticket = request.getparameter("ticket"); if (ticket == null) { pw.println("acces interdit [1]"); return; ProxyTicketValidator pv = new ProxyTicketValidator(); pv.setcasvalidateurl(casproxyvalidate); pv.setserviceticket(ticket); pv.setservice(monservice); try { pv.validate(); catch (SAXException e) { pw.println("acces interdit [2]"); return; catch (ParserConfigurationException e) { pw.println("acces interdit [3]"); return; PASS-TECH-CORRELYCE-CR-10-20070528-033RPACA-05 11/13

// Si la validation n'est pas ok => pas d'accès if (!pv.isauthenticationsuccesful()) { pw.println("acces interdit [4]"); return; // Si le document XML rendu est invalide => pas d'accès Document dom = null; try { SAXBuilder builder = new SAXBuilder(); dom = builder.build(new StringReader(pv.getResponse())); catch (Exception ex) { pw.println("acces interdit [5]"); return; // Si on ne trouve pas l'élément "authenticationsuccess" // => pas d'accès Element rootelt = dom.getrootelement(); Element authsuccesselt = rootelt.getchild("authenticationsuccess", CAS_NS); if (authsuccesselt == null) { pw.println("acces interdit [6]"); return; // Affichage des informations utilisateur pw.println("utilisateur : " + authsuccesselt.getchildtext("user", CAS_NS)); pw.println("rôle : " + authsuccesselt.getchildtext("profile", CAS_NS)); pw.println("classe(s) : " + authsuccesselt.getchildtext("classes", CAS_NS)); pw.println("rne : " + authsuccesselt.getchildtext("rne", CAS_NS)); pw.println("siren : " + authsuccesselt.getchildtext("siren", CAS_NS)); Notes Cet exemple nécessite l'utilisation de la librairie CAS Java 8 et de JDOM 9. 8 9 http://www.yale.edu/tp/cas/cas-client-java-2.1.0/webdoc/ http://www.jdom.org PASS-TECH-CORRELYCE-CR-10-20070528-033RPACA-05 12/13

Page d'accès exemple en ASP Contribution de Pacôme Massol (CRDP Aix-Marseille) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"" xml:lang="fr"> <head> </head> <body> <pre> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>test CAS - Correlyce</title> <style type="text/css"> pre { background-color: #feffcd; border: 1px solid #ffbd6f; padding: 1em; </style> <%@ Page aspcompat=true Language="VB" Debug="true" %> <% dim cas = "<mettre_l'url_du_serveur_cas>" dim service = "<mettre_l'url_de_la_ressource>" dim ticket = request("ticket") Const SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056 if ticket = "" then response.write("pas de ticket, pas de ressource :-)") else dim objxml = Server.CreateObject("Msxml2.ServerXMLHTTP.5.0") ' ligne ci-dessous pour accepter les connexions SSL si le certificat est incorrect ' donc à supprimer dans un cas réel objxml.setoption(2) = SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS dim url = cas & "proxyvalidate?ticket=" & ticket & "&service=" & service objxml.open("get", url, false) objxml.send() response.write(server.htmlencode(objxml.responsetext())) end if %> </pre> </body> </html> PASS-TECH-CORRELYCE-CR-10-20070528-033RPACA-05 13/13