Un exemple d'authentification sécurisée utilisant les outils du Web : CAS 111
L authentification CAS : «Central Authentication Service» CAS ou le service central d authentification Le système CAS, développé par l Université de Yale et utilisé par l Université de Limoges. Il permet de faire du «Single Sign-On», c-à-d. de l authentification unique pour différents services : un utilisateur dispose d un système d identification unifié, qui lui permet de mémoriser un seul identifiant et un seul mot de passe associé (login/mot de passe), pour l accès à plusieurs services ; l utilisateur lorsqu il veut s authentifier pour la première fois à un service doit fournir dans le système son identifiant et son mot de passe ; l utilisateur qui s est déjà authentifié auprès d un service peut s authentifier auprès d un autre service sans avoir à fournir son identifiant et son mot de passe à nouveau ; cette authentification automatique est limitée dans le temps. Ce système est basé sur les protocoles suivants : TCP, pour le transport sûr des données ; SSL, pour le chiffrement de ses données, ce qui permet de les rendre non observable depuis l extérieur (confidentialité) ; HTTP, pour le système de requête/ressource ; HTTP + CGI, pour l envoi de paramètres de formulaire ; HTTP + cookie, pour réaliser l authentification ; HTML, pour l utilisation des formulaires et de la redirection automatique du navigateur. 112
Les avantages le système est gratuit et opensource ; il est basé sur l utilisation d un serveur supportant le protocole HTTP, le CGI et le HTML ; le mot de passe de l utilisateur ne circule qu entre le navigateur de l utilisateur et le serveur CAS, à l intérieur d un canal sécurisé ; le mécanisme permettant la ré-authentification automatique de l utilisateur est basée sur un Cookie privé et protégé et dont seul le serveur CAS connaît le contenu ; le navigateur va recevoir ce cookie lors de sa connexion avec le serveur CAS ; les échanges des autorisations, sous forme de ticket, se font par l intermédiaire du navigateur de l utilisateur ; Ce ticket : a une durée de vie très courte, il est détruit par le serveur CAS lors de son utilisation (ne sert qu une seul fois) ; est lié au service demandé, il ne peut pas servir pour un autre service ; l identité de l utilisateur est connue du service uniquement en cas de succès de l authentification. 113
Pour faire circuler les informations on va utiliser le navigateur de l utilisateur : lorsque l utilisateur va sur le service, on lui propose de s authentifier sur le serveur CAS e suivant un lien vers le serveur CAS ; dans l URL du lien vers le serveur CAS est fournie en paramètre (GET) une «URL de retour» vers le service ; le navigateur se connecte au serveur CAS avec cette URL (contenant en paramètre l URL de retour) : s il est déjà authentifié : il donne son cookie appelé TGC, «Ticket Granting Cookie» au serveur CAS (c est automatique dans la gestion des cookies et c est le serveur CAS qui l a donné initialement au client) ; s il n est pas authentifié, il s authentifie en remplissant le formulaire avec son nom et son mot de passe et renvoi le formulaire au serveur CAS (il recevra en retour son cookie TGC) en indiquant aussi dans les paramètres l URL de retour au service ; dans tous les cas, le serveur CAS retourne un document HTML forçant le navigateur a retourner sur le service (grâce à l URL de retour) ; dans le document HTML fourni par CAS, une redirection vers le service contient en paramètre un ticket associé au service ; le navigateur du client utilise cette URL et transmet le ticket au service ; le service vérifie la validité du ticket auprès du serveur CAS et obtient l identité de l utilisateur. 114
Connexion au Serveur CAS et récupération du formulaire d authentification Soumission du formulaire et récupération du TGC Le serveur CAS interroge un serveur chargé d enregistrer les identifiants/mdp des utilisateurs (annuaire LDAP par exemple). 115
Connexion au service : l utilisateur est redirigé sur le serveur CAS 116
L utilisateur déjà authentifié transmet le TGC au serveur CAS Le serveur CAS fournit en retour un ticket et redirige le navigateur de l utilisateur vers le service avec ce ticket 117
le service utilise le ticket pour vérifier la validité du ticket auprès du serveur CAS 118
L utilisateur peut ensuite accéder à la ressource 119